memory-graveyard
v0.3.1
Published
Audit which entries in your project's MEMORY.md Claude actually reads. Per-project, surfaces dead memory entries, broken pointers, and truncation-budget overflow.
Maintainers
Readme
memory-graveyard
Audit which entries in your project's MEMORY.md Claude actually reads. Surfaces dead memory entries, broken pointers, and (uniquely) entries that fall below the system-prompt truncation cutoff and are invisible to Claude.
npx memory-graveyard@latest # audit current project's memory
npx memory-graveyard@latest lint # static checks on MEMORY.md
npx memory-graveyard@latest prune # plan removal of dead entries
npx memory-graveyard@latest projects # cross-project sweep — find cold memory dirsAll analysis is local; reads ~/.claude/projects/<project>/memory/ and the per-project session JSONL logs. No network calls.
What it surfaces
Memory entries from MEMORY.md are sorted into four buckets:
- Active — file exists, indexed in
MEMORY.md, Read at least once in the window. - Dead — file exists, indexed, zero successful Reads. Removal candidate.
- Missing — file exists, NOT in
MEMORY.md, but Claude found it anyway. Re-index candidate. - Hallucinated — pointer in
MEMORY.md⇒ file does not exist; Claude tried to follow and got an error. Broken pointer with confirmed cost.
Static-only issues (broken pointers never followed, orphan files never read, truncation-budget overflow) are surfaced by lint.
Subcommands
audit(default) — bucket table for the current project.--days N,--only <bucket>,--json,--project <path>,--claude-dir <path>.lint— five static checks onMEMORY.mdand the memory dir:- Broken pointers (entries referenced but missing on disk).
- Orphan files (on disk but not in
MEMORY.md). - Truncation budget — how many entries fall below the configured cutoff (default 200 lines) and are therefore invisible in the system prompt.
- Index size (token count, with the same
cl100k_base5–15% drift disclaimer asskill-graveyard cost). - Stale dated entries —
type: projectentries whose newest absolute date is older than--stale-days(default 30). Exit code 1 on any error/warning, 0 otherwise.
prune— print a removal plan fordeadentries andhallucinatedpointers.--applyexecutes (with automatic snapshot backup in.graveyard-backup/<timestamp>/).--include orphans|broken-pointersopts in additional groups.projects— sweep all~/.claude/projects/*/memory/and surface cold memory dirs (--cold-days N).
Why a tool
MEMORY.md is auto-loaded into the system prompt at session start. Above the line-cutoff, every entry costs tokens; below, it's invisible to Claude. Both are wasted budget. The tool surfaces both at once.
Companion tools
skill-graveyard— same pattern for installed skills.mcp-graveyard— same pattern for MCP servers.
License
MIT
