project-memory
Project memory generator
Create CLAUDE.md files that transfer institutional knowledge, not obvious information. Think like a senior journalist onboarding a competent colleague — you don't explain how journalism works, you explain YOUR project's quirks.
CLAUDE.md is advisory, not enforced
Anthropic is explicit on this point: CLAUDE.md content is delivered as a user message after the system prompt. Claude reads it and tries to follow it, but there's no guarantee of strict compliance — especially with vague or conflicting instructions. Source: https://code.claude.com/docs/en/memory
This affects how you write a CLAUDE.md and what you put elsewhere:
| Mechanism | Use for | Source-of-truth |
|---|---|---|
| CLAUDE.md | Standing facts, conventions, "always do X" rules | Advisory |
| Skills | Multi-step procedures, on-demand workflows | Loaded when invoked |
| Hooks | Actions that must happen every time, no exceptions | Deterministic — runs as a shell command (e.g., hooks/one-way-door-check.md) or as a prompt the harness enforces (e.g., hooks/enforce-test-first.md) |
If an instruction is "block writes to published/" or "run accessibility check before commit," that belongs in a hook, not CLAUDE.md. If it's "fact-check workflow" or "FOIA-letter drafting," that's a skill. CLAUDE.md is the place for things Claude must hold in every session.