13 hacks
When Claude repeats a project gotcha, end your prompt with an instruction to write a CLAUDE.md rule so it never happens again.
Spelling out do-this-then-that is now the common failure mode. Describe the goal, the constraints and how Claude knows it is done, then leave the method alone.
Keep the root CLAUDE.md short and drop domain-specific CLAUDE.md files under paths like src/db/ so Claude loads them only when it works in that area.
Write the plan in one session, then open a fresh Claude with no context and ask it to review the plan like a staff engineer.
Use /init to generate a starter CLAUDE.md, then delete anything inaccurate or obvious before committing.
Put a single `@AGENTS.md` import in CLAUDE.md so Claude Code and other agent tools share the same project instructions without symlink confusion.
Put domain-specific instructions in path-scoped `.claude/rules/` so they load only when Claude touches matching files.
Trim project memory to under ~200 lines so Claude follows critical rules instead of drowning them in noise.
Enable /memory auto-memory so Claude writes durable notes about build commands, corrections, and patterns that reload on every new session.
Check in project settings so every teammate gets the same allow/deny rules, hooks, and env defaults without redoing /permissions.
Keep personal shortcuts and machine-specific notes in CLAUDE.local.md (gitignored) instead of polluting the shared CLAUDE.md.
"Never add comments" in CLAUDE.md plus "make this readable" in your prompt is a contradiction Claude has to resolve before it writes a line. Find those pairs and pick one.
Most CLAUDE.md lines exist to correct a model that no longer makes that mistake. Delete them after an upgrade and re-add only the ones a failure proves you need.