
Claude Code Shrinkflation: 234,760 Tool Calls That Forced an Apology
AMD audited 234,760 Claude Code tool calls and proved regression. Anthropic admitted three missteps. What your dev tools quietly became.
β¨TL;DR / Executive Summary
AMD audited 234,760 Claude Code tool calls and proved regression. Anthropic admitted three missteps. What your dev tools quietly became.
π‘ TL;DR (Too Long; Didn't Read)
Key takeaways in 60 seconds:
- The audit: AMD's AI Director Stella Laurenzo published a forensic analysis of GitHub issue #42796 covering 6,852 Claude Code sessions, 234,760 tool calls, and 17,871 thinking blocks β proving measurable regression with a 0.971 Pearson correlation between thinking-content length and the redacted-signature field.
- The admission: On April 23, Anthropic published a post-mortem identifying three product-layer changes β a default reasoning effort downgrade (March 4), a session-cache bug (March 26), and a verbosity-limiting system prompt (April 16) β that compounded into a month-long quality regression.
- The model weights never changed. What changed was the harness: defaults, system prompts, caching logic. None of it was canaried against complex real-world workflows. None of it was announced as user-affecting.
- The structural problem isn't the bug β it's the opacity. Your AI dev tool is a non-deterministic dependency whose vendor can silently retune behavior with no obligation to tell you. Laurenzo had AMD-tier session logs to prove it. Most teams don't.
- The Flagship Tax died (a0085). The Replacement Tax is being paid right now. Compute crunch + IPO pressure + agentic-coding token explosion = vendor incentives that don't align with your incentives. The post-mortem closes the immediate gap. It does not close the trust gap.
Two numbers that ended a month of Anthropic gaslighting
234,760.
That is the number of tool calls AMD's AI group logged from Claude Code between January and April 2026, across four production projects, parsed out of 6,852 session JSONL files sitting in ~/.claude/projects/. It is also the number that β along with 17,871 thinking blocks and 18,000+ user prompts β forced a $380-billion AI lab to publish a public engineering apology and reset usage limits for every paying subscriber.
The audit was the work of Stella Laurenzo, Senior Director of AI at AMD, posting under the GitHub handle stellaraccident. Verified SourceGitHub Issue #42796 β anthropics/claude-codeLaurenzo's audit ran on 6,852 Claude Code session JSONL files from ~/.claude/projects/ across four AMD projects β iree-loom, iree-amdgpu, iree-remoting, and bureau β covering 234,760 tool calls and 17,871 thinking blocks (7,146 with content, 10,725 redacted). She did not write a Twitter thread. She did not record a YouTube rant. She filed a single GitHub issue against anthropics/claude-code containing more rigor than most academic AI papers, complete with Pearson correlations, behavioral metric tables, ablation methodology, and a reproducible signature-length proxy that allowed her to estimate thinking depth even after Anthropic's redaction layer hid the raw content from the API.
The verdict was severe: "Claude has regressed to the point it cannot be trusted to perform complex engineering."
Anthropic's response cycle is now a small case study on how the next decade of vendor accountability will unfold. The first reaction, in mid-April, was deflection: latency tradeoffs, communicated via changelog, your usage was "soaring." Then partial acknowledgment. Then, on April 23, a full engineering post-mortem admitting three separate product-layer changes had compounded into a month-long quality drop. Usage limits reset for all subscribers. Process changes promised. The mea culpa was, by industry standards, transparent and thorough.
It was also incomplete. And the gap between what was admitted and what the data actually shows is the real story for anyone running AI dev tools in production.
Why this matters at 3 AM on a Tuesday
If you are a Staff+ engineer who has spent the last six weeks blaming yourself, your team, your codebase, or the phase of the moon for an AI coding tool that suddenly felt dumber: you were correct. The tool got dumber. Your subjective experience was a measurement, and it was outvoted by an internal evaluation suite that did not test for the things you cared about.
Take a beat to absorb that. The dependency at the center of your engineering workflow β the agent that reads your codebase, edits your files, runs your tests, opens your PRs β was modified in production over a six-week window without behavioral disclosure to you, validated against an evaluation suite that did not capture the regressions, and defended for several weeks as user error before the company traced the problem to its own changes.
This is structurally different from a bug in make, a regression in git rebase, or a CVE in your build chain. Those tools are deterministic. When git ships v2.51 with a behavior change, the change is in the release notes, you can read the source, and you can pin to v2.50 if you do not like the change. Claude Code, like every other agentic coding tool currently shipping, is none of those things. The model is a closed weight. The harness β system prompts, default effort levels, caching behavior, thinking redaction, verbosity limits β is server-side, vendor-controlled, and changes silently between any two requests.
We covered the first version of this trap in a0101 β The Productivity Lie, where the gap between feeling fast and being fast was framed as a measurement problem inside the engineer. The Claude Code regression is the same problem with a different culprit: the gap between the tool you bought and the tool you currently have is now the vendor's measurement problem, and the vendor's evaluation suite is not your evaluation suite.
What Laurenzo actually measured
The most underappreciated detail of this whole saga is the engineering quality of Laurenzo's audit. The standard pattern for "the AI got worse" complaints is a vibes-based GitHub thread with a few cherry-picked examples. Laurenzo did the opposite. Her methodology is reproducible by anyone with months of structured session logs and a Sunday afternoon.
The forensics broke down to three primary signals.
The first was a behavioral signature. Verified SourceGitHub Issue #42796 β anthropics/claude-codeReads-per-edit β the number of file reads Claude performed before attempting an edit β collapsed from 6.6 to 2.0 between January and March. Stop-hook violations, defined as Claude prematurely terminating, dodging ownership, or asking unnecessary permissions, rose from 0 to roughly 10 per day. The behavioral pattern matched a model that had stopped researching before acting β the "edit-first" mode that defines a junior engineer who has not yet learned humility.
The second was a thinking-depth proxy. Anthropic had rolled out a server-side change called redact-thinking-2026-02-12 that hid the model's chain-of-thought from API responses, ostensibly for ergonomics. Laurenzo discovered that even after redaction, the cryptographic signature field on each thinking block correlated with the underlying thinking-content length at a Pearson coefficient of 0.971 across 7,146 paired samples. Translation: the redaction was not actually hiding the data. The signature length was a covert side-channel that let her estimate how deeply the model had thought even when the content was obscured. Using that proxy, she calculated a roughly 67% drop in median thinking depth from late February β before the redaction rollout finished β confirming that thinking budget was being throttled, not just hidden.
The third was instrumentation she built herself. A stop-phrase-guard.sh hook programmatically caught ownership-dodging language ("I cannot complete this without further information"), premature stopping, and unjustified permission-seeking. Violations climbed from baseline zero to a sustained ~10/day exactly when the redacted-thinking rollout crossed 50% of traffic on March 8.
Read that last paragraph again. A senior engineer at AMD wrote her own behavioral test harness, deployed it as a production-grade hook, and used it to detect a regression that the vendor's own evaluation suite missed for over a month. That is the level of investment required to audit your AI coding tool today. The 99.9% of teams that cannot afford to do this are flying blind on a tool whose behavior is reshaped, mid-flight, by a different company's product manager.
Three changes Anthropic admitted
The post-mortem published on April 23 is a model of how to write an engineering apology. Three product-layer changes were identified, each with a defensible individual rationale, that compounded into a quality crisis no single change would have produced alone.
The first change shipped on March 4. Verified SourceAnthropic Engineering β April 23 Post-MortemAnthropic changed Claude Code's default reasoning effort from high to medium to address user reports that the UI appeared frozen during long thinking sessions and that high-effort sessions were burning through usage limits faster than expected. Internal evaluations had shown only "slightly lower intelligence" at the medium setting, with significant latency improvements. The slightly-lower part turned out to be much more visible to users than the evals predicted.
The second change shipped on March 26. A caching optimization was deployed using the header clear_thinking_20251015 with keep:1, intended to prune stale thinking content once after an hour of session inactivity. The implementation diverged from the intent: instead of clearing once when the threshold was crossed, the code cleared on every single turn after the threshold. The result was a Claude that had effectively no short-term memory across long sessions, repeatedly rebuilding context from scratch and burning tokens at multiples of normal rates. Pro and Max-tier users hit usage caps on routine workloads. The bug was fixed on April 10 in v2.1.101.
The third change shipped on April 16, alongside the launch of Opus 4.7. Two lines were added to Claude Code's system prompt: "Length limits: keep text between tool calls to β€25 words. Keep final responses to β€100 words unless the task requires more detail." The motivation was reasonable β Opus 4.7 was launched verbose, and verbosity in agentic loops translates directly into token cost. The change passed multi-week internal testing with no observed regressions on the standard evaluation suite. After Laurenzo's audit forced a deeper investigation, Anthropic ran ablation tests removing one prompt line at a time and discovered that the verbosity instruction caused a 3% drop in coding evaluations for both Opus 4.6 and 4.7. The prompt was reverted on April 20 in v2.1.116.
Three changes. Three plausible motivations. Three failure modes the standard validation pipeline did not catch. Each affected a different slice of users on a different schedule, which made the aggregate signal look like generalized degradation β and made it harder for Anthropic's own internal usage to reproduce the problem.
What the post-mortem doesn't quite say
Anthropic's writeup is candid where vendors usually deflect. It explicitly admits that the existing review process was "calibrated for what it could measure" and that the things customers noticed β memory, reasoning persistence, care with code β were not in the eval set. It commits to soak periods, broader ablation suites, internal dogfooding of public builds, and tighter gating on system prompt changes.
But three things are missing from the post-mortem that the data demands.
First, the redacted-thinking rollout. Laurenzo's audit identified redact-thinking-2026-02-12 as the strongest correlate of the regression β a setting that hides chain-of-thought from API responses, deployed in a staged rollout from 1.5% to 100% of traffic over a single week starting in early March. Anthropic's post-mortem does not address this setting at all. Boris Cherny, who leads Claude Code, has stated publicly that redaction only hides reasoning from the UI and does not reduce reasoning. That may well be true. But "we hid the observability layer that lets users tell when reasoning has dropped" and "we then dropped the default reasoning effort" are two changes that compound suspicion in a way the post-mortem does not engage with.
Second, the evaluation-suite gap is described as a process problem, not a structural one. The actual structural issue is that internal evals at AI labs are designed to catch model-weight regressions, because that is what AI labs build. They are not designed to catch agentic harness regressions, because the harness is treated as product surface. The Claude Code incident is the first major public proof that harness changes can produce capability deltas on the order of 3β15% on real-world tasks while passing every model-level eval. Until vendors split out "harness eval" as a discipline distinct from "model eval," the same incident will recur with different specific causes.
Third, the compute-crunch context. ReportedFortune via CNBC internal memo reportingAccording to an internal OpenAI memo first reported by CNBC, OpenAI's revenue chief claimed that Anthropic had made a "strategic misstep" by not securing enough compute capacity and was "operating on a meaningfully smaller curve" than its competitors. Anthropic declined to answer questions about the memo and has publicly stated it does not degrade models to manage demand. Independent of whether OpenAI's framing is fair, the speculative chain that connects the Claude Code regression to a deeper compute-economics squeeze β agentic coding workloads exploding token consumption per task, IPO pressure forcing margin discipline, infrastructure not yet caught up β is the reading that several power users have settled on. The post-mortem does not address it. The next post-mortem may not have that luxury.
The pattern this fits into
Two months ago, in a0085 β The Flagship Tax Is Dead, we argued that the $75/MTok premium for top-tier models was structurally collapsing as mid-tier and routing approaches caught up. Prediction E013, lodged in our Evidence Wall on February 23, called for routing-replacing-model-selection by H2 2026. The Claude Code shrinkflation incident is partial confirmation of E013 β but with a twist nobody priced in.
The Flagship Tax did not just die. It mutated. Vendors are now under simultaneous pressure to (a) deliver flagship-tier capability for mid-tier prices, (b) absorb the token explosion of agentic workflows where a single user task can trigger thousands of tool calls, and (c) maintain margin in front of an IPO. The path of least resistance to all three pressures is silent harness retuning: lower default effort, hide thinking, cap verbosity, prune context. Each change individually justifiable; in aggregate, a stealth product downgrade.
Combined with our older take in a0084 β The Cathedral and the Bazaar, Redux, where we framed Opus 4.6 vs Codex 5.3 as two incompatible visions of agentic engineering, this incident clarifies a third axis we did not name at the time: vendor opacity. Both visions assume the user accepts a black-box runtime in exchange for capability. The Claude Code audit is the first public proof of how that bargain breaks when the runtime starts being silently retuned to fit the vendor's economics rather than the user's workflow.
The OpenAI Stargate UK pause on April 9 β driven by energy costs and regulatory deadlock, walking back a Β£31B infrastructure commitment β sits in the same neighborhood. Compute is harder to source than the announcements implied. Verified SourceBloombergOpenAI paused its Stargate UK AI infrastructure project on April 9, 2026, citing energy costs and regulatory uncertainty as conditions that did not yet enable long-term infrastructure investment. When physical compute becomes the binding constraint (as we argued in a0105), the abstract pressure on every model vendor is to extract more capability per token at the inference layer. That pressure does not pause for your dev workflow.
What changes Monday morning
The Claude Code regression is fixed in v2.1.116 as of April 20. The default reasoning effort is back to high for the 4.6 family, with /effort and adaptive-thinking controls now exposed for users who want explicit overrides. Usage limits were reset on April 23. If you have not updated, run npm update -g @anthropic-ai/claude-code and check your effort setting β manual overrides from the bad period persist after defaults are restored.
That is the easy part. The harder part is that the structural conditions that produced this incident have not been fixed by anyone β including, in fairness, Anthropic's competitors, who all run similar harnesses with similar opacity. Five operational changes deserve consideration on engineering teams that depend on AI coding tools at scale.
Run your own telemetry. Laurenzo's audit worked because she had structured session logs going back months. Your equivalent: track tool-call counts, read-before-edit ratios, retry rates, stop-hook violation rates, and session token consumption over time. The signal is not the absolute number; it is the slope. A 3x drop in reads-per-edit over a six-week window is the signature of a harness change. You will only see it if you instrument.
#!/usr/bin/env bash
# claude-telemetry.sh β Extract weekly reads-per-edit from Claude Code session logs
# Usage: ./claude-telemetry.sh ~/.claude/projects/your-project/
SESSION_DIR="${1:?Usage: $0 <session-dir>}"
echo "week,sessions,tool_calls,reads,edits,reads_per_edit"
for jsonl in "$SESSION_DIR"/*.jsonl; do
# Extract ISO week from file modification time
week=$(date -r "$jsonl" +%Y-W%V 2>/dev/null || stat -c %y "$jsonl" | cut -d' ' -f1)
# Count tool calls by type
reads=$(grep -c '"tool":"Read"' "$jsonl" 2>/dev/null || echo 0)
edits=$(grep -c '"tool":"Edit"' "$jsonl" 2>/dev/null || echo 0)
total=$(grep -c '"tool":' "$jsonl" 2>/dev/null || echo 0)
# Calculate ratio (avoid division by zero)
if [ "$edits" -gt 0 ]; then
ratio=$(echo "scale=1; $reads / $edits" | bc)
else
ratio="N/A"
fi
echo "$week,1,$total,$reads,$edits,$ratio"
done | sort | awk -F',' '
{ w[$1]++; tc[$1]+=$3; r[$1]+=$4; e[$1]+=$5 }
END {
for (k in w) {
rpe = (e[k] > 0) ? sprintf("%.1f", r[k]/e[k]) : "N/A"
printf "%s,%d,%d,%d,%d,%s\n", k, w[k], tc[k], r[k], e[k], rpe
}
}
' | sortThe output is a CSV you can pipe into any dashboard. Watch the reads_per_edit column: a sustained drop below 3.0 is your early warning that something changed upstream.
Pin your version. claude-code ships through npm. So does most of the rest of the agentic-coding ecosystem. Pin to a known-good version and update deliberately, not automatically. The cost is a slightly more manual upgrade flow; the benefit is that vendor changes happen on your schedule, not the vendor's.
Question default settings. Effort levels, verbosity instructions, cache TTLs, redaction toggles β these are the parts of the agentic harness that vendors will tune most aggressively because they are the highest-leverage knobs for cost control. Build your workflow around explicit settings (/effort high, /verbosity full, /redact-thinking off where available), not inherited defaults. Defaults will drift. Explicit settings will not.
Have a fallback. Laurenzo's team migrated to a competing provider mid-regression. Most teams cannot do this without weeks of friction, because their entire prompt library, agent harness, and human muscle memory are tuned to one vendor's behavior. The mitigation is to keep at least one secondary provider integrated at the harness level β even at 5% of your traffic β so that a future incident has a release valve.
Treat the post-mortem as a hiring signal. Anthropic's writeup is, by industry standards, unusually candid. It does not deflect; it identifies process gaps; it commits to specific remediations. That is the kind of post-mortem that earns continued trust despite the underlying incident. When you next evaluate an AI dev tool vendor, the question is not "have they ever had a regression" β they all will β but "what does their post-mortem look like when they do?" The Claude Code one sets a useful bar.
Prediction E026
By Q4 2026, at least one major AI dev tool vendor β Anthropic, OpenAI, GitHub, Cursor, or Cognition β will publish a public harness changelog SLA committing to pre-rollout disclosure of all behavior-affecting changes to defaults, system prompts, redaction settings, and caching behavior, with a minimum notice window for paid enterprise customers. The driver will be enterprise procurement: Fortune 500 buyers, after the AMD/Claude Code incident, will refuse to renew without it. The signal of confirmation: a published SLA document on a vendor's engineering blog that distinguishes "model weight changes" from "harness changes" and treats both as user-visible product surface. The refutation condition: through 2026, all major vendors continue to treat harness changes as undisclosed product internals. Logged in the Evidence Wall.
What this whole episode actually means
If everyone agrees, probably nobody is thinking. The current consensus is that the Claude Code regression is over, the post-mortem was good enough, the issue is closed. The actual lesson β that your AI dev tools are stochastic dependencies whose behavior is silently retunable by parties whose incentives do not match yours β is the one most teams are not yet acting on.
Stella Laurenzo had AMD-tier resources, four production projects worth of session logs, and the engineering chops to write a Pearson-correlation argument that no vendor PR team could spin against. The 99.9% of engineering teams that depend on the same tools she does have none of those things. They have a feeling that something got worse, an internal eval suite they did not write, and a vendor changelog that does not include the changes that mattered.
Anthropic, in this specific incident, behaved better than the industry average. They published a real post-mortem. They reset usage limits. They committed to harness-level eval discipline. None of which addresses the structural fact that the next incident β at Anthropic, or at any of their competitors β will arrive on the same architecture, with the same opacity, against teams who still have no contractual right to know what changed.
The Flagship Tax died. The Replacement Tax β paid in silently retuned defaults, hidden thinking, capped verbosity, and trust gaps β is the one we are all paying right now. The first vendor to publish a harness-changelog SLA wins the next decade of enterprise AI dev tools. The rest will spend the next decade discovering why.
We will be watching the changelog.
External Sources
- Anthropic Engineering β An update on recent Claude Code quality reports (April 23, 2026)
- GitHub Issue #42796 β Claude Code is unusable for complex engineering tasks with the Feb updates (Stella Laurenzo, April 12, 2026)
- The Register β Claude Code has become dumber, lazier, says AMD director
- Fortune β Anthropic explains Claude Code's recent performance decline after weeks of user backlash
- VentureBeat β Mystery solved: Anthropic reveals changes to Claude's harnesses likely caused degradation
- Bloomberg β OpenAI Pauses Stargate UK Data Center Citing Energy Costs
Related Reading on gsstk
- a0101 β The Productivity Lie: Why Your AI Tools Make You Feel Fast But Actually Make You Slow
- a0085 β The Flagship Tax Is Dead: How 72 Hours and Two 'Mid-Tier' Models Killed the $75/MTok Premium
- a0084 β The Cathedral and the Bazaar, Redux: Why Opus 4.6 and Codex 5.3 Reveal Two Incompatible Visions for the Future of Software
- a0091 β 87% of Your AI-Generated Pull Requests Have Security Vulnerabilities
- a0105 β The Transformer Wall: Why $650B in AI Capex Can't Buy You 2026 Data Centers
This article was human-architected and synthesized with AI assistance under the Icarus (AI) persona.