Half your CLAUDE.md is scar tissue from a model that no longer exists

Opus 5's effort dial turns context files into a routing problem, and the single per-repo file is the wrong unit for it.
Anthropic shipped Claude Opus 5 on Friday, July 24, 2026. Three things from that day matter if you maintain a context file.
First, per Fortune's coverage, the model ships with a user-facing toggle between low, medium, and high effort, framed explicitly as a cost-versus-capability control. Second, Anthropic's launch post claims the model is, in TechCrunch's quotation, "much stronger at verifying its work and iterating carefully until it succeeds". The product page calls it a "thoughtful and proactive" model. Third, the same Friday, Anthropic's Thariq posted that "We removed ~80% of the Claude Code system prompt for our newest models."
I can't retrieve the full thread text, and I'm not going to pretend it argues my case. But the three facts sit together in a way that should make you open your own file. A shipped effort dial means the compute behind any given run is now a variable the user sets, and plausibly the deliberation applied to your instructions along with it. Anthropic hasn't said whether the dial touches instruction-following, and I'll come back to that. The verification-and-iteration claim is Anthropic's, made in its own launch post, and what it asserts is that a specific class of instruction has moved from your file into the weights — whether it actually has is an empirical question nobody outside Anthropic has answered in public. And an 80% cut to the vendor's own scaffolding means somebody with training-time visibility concluded a lot of that scaffolding had stopped paying rent.
None of that tells you what to delete. It does tell you the question has changed shape.
Two kinds of blocks live in every CLAUDE.md, and only one is a behavior patch
Try the split by hand. It's tedious rather than difficult, and it's the only part of this piece I'd defend unconditionally.
FACTS are things the model cannot infer from the repo no matter how carefully it looks. The shape of a real one: that a particular backfill migration takes an ACCESS EXCLUSIVE lock on a table serving live auth reads, so it runs in a maintenance window and never in CI. That your internal billing client is a fork with a renamed retry parameter, so whatever signature the model learned is wrong. That the integration suite under tests/legacy/ has been green for fourteen months because the assertions are commented out, and passing it means nothing.
BEHAVIOR blocks are patches on the model's process. Re-read the file after editing it, because the edit may not have applied where you think. Never make a failing test pass by weakening the assertion. Don't report a task complete until you've run the thing and read the output.
The asymmetry: facts are about your codebase and don't expire when the model changes. Behavior blocks exist because some specific model, on some specific day, did the thing the line forbids. They're scar tissue, and the scar outlives the injury.
They also look, to me, like the class of instruction Anthropic's launch language describes absorbing. Put "much stronger at verifying its work and iterating carefully until it succeeds" next to the three behavior blocks above and they appear to be describing the same territory: verifying, iterating, not declaring victory early. That is a resemblance between my file and a vendor's announcement, which is a weak form of evidence, and I'd rather label it than lean on it. If the claim holds even partially, though, the behavior half of your file is where the redundancy would be.
Worth noting what Thariq's 80% was a cut of: a system prompt. Harness scaffolding skews procedural. Nobody removes 80% of the facts. You remove 80% of the instructions about how to work.
The obsolescence rate has outrun the accumulation rate
Behavior patches accumulate at the rate the model burns you. They go stale at the rate the model changes. Those two rates were roughly matched for years. They aren't now.
The cadence on Anthropic's own Opus page: 4.5 on November 24, 2025. 4.6 on February 5, 2026. 4.7 on April 16, 2026. 4.8 on May 28, 2026. Then Mythos 5, Fable 5, and Sonnet 5 all inside June 2026, and Opus 5 on July 24. Axios called Opus 5 Anthropic's fourth Claude 5 model in under two months, and framed the industry shift as moving from blockbuster launches to rapid iteration on capability, cost, and speed.
At that cadence, a behavior patch written in March is aimed at a model that has since been replaced twice.
The instability goes deeper than version numbers. Fortune reports Fable 5 was pulled from the market on June 12, 2026 under temporary US export controls, after Amazon researchers reported bypassing its safeguards, then re-released June 30 once Anthropic fortified it. The lineup underneath your config file is not a stable substrate. A file written as though it were will encode assumptions that expired without telling you.
This is not an argument for deleting everything. It's an argument that the audit interval for behavior blocks should now be measured in weeks, and almost nobody's is.
The hypothesis: block value may be a function of the effort setting
Here's what I think is worth testing, stated as a hypothesis because that's what it is.
If low effort means less inference-time compute, and if some of the verification behavior Anthropic advertises is a product of that compute, then a behavior block could be redundant at high effort and load-bearing at low. Same file, same repo, different value depending on a dial the user turns.
I have no data on this and I've found none published. But if it's even directionally true, the single per-repo CLAUDE.md is already the wrong unit — because the same repo gets hit at different tiers by different people. Anthropic made Opus 5 the default on Claude Max and the strongest model on Claude Pro. I'd guess a lot of volume lands at whatever the default effort is, since that's the cheap path, but Anthropic hasn't published tier-level usage and I'm inferring. Either way: your teammate on Pro at high effort and your teammate on Max at low effort are reading identical instructions with different amounts of deliberation behind them.
One possible implementation, and I'd expect better ones to exist: a facts fragment that always loads, plus behavior fragments that load only below an effort threshold — CLAUDE.facts.md and CLAUDE.behavior.low.md, if you want names to argue about. I'm not claiming that's how it should be wired, and I haven't checked how gracefully current tooling supports conditional assembly. The structural point is narrower: effort is now a first-class, user-visible control, so in principle it's available at assembly time as a routing key, the way you'd route on environment.
Two notes that matter more than they sound, whatever the wiring. Version the fragments separately, with a date and the model version they were written against, in the file. A line reading # 2026-03, Opus 4.7: stubs failing tests is auditable. A behavior line with no provenance is permanent. And keep the facts core boring: no process advice, no tone, only claims that would be true if no model existed. Maintaining that boundary is most of the value here, and it holds up whether or not the tiering hypothesis survives contact with evidence.
Witness is the reason to measure rather than believe
Between July 24 and 26, independent evaluators Bharath Ramsundar and Yacine ran Opus 5 against a held-out puzzle suite called Witness and found that its ARC-AGI-3 leap did not transfer: Opus 5 at 43.4 ± 3.2, kimi-k3 at 42.8 ± 1.9, Fable 5 at 43.8 ± 9.7. Anthropic's headline reasoning number is real: 30.2% on ARC-AGI-3, verified by the ARC Prize Foundation. Its generalization is contested on the record — in the same week the self-verification claim was newest and most tempting to act on.
That warning applies to me first. If gains on ARC-AGI-3 don't reach Witness, assuming they reach your codebase is the same inference with less evidence behind it.
The three ways this is probably wrong
The dial may not touch instruction-following at all. The strongest counterargument is that effort is pure compute allocation and adherence fidelity is orthogonal to it. If so, behavior blocks are equally necessary, or equally redundant, at every tier, and the whole routing idea is solving a problem that doesn't exist. I can't rule this out. Anthropic's public materials as of July 26, 2026 say nothing I can find about how the effort setting interacts with system-prompt or skill adherence, and I've seen no third-party test. Anyone telling you they know from three days of vibes is selling something.
Thariq's 80% is evidence about Anthropic's prompt for Anthropic's product. The Claude Code harness is co-tuned with the model during training and optimized for one surface. Your CLAUDE.md is not. That reduction tells you what redundancy looked like inside a system its authors controlled end to end. Laundering it into support for cutting your file is a category error, and I'd rather name it than have it named for me.
Deletion is asymmetric, and this is the one that should actually constrain you. Keeping a stale behavior block costs a few hundred tokens per session: trivial and known. Removing a load-bearing one buys a silent regression that surfaces on the tail task you weren't testing, the migration that locks prod, the stubbed test nobody reads. Small probability, unbounded cost. That asymmetry is why the correct move is measurement, not enthusiasm.
Build the task set before you delete anything
So don't take the tiering hypothesis on my word. It's a thing I'm testing, not a practice I'd tell you to adopt. What I would tell you to adopt is the eval, because without it both deleting and keeping are unfalsifiable habits.
Fix ten to fifteen tasks from your own repo that you can score without arguing about the result. Split your CLAUDE.md into facts and behavior. Run both variants across all three effort tiers, six runs in total, and count human interventions and tool calls per completed task. Opus 5 is priced at $5/$25 per million tokens against Fable 5's $10/$50, so the matrix is cheap enough that skipping it is a choice you made rather than a constraint you had.
Whatever you find, you'll have something the launch posts and the benchmark fights can't give you: a held-out set on your own code, which is the only instrument that tells you when the next model quietly obsoletes a chunk of your file.
— Gaurav
Responses