Audit Your CLAUDE.md With Evidence, Not More Rules A developer published a repeatable audit method for CLAUDE.md files that classifies every instruction by evidence rather than accumulating untested rules. The approach sorts each line into six labels — stable fact, verified command, boundary, temporary task, duplicate, or obsolete — and moves time-bound items into a separate task brief. The goal is a smaller, verifiable project guidance file that another contributor can test on a real task. A CLAUDE.md file should make the next coding task safer and easier to verify. Too often it becomes a scrapbook: an old setup command, a temporary release instruction, a preference copied from another repository, and a growing list of rules nobody has tested recently. The problem is not only length. A confident but stale instruction can be worse than no instruction at all. This tutorial gives you a repeatable audit that classifies every line by evidence. The output is a smaller file that another developer can test on a real task. CLAUDE.md ? Anthropic documents CLAUDE.md as a place for project instructions that Claude Code can load into context. That makes it useful for stable repository knowledge: architecture boundaries, verified commands, coding conventions, and review expectations. It is a poor home for temporary acceptance criteria, personal reminders, unverified guesses, or secrets. Use this test for every instruction: Will this still be true on a different task in this repository, and can another contributor verify it? If either answer is no, move it out of permanent project guidance. Copy each meaningful instruction into a table and assign one of six labels. | Label | Meaning | Action | |---|---|---| | Stable fact | Repository structure or invariant confirmed by the code | Keep and link it to a path | | Verified command | A command that works in the documented environment | Keep with prerequisites | | Boundary | A scope, security, or ownership constraint | Keep and make it specific | | Temporary task | Relevant only to the current ticket or release | Move to the task brief | | Duplicate | Repeats another rule without adding precision | Merge or delete | | Obsolete | Contradicted by the current repository | Delete | Suppose a file contains this: - The API lives in src/api . - Always run npm test before finishing. - Do not change the payments service. - For this release, rename the onboarding button. - Use Node 18. Do not edit it from memory. Inspect the repository: src/api exist, and is it the actual boundary? npm test run without an undocumented database or service? Your evidence table might reveal that the API moved, the test command needs a local service, the payments boundary is valid, the onboarding line is temporary, and the runtime is now Node 22. That is already more useful than adding another paragraph of instructions. Vague guidance invites interpretation: - Follow the existing architecture. - Be careful with authentication. - Run the relevant tests. Replace it with observable guidance: Repository map - HTTP route handlers are in src/routes/ . - Authentication policy is enforced in src/auth/policy.ts ; callers must not bypass it. - Generated files under src/generated/ are not edited manually. Verification - Focused unit tests: npm run test:unit --