From learn
End-of-session wrap-up in one invocation. Optionally dispatches parallel lens audits against files changed this session (if an audit dispatch reference is configured), consolidates novel learnings into atomic memory files grounded in cognitive science, and reconciles STATUS.md / ISSUES.md / PLAN.md / README.md with current reality so the next session starts on solid ground. Use at session end, before context compaction, or whenever you need to close out accumulated learnings.
How this skill is triggered — by the user, by Claude, or both
Slash command
/learn:learnThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<objective>
Most sessions produce zero memories worth keeping and a handful of doc updates. That's correct — the work is in the files.
- **One idea, one memory.** Compound learnings split into separate files. (Minimum Information — Wozniak) - **Novel only.** Nothing derivable from code, git, docs, or CLAUDE.md. Memory is for the unwritten. (Derivability Test) - **Update before create.** New learning relating to an existing memory reconsolidates it — retrieval strengthens encoding. (Nader et al.) - **No ephemera.** 30-day test: would this change my approach in a month? If not, let it decay. (Ebbinghaus) - **Emotional salience first.** Corrections, errors, surprises, and confirmed non-obvious choices are the encoding priority. (LaBar & Cabeza) - **Interference prevention.** Merge near-duplicate memories; a cluttered system retrieves badly. (McGeoch) - **Documents decay too.** Stale STATUS/PLAN entries create proactive interference for the next session. Reconcile or let the doc stay silent. Run the audit first when available — it surfaces findings that become encoding signals and ISSUES.md entries.Locate the audit dispatch reference. Check these paths in order, stop at the first hit:
<repo-root>/.claude/skills/_audit-shared/audit-dispatch.md (repo-local shared audits)$CLAUDE_AUDIT_DISPATCH environment variable (user-configured absolute path)references/audit-dispatch.md relative to this SKILL.md (bundled fallback, if shipped)If found: follow it end-to-end: scope → classify → parallel dispatch → synthesize → save composite. Keep the composite inline.
If not found: print one line — "Audit skipped — no audit dispatch reference configured. Proceeding to memory consolidation." — and continue. This is the normal case for installs without the Opus Vita audit suite.
If scope is empty (no file changes this session): skip the audit dispatch but still proceed to encode — conversation-only learnings (user corrections, preferences, decisions) matter too.
Scan the full conversation (plus audit output, if one was produced) for learning signals. Priority order:For each candidate, apply the atomization rules (load references/atomization-rules.md) in order:
For feedback and project types, structure as: rule/fact → Why: → How to apply:
Internal only — do not output this step.
Integrate with existing memory.Locate the memory directory. Check in order, stop at first hit:
$CLAUDE_MEMORY_DIR environment variablememory: path specified in a user or project CLAUDE.md~/.claude/projects/<cwd-slug>/memory/ where <cwd-slug> encodes the project path<repo-root>/.claude/memory/ (repo-local fallback)Create the directory if missing (empty MEMORY.md, then proceed).
MEMORY.md in the resolved memory directory{type}_{topic}.md with frontmatter (name, description, type). Add one-line pointer to MEMORY.md (under 150 chars)MEMORY.mdElevation check: note (don't act) if you see:
Load references/memory-science.md only if ambiguous about type assignment or specificity gradient.
Synchronize project documents with current reality. Load [references/document-reconciliation.md](references/document-reconciliation.md) only if creating a doc from scratch or a structural question arises.STATUS.md — add session entry to "Recent Sessions" (date + one-line); update "Current State" counts; shift "In Progress" / "Upcoming"; clear or add blockers; prune past 10 sessions; cross-validate issue counts against ISSUES.md.
ISSUES.md — add new issues (P0–P3, unique IDs); move resolved to "Recently Resolved" (date + notes); promote 🔴/🟠 audit findings that aren't tracked; merge near-duplicates; prune past 10 resolved.
PLAN.md — check off completed tasks ([ ] → [x]); update phase status; add newly discovered tasks; collapse completed phases to one-line summaries; remove tasks no longer relevant.
README.md — update only if structural changes occurred (new deps, changed setup, renamed keys, restructured dirs). README serves newcomers, not session continuity.
Academic manifests (conditional) — if the session touched 1 PROJECTS/*/:
_manifest.md: deliverable status + last_modifiedworking/ with ISO timestamplast_modified on edited _*.md files_session-log.md if presentCreate missing documents only when warranted: STATUS.md if code changed but none exists; ISSUES.md if issues discovered and none exists. Do NOT create PLAN.md or README.md unprompted.
Skip documents that need no changes. Reconciliation without change is noise.
Prune old audit reports (if a docs/audits/ directory exists). Keep last 20 composite reports and 60 days of per-lens reports. Monotonic growth here creates proactive interference when docs/audits/ accumulates hundreds of files — search, git, and future audits all suffer.
Audit: [Ship it | Ship with fixes | Hold] — [one-line truth]
Memory: [N created, N reconsolidated, N pruned] (list titles, one line each — omit section if N=0)
Docs: [list of files updated, one line each] (omit section if none)
Elevation: [pattern detected — consider skill|hook|convention] (omit if none)
If nothing worth persisting and no documents changed: Nothing to consolidate.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub phdemotions/learn --plugin learn