executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
memory-auditAudit MEMORY.md against the memory discipline — oversized sections, settled multi-session patterns that belong in knowledge/concepts/, session-headed chronicle blocks, restated rules, copied numbers, stale entries. Produces a move plan as a table for approval, then executes the approved moves atomically. Use when the SessionStart hook reports a tripped cap …
Independent GitHub snapshot · Automated classification · Original documentation governs
This is the cap-trip response, not the daily ritual. /memory-kit:close-session runs every
session and captures; this runs when the hot cache has actually outgrown itself and something
must LEAVE it. Keeping them separate is the point: a daily ritual that also has to do surgery
becomes a ritual people skip.
Always pause for approval before writing. The user talks; you write — including here.
.claude/memory/MEMORY.md — read in full.knowledge/concepts/*.md — filenames + first 5 lines, for duplicate detection (the directory
may not exist yet; the first move creates it).context/handoffs/ — to confirm a session narrative already lives there → drop, not move.context/audits/memory-audit-deferred-*.md, if one exists — the candidates the
previous audit left; start from them.Scan by ## heading (and ### inside a long section). For each, count lines and mark exactly
one action. Also read the project's CLAUDE.md, the .claude/rules/*.md without paths: and
the plugin's reference/ titles — you need them for restates-rule.
| Mark | When |
|---|---|
move (create) | a settled pattern (confirmed on 3+ distinct dates) with >25 lines of reference detail |
move (merge) | same, but a concept article on the topic already exists |
session-block | the heading names a session or a date, not a topic (### s66 (2026-09-25), ## Session 65 wrap, ## Findings [date] — …; the SessionStart hook flags these) → dissolve by topic: each settled lesson → one line under its topic heading or a concept; the rest → drop |
drop | a per-session chronicle — it already lives in a handoff; distil at most one settled line |
restates-rule | the entry says what CLAUDE.md, an always-loaded rule or a reference/ file already says → drop, or one pointer line if the link is not obvious. The agent reads those files every session; a second copy only drifts |
point to SSOT | a derivable number — price, count, version, limit — whose source of truth lives elsewhere (a price table in code, a config, a vendor page) → replace the value with a pointer to that source (reference/doc-governance.md R1). A copied number outlives the thing it described |
update in-place | stale: names a deleted file, a closed ticket, a superseded decision |
simplify | true and useful, but three times longer than it needs to be |
keep | earns its lines |
| # | Section | Lines | Action | Target | Reason |
|---|---|---|---|---|---|
| 1 | … | N | move / merge / session-block / drop / restates-rule / point to SSOT / simplify / keep | knowledge/concepts/<slug>.md or — | … |
Close the table with: estimated line savings, and the projected line/byte count afterwards against the caps (180 lines / 32 KB / 3000 chars per line). Target well below the caps — at most ~60 % of the byte cap (≈ 20 KB). A cache audited to «just under» refills past the cap within days: the cap works as a fill line, not a ceiling. If the plan does not reach the target, say which sections keep it above and why they earn their bytes.
Print the plan and ask for approval. Wait for an explicit yes or edits. No writes before that.
knowledge/concepts/<slug>.md with frontmatter matching
knowledge/index.md's spec, then add its one-line entry to that index in the same pass.### From MEMORY.md (YYYY-MM-DD) header — never duplicate a
section that already says the same thing.Replace the MEMORY.md current-state header (≤3 lines, dated). Report before/after line and byte
counts, every file touched, and save declined candidates to
context/audits/memory-audit-deferred-YYYY-MM-DD.md (create the dir if absent) so the next audit
starts from them. Not in context/handoffs/: the SessionStart hook injects the newest file there
as the session handoff, so a deferred list saved there replaces the real handoff at the next start.
context/audits/ as above and stop.drop.