project-memorylisted
Install: claude install-skill r3vs/keel
# Project Memory
Durable memory that survives across sessions, so the agent stops relearning the same project facts.
Four channels, cheapest first — and they are **not interchangeable**: each has a different writer,
a different scope, and a different answer to "does a fresh subagent see this?".
## The layers
- **Decision memory = the ledger** (`references/core/ledger.md`). Every elected truth is already durable,
append-only, and carries a `flip_criteria` (when to reopen). Do NOT duplicate decisions here —
point at the ledger. It is also the only channel that reaches a fresh agent unprompted, because
the carrier projects it into `AGENTS.md` (`references/core/instruction-files.md`).
- **Project memory = `MEMORY.md`** at the repo root: a short, human-readable, git-tracked list of
durable facts the ledger doesn't hold — conventions ("we use pattern X"), gotchas ("Y looks
wrong but is intentional"), environment quirks, and user preferences. Edited deliberately, never a
dumping ground.
**It is read on demand, not always-on** — read it at the start of a task. Earlier versions of this
file claimed it was "loaded as always-on context via `AGENTS.md`"; that was false on all four
hosts. Only Claude Code parses `@path` imports at all, and a mention wrapped in backticks (which is
how `AGENTS.md` names it) is explicitly skipped by that parser. Codex, opencode and Pi concatenate
instruction files as plain text and have no import syntax. If a fact genuinely must be i