Context engineering: how Anthropic cut 80% of Claude Code's prompt and lost nothing
Anthropic cut over 80% of Claude Code's system prompt with no drop in evals. What went wrong in the context, and how to audit your CLAUDE.md this week.

- 01Run /doctor in Claude Code and trim every skill and CLAUDE.md it flags
- 02Look for conflicting instructions across the system prompt, skills and CLAUDE.md, and keep only one
- 03Without a before-and-after eval, don't delete or add a single rule
80%. That’s how much of Claude Code’s system prompt Anthropic deleted when they moved to Opus 5 and Fable 5. They wrote it on the Claude blog on July 24, 2026, and in the same sentence added that they saw no measurable drop in their coding evals.
Think about what that means. Four out of every five lines the team building the tool wrote for Claude did nothing. Or worse, they got in the way. This is the story of how they got there, and odds are the same thing is happening in your CLAUDE.md right now.
June 2025 to April 2026: everyone adds context
The term stuck in June 2025. Tobi Lütke, Shopify’s CEO, defined it as “the art of providing all the context for the task to be plausibly solvable by the LLM”, and Karpathy gave it a +1 over prompt engineering. Phil Schmid and others turned it into a discipline: system prompt, tools, history, memory, retrieval. Everything that goes into the context window on every call.
In Claude Code it looks like this: the prompt you type is a small part. Around it, the system prompt, Skills, CLAUDE.md files and memory get loaded. Each layer was written by someone else, at a different time, for a different problem.
Meanwhile, the industry pushed in exactly the opposite direction from precision. In April 2026 a Meta employee set up an internal leaderboard called “Claudeonomics” that ranked about 85,000 employees by how many tokens went through them. First place was at 281 billion tokens a month. Meta took the board down within days, but the message had already landed: more tokens means more work. They called it tokenmaxxing.

One request, two contradicting instructions
Anthropic sat down and read transcripts of their own internal Claude Code usage. Here’s what they found:
“we see several conflicting messages in a single request like ‘leave documentation as appropriate,’ or ‘DO NOT add comments’ as our system prompt, skills, and user requests clash with each other.” — Anthropic, The new rules of context engineering for Claude 5 generation models, July 2026
One request. Three layers. Two instructions you can’t satisfy at the same time. The system prompt says one thing, a skill someone wrote six months ago says the opposite, and the user’s request pulls a third way.

From the outside it doesn’t look like a bug
This is the sneaky part. Anthropic writes that Claude usually does reach the right answer, because it understands what the user wants. But it has to think harder about the overlapping and conflicting instructions before it decides what to do.
No exception. No failing test. What you actually see is an agent that’s a bit slower, a bit less consistent, and sometimes picks the wrong one of the two instructions. And you blame the model.
There is one sign that’s easy to miss: the problem grows over time. Every new skill and every new line in CLAUDE.md is another chance for a conflict. Nobody writes a contradicting instruction on purpose. It just accumulates.
The first fix: another rule
The natural habit, and what Anthropic itself did, is to answer every bad behavior with a rule. The model added pointless comments? DO NOT add comments. The model didn’t document? leave documentation as appropriate. Each of those rules made sense the day it was written. They say themselves that these rules “were once needed to avoid worst case scenarios”. Together they turned into noise.
Basically, it’s tokenmaxxing in prompt form: we measure how much we covered, not how much we helped. Faros put it best in their guide: the goal isn’t to maximize context, it’s to make it relevant and usable.
The real cause: the model moved on, the context didn’t
The root wasn’t one bad instruction. The rules were written for older models. Claude’s 5th generation handles judgment and surrounding context fine, and the rules meant to guard against the worst case just block it. The headings in their post say it bluntly: Then: Give Claude rules. Now: Let Claude use judgement.
On top of that, CLAUDE.md used to be a dumping ground for everything: memory, facts, guidelines. Today Claude Code also has memory, artifacts and skills, and each has its own way to load context only when it’s needed. One huge file loaded on every request is no longer the right tool.
So they deleted. More than 80%. And they measured. That’s the part people miss when they only read the headline: they could delete only because they had an eval before and after.

What to check this week
First, run /doctor inside Claude Code. Anthropic put the best practices from the post in there, and it flags skills and CLAUDE.md files worth trimming.
Then, count. This script walks every CLAUDE.md and SKILL.md in the repo and in the global directory, and shows how many words and how many shouted rules each one has:
#!/usr/bin/env bash# How many words and how many shouted rules are in each context filefind . ~/.claude \( -name 'CLAUDE.md' -o -name 'SKILL.md' \) \ -not -path '*/node_modules/*' 2>/dev/null |while read -r f; do words=$(wc -w < "$f" | tr -d ' ') rules=$(grep -cE 'NEVER|ALWAYS|DO NOT|MUST|IMPORTANT' "$f") printf '%6s words %3s rules %s\n' "$words" "$rules" "$f"done | sort -rnWhat to look for in the output:
- The files at the top of the list. Every word there gets loaded on every request, even when it’s irrelevant to the task.
- The rules column. Every NEVER or ALWAYS is probably a rule written after an incident. Ask whether that incident still happens with the model you run today.
- The same topic in two places. Run
grep -ri commentacross all the files and see whether the system prompt, a skill and CLAUDE.md say different things. If they do, keep one.
Then the rule that turns this from cleanup into improvement: run the same 10–20 tasks before and after the deletion. Real tasks from the backlog, the same definition of success, the same model. Without a number before and after, you’re not trimming context, you’re guessing.
Caveat: The 80% is Anthropic’s, on their coding evals and their newest models. If you’re still on an older model or an open model, some of these rules are probably still doing work. I wouldn’t delete a line without an eval of my own.
The cheapest improvement you can give your agent this week is a deletion. But only if you know how to measure what you lost.
Sources
- The new rules of context engineering for Claude 5 generation models · 2026-07-25
- Context engineering: shifting from "tokenmaxxing" to deliberate curation · 2026-06-26
- Context Engineering for AI Agents Explained - a simple overview of the basics
- Context Engineering Guide for Developers
- Context Engineering: A Practical Guide for AI Agents (2026) | Sourcegraph
How this was made: drafted by our agent from 5 sources, edited and approved by Koby Almog.


