| name | ledger-memory |
| description | Use when saving, correcting, or curating persistent memory — recording facts for future sessions, retracting wrong memories, end-of-session housekeeping, or deciding what deserves remembering. |
ledger-memory
Persistent, append-only memory for this project, backed by ledger. Every
write goes through the ledger-memory wrapper — never a raw ledger set/note against the memory store; a PreToolUse hook denies those and
points here instead. For general ledger doctrine (testimony discipline,
evidence, resume-and-verify) see the using-ledger skill; this skill covers
only what's specific to agent memory.
Your project's MEMORY.md is regenerated at session start and after every
write, and it's already in context — no command needed to see it. Its header
carries the exact paste-ready commands for this project, with the real
wrapper path and store directory already filled in: copy from there rather
than retyping from memory. The examples below use ledger-memory as
shorthand for that path.
When to save (and when not)
Save: durable facts about the user, feedback with the why behind it, project
state that isn't already recorded in the repo, and references you'll want
again. Don't save what the repo already records — that's a stale copy
waiting to happen — and don't save single-conversation trivia nobody will
need back.
The save moment that matters most is right before you lose context —
compaction or session end. Run the audit: what do I know right now that
lives only in my head? Save what surfaces. This is doctrine, not mechanism:
the harness gives no channel to inject a reminder before compaction actually
runs, so nothing enforces running the audit in the moment. The SessionStart
hook's post-compact reminder ("save what you still know") is the mechanical
backstop on the far side — useful, but it fires after the summary has
already dropped whatever it dropped. It's a backstop, not a substitute for
running the audit yourself while you still can.