The most-copied CLAUDE.md in Claude Code tells you to instruct the model to verify its own work before it reports done. Five months later, Anthropic's own prompting guide for Opus 5 says to remove that instruction, and explicitly not to rewrite it.
Neither document is wrong. They were written for different models. Nothing in your CLAUDE.md tells you which one you are running.
I spent ten weeks on the wrong side of that gap. Ten recurring behavior problems, every one already covered by a written rule, four in always-loaded files read on every turn. The rules layer this post argues against overusing lives in primeline-ai/evolving-lite.
What the most-copied Claude Code CLAUDE.md rules actually say
The CLAUDE.md widely attributed to Claude Code's founder is about 100 lines in three sections. Three of its CLAUDE.md rules are the ones worth checking against current guidance.
- Subagent strategy. Deploy subagents liberally to keep the main context clean.
- Verification before done. Never complete a task without demonstrating it works.
- Self-improvement loop. After a correction, write the lesson to a file and add a prevention rule. Iterate until mistake rates decline.
The third is the one I built a system around, and the one I now have a measurement on.
The copies in circulation are third-party transcriptions, typos included ("Plan Node Default", "One tack per subagent"). I found no first-party publication, so this post says "attributed to" rather than quoting it as authoritative.
Anthropic's Opus 5 guide says to delete two of them
Two of those three CLAUDE.md rules invert under current guidance.
The verification rule
Anthropic's prompting best practices page still lists "ask Claude to self-check" as a technique that catches errors reliably. Then it carves out one exception: "Claude Opus 5 is the exception: it verifies its own work well without explicit instruction, and verification instructions carried over from prompts tuned for earlier models can cause over-verification... remove these instructions rather than rewriting them."
The Opus 5 prompting guide is blunter: remove them, because they cause over-verification with no loss in quality when deleted.
The subagent rule
Here the direction reverses inside one model generation. Opus 4.8 under-reached for subagents and benefited from explicit triggering guidance. Opus 5 "delegates to subagents more readily than prior models," and the guide recommends a hard spawn cap. A line saying "deploy subagents liberally" was good advice in February and spends your quota in July.
Only the correction-logging loop survives contact with the new guidance. That one is mine to measure.
All 10 of my CLAUDE.md rules were already written down
I ran the correction-logging loop for ten weeks, then counted. The number that mattered was not how many problems existed, but how many were undocumented: zero.
| Behavior | Instances | Written in | Live hook |
|---|---|---|---|
| Answer too long, the answer buried | ~18 / 3 weeks | 3 files | no |
| Ends the turn with a question instead of acting | ~14 / 10 weeks | 4 files + a CRITICAL line | no |
| Never proposes the system's own tools | ~11 / 8 weeks | 3 files + always-loaded table | no |
| Skips its own mandatory gates | 7 / 12 weeks | 9 files | no |
| Does not check memory before substantive work | 8 / 8 weeks | 5 files + 2 rules | yes |
| States things about a file without reading it | 6 / 12 weeks | 6 files | yes |

One rule had been restated across nine separate files, and one of those exists only to record that the previous file did not hold. The sharpest instance: in one session I wrote "I will not ask a third time" and then asked again in the same message. That is the loop working exactly as specified and producing no behavior change.
This lives in primeline-ai/evolving-lite - the self-evolving Claude Code plugin. Free, MIT, no build step.
Why do CLAUDE.md rules stop working under pressure?
Not volume. Conflict. I assumed 20,000 tokens of always-loaded rules were crowding each other out and proposed cutting a third. I sent the plan to fugu --ultra (Sakana AI) and grok-build (xAI) and both refuted it independently: 20k is small for a current model, and the disease is rules contradicting each other.
Anthropic published the same diagnosis from the other side. They removed roughly 80% of Claude Code's own system prompt for Opus 5 with no measurable loss on their coding evaluations, and the stated reason was over-constraint: transcripts showed "several conflicting messages in a single request" as system prompt, skills and user requests clashed. Two CLAUDE.md rules that each make sense alone force the model to spend judgment resolving you instead of solving your problem. Reasoning in Anthropic's context engineering guidance.
Note what made their cut safe: the evaluations existed before the deletion.
Which CLAUDE.md rules can Claude Code hooks enforce?
Three of the ten, and no more. Once I stopped adding rules, enforcing them with Claude Code hooks looked like the obvious next move. It bounded fast.
The three that work
Banned phrases in drafts, a completion word with no test or review evidence in the same turn, and re-asking after permission was already granted. All three have a closed text signature and a low base rate.
The four that cannot be automated
Including two of the top three. Folding under pressure instead of holding a position has no text signature separating it from earned agreement. Neither does "a tool should have been proposed here." I have no good detector for either, and inventing a plausible one would have been worse than saying so.
Everything else fired on between 20% and nearly every turn, which is a notification you learn to ignore within a day. The hook scripts and the ledger conventions are in primeline-ai/evolving-lite if you want to see the shape before writing your own.
How do you tell when a CLAUDE.md rule has expired?
You cannot, unless you dated it. Every behavioral line in your CLAUDE.md is a claim about a specific model version, and none of them carry that version.
One of my detectors rotted the same way and said nothing about it, which I unpack in the post on hooks that fired 574 times and blocked zero.
How I would rewrite my CLAUDE.md rules today
- -One rule restated across 9 files
- -No model version next to any behavioral line
- -New rule added on every correction
- -2 hooks that logged instead of blocking
- -No evaluation before or after any change
- +One precedence rule that says which rule wins
- +Model version dated next to every line
- +Deletion as the default response to drift
- +Hooks named observer unless they can block
- +A check that can fail before anything is cut
Three changes, in the order they pay:
- One conflict-resolution rule instead of ten more CLAUDE.md rules. A precedence tier saying which rule wins is the only instruction that gets cheaper as you add more.
- Delete before you add, and date what you keep. Write the model version next to each behavioral line.
- Diff the vendor's migration guide against your own file. The Opus 5 migration guide lists which instructions now cost quality. Mine had three.
The rules layer and hook system this post argues against overusing live in primeline-ai/evolving-lite. Read knowledge/rules/ first, then delete half of what you were about to write. My earlier posts on splitting Claude Code instructions across rule files and turning corrections into rules describe the mechanics correctly, and why "done" is not done covers the proof discipline.
Honest scope
n=1 developer, CLAUDE.md rules I wrote myself, counts recovered from my own transcripts. My correction logger misses roughly 68% of real corrections, so every count above is a floor. This is not evidence about your setup, and not evidence that CLAUDE.md never works. It is evidence that "I wrote it down" and "the behavior changed" are two different claims, and I had been reporting the first as the second.

![Claude Code Code Review Needs a Non-Claude Model [2026]](/_next/image?url=%2Fblog%2Fclaude-code-code-review-hero.webp&w=3840&q=75)
![My Claude Code Hooks Fired 574 Times, Blocked Zero [2026]](/_next/image?url=%2Fblog%2Fclaude-code-hook-never-blocked-hero.webp&w=3840&q=75)
![A Negative Result on Claude Code Agent Self-Regulation [2026]](/_next/image?url=%2Fblog%2Fcsra-negative-result-hero.webp&w=3840&q=75)