# Memory Graveyard

> Audit which entries in your project's MEMORY.md Claude actually reads. Use when the user wants to find dead memory entries, broken pointers in MEMORY.md, orphan memory files, or surface entries that fall below the system-prompt truncation cutoff. Triggers on "audit MEMORY.md", "dead memory entries", "broken memory pointers", "memory hygiene", "unused memory", "memory truncation". Runs locally; reads ~/.claude/projects session JSONL logs and memory directories. No network calls.

- Skill: `sfrangulov/memory-graveyard` (Agent Skill)
- Install (CLI): `npx skillmds@latest add sfrangulov/memory-graveyard`
- Raw SKILL.md: https://api.skillmd.com/api/skills/sfrangulov/memory-graveyard/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- License: MIT
- Author: sfrangulov (https://skillmd.com/u/sfrangulov)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/sfrangulov/memory-graveyard

---


# memory-graveyard

CLI that audits per-project file-based memory (`MEMORY.md` index + `memory/*.md` entries). Bucketed audit (ACTIVE / DEAD / MISSING / HALLUCINATED) plus a static linter that flags broken pointers, orphan files, truncation-budget overflow, index size, and stale dated entries.

## How to invoke

Run via `npx memory-graveyard@latest <subcommand> [flags]` — no install needed.

## Subcommands

- `audit` (default) — 4-bucket per-project table. Flags: `--days N`, `--only <bucket>`, `--json`, `--project <path>`, `--claude-dir <path>`.
- `lint` — static checks on `MEMORY.md` and the memory dir. Flags: `--truncation-cutoff N` (default 200), `--stale-days N` (default 30), `--json`. Exit 1 on findings.
- `prune` — plan removal of dead entries and hallucinated pointers. `--apply` to execute (with snapshot backup in `.graveyard-backup/<timestamp>/`). `--include orphans|broken-pointers`, `--exclude <basename>`.
- `projects` — cross-project sweep, surfaces cold memory dirs. `--cold-days N` (default 90).

## Decision flow

- "what entries in my MEMORY.md are dead?" → `npx memory-graveyard@latest`
- "is anything in MEMORY.md broken?" → `npx memory-graveyard@latest lint`
- "clean up MEMORY.md" → `prune`, then `--apply`
- "which projects have stale memory dirs?" → `projects`

After running, print output verbatim. Do not summarize unless the user asks.

