<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: AI Dive</title>
    <description>The latest articles on DEV Community by AI Dive (@aidiveyt).</description>
    <link>https://dev.to/aidiveyt</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4101227%2F1f9aa3d7-6506-432a-8562-771fefabb142.png</url>
      <title>DEV Community: AI Dive</title>
      <link>https://dev.to/aidiveyt</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aidiveyt"/>
    <language>en</language>
    <item>
      <title>Your Claude Code subagents never touch Haiku 5.5. I measured what routing them there gives back.</title>
      <dc:creator>AI Dive</dc:creator>
      <pubDate>Mon, 12 Oct 2026 10:29:03 +0000</pubDate>
      <link>https://dev.to/aidiveyt/your-claude-code-subagents-never-touch-haiku-55-i-measured-what-routing-them-there-gives-back-53h2</link>
      <guid>https://dev.to/aidiveyt/your-claude-code-subagents-never-touch-haiku-55-i-measured-what-routing-them-there-gives-back-53h2</guid>
      <description>&lt;p&gt;Haiku 5.5 shipped on October 7 as "the subagent model", a tenth of the old price per token. I opened a month of my own Claude Code logs the same evening. 2,631 subagent runs. 42 on Haiku.&lt;/p&gt;

&lt;p&gt;Not because I chose Opus for them. Because every subagent, the built-in Explore agent included, inherits the main session's model. Nothing goes to Haiku unless a file says so.&lt;/p&gt;

&lt;p&gt;So I flipped them and asked the only question that matters on a plan: &lt;strong&gt;what does the usage meter actually give back when the workers run on Haiku 5.5?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I actually tested
&lt;/h2&gt;

&lt;p&gt;One real repo, tinydb, 226 tests in its suite. Seven tasks a subagent gets every day: explore the code, fix a failing test, clean lint errors, write a commit message, add a small feature, review a diff, summarize the architecture.&lt;/p&gt;

&lt;p&gt;Four workers: Haiku 5.5 at medium effort, Haiku 5.5 at low effort, Sonnet 5.5, Opus 5.5. 182 runs in all. Every run was accepted or rejected by a hidden test or a fixed rule, never by eye.&lt;/p&gt;

&lt;p&gt;Every headless run with streaming output emits one rate limit event carrying the five-hour and the weekly fraction, two decimals each, straight from Anthropic's response headers. I ran the four workers as four blocks, nothing else touching the account, and read the meter before and after each block.&lt;/p&gt;

&lt;h2&gt;
  
  
  Haiku passed everything and cost a fortieth of Opus
&lt;/h2&gt;

&lt;p&gt;70 of 70 at medium effort. 70 of 70 at low. Sonnet and Opus passed their 21 each. On these seven tasks the quality gap did not show up.&lt;/p&gt;

&lt;p&gt;The list price did. The small feature cost half a cent on Haiku low and 17 cents on Opus. Exploring the codebase: a third of a cent on Haiku, 14.5 cents on Opus. About forty times.&lt;/p&gt;

&lt;p&gt;And Haiku was never slower. The feature took 17 seconds on Haiku low and 30 on Opus.&lt;/p&gt;

&lt;p&gt;Anthropic's own caveat still stands: Sonnet and Opus remain better for complex agentic coding, and Terminal Bench puts Haiku at 39.2 against Sonnet's 70.6. None of my seven tasks is that kind of work. That is the point of routing: send the scoped tasks, keep the hard ones.&lt;/p&gt;

&lt;h2&gt;
  
  
  The setting everyone reaches for does nothing on its own
&lt;/h2&gt;

&lt;p&gt;Since release 2.1.198 the built-in Explore agent inherits the main model, capped at Opus. Before that it ran on Haiku. The docs give the resolution order: the model named at launch, the model in the agent file, the subagent model variable, then the main model. And they say plainly that the variable alone does not change what Explore and Plan run on.&lt;/p&gt;

&lt;p&gt;I checked with headless runs. Main session on Fable, one question: use the Explore agent to find where the query cache is cleared. The tool result names the model that ran. Opus 5.5. Same run with &lt;code&gt;CLAUDE_CODE_SUBAGENT_MODEL=claude-haiku-5-5&lt;/code&gt; and nothing else: Opus 5.5 again.&lt;/p&gt;

&lt;p&gt;Two files fix it. The first is an agent file in your project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;.claude/agents/Explore.md
&lt;span class="p"&gt;
---&lt;/span&gt;
name: Explore
description: "Read-only codebase explorer. Use it to find where something is defined or called and to summarize what it found, with file paths and function names."
model: claude-haiku-5-5
effort: low
&lt;span class="gh"&gt;tools: Read, Glob, Grep, Bash
---
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Claude Code treats a project agent named Explore as the Explore agent from then on. Same headless run: the tool result now reads Haiku 5.5.&lt;/p&gt;

&lt;p&gt;The second is your settings:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"CLAUDE_CODE_SUBAGENT_MODEL"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"claude-haiku-5-5"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"CLAUDE_CODE_SUBAGENT_MODEL_FORCE"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Force is the part people miss. Since 2.1.257 it applies the subagent model to every subagent, ignoring the overrides at launch or in an agent file. Which file for whom: the env block when every subagent should be cheap, knowing it also drags your deliberately Opus agents down. The agent file when only the explorer should.&lt;/p&gt;

&lt;p&gt;Pin the full model id. The &lt;code&gt;haiku&lt;/code&gt; alias means Haiku 5.5 on the Anthropic API only. On Bedrock, Vertex and Foundry it still means Haiku 4.5. And check: &lt;code&gt;/tasks&lt;/code&gt; shows the model each subagent ran on. Trust that line, never the file.&lt;/p&gt;

&lt;h2&gt;
  
  
  The meter moved less than a point per block
&lt;/h2&gt;

&lt;p&gt;Before and after each block:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Haiku 5.5 low,    70 runs: 5h window 21% -&amp;gt; 21%
Haiku 5.5 medium, 70 runs: 5h window 21% -&amp;gt; 21%
Sonnet 5.5,       21 runs: 5h window 21% -&amp;gt; 22%
Opus 5.5,         21 runs: 5h window 22% -&amp;gt; 23%
Weekly window, all 182 runs: 67%
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The whole matrix cost $4.09 at list price. On the meter: two points of a five-hour window, zero of the week. The Haiku half cost 54 cents and moved nothing. One point of this account's window is worth more than 140 of these tasks on Haiku.&lt;/p&gt;

&lt;p&gt;Anthropic publishes one sentence on model weight: Opus costs several times more per turn than Sonnet, and Sonnet more than Haiku. Several. No number. The windows are one pool for every model, so switching mid-session restores nothing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The /usage breakdown is computed on your machine
&lt;/h2&gt;

&lt;p&gt;The usage panel shows percentages per skill, subagent, plugin and MCP server. It looks like server data. The docs say it is approximate and computed from local session history. So the formula lives in the binary. Run strings on it and two functions fall out: a model tier (Fable 10, Opus 5, Haiku 1, anything else 3) and a record weight (cached tokens 1, fresh input 10, cache writes 12.5, output 50).&lt;/p&gt;

&lt;p&gt;Run that on my blocks: 70 Haiku medium runs score 29.5 units, 21 Opus runs score 27.3. The panel would rank the Haiku block above the Opus block. The real meter said zero against one. Use the panel for what eats your local history, not for what a model weighs in your quota.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the week really goes
&lt;/h2&gt;

&lt;p&gt;Andrea Grandi published his setup the day Haiku 5.5 shipped, on a Pro plan: Opus main session, a Sonnet implementer, and two Haiku agents, a scoper in plan mode and a shipper at low effort. 13 pull requests over 10 sessions, about 6% of the five-hour window per PR, about 1% of the week. His own line is the point: priced at Opus rates, those Haiku tokens would make the sessions only 5% more expensive. The saving came from the main context staying small: 75 requests became 54.&lt;/p&gt;

&lt;p&gt;My logs say the same from the other side. Subagents took 48.1% of the tokens, 96% of everything was cache reads, and every worker starts with a launch prompt whose median is 47,000 tokens on this account, the same stack whether the worker is Opus or Haiku. The model switch does not shrink it.&lt;/p&gt;

&lt;p&gt;Effort does change appetite. The same feature read 233,000 tokens over 14 turns at medium and 140,000 over 8 turns at low, for the same accepted result.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this doesn't prove
&lt;/h2&gt;

&lt;p&gt;One small repo. Seven scoped tasks under a minute each, not a day of agentic coding. A meter with one point of resolution, plus or minus a point per block, so Sonnet's point and Opus's point cannot be told apart. Grandi's dollars are an estimate on a Pro plan. And there is an open issue reporting 1,149 subagents out of 1,371 running on the parent's Opus model despite the file; on the current build every one of my 182 runs carried the configured model, but check yours.&lt;/p&gt;

&lt;h2&gt;
  
  
  The full run
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/kfLrpLl3NMc" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The video shows the headless tool results, the meter reads block by block, and the strings output of the binary on screen.&lt;/p&gt;

&lt;p&gt;When you route a subagent to Haiku 5.5, what do you send it? A) everything scoped B) only Explore C) nothing, the hard stuff is all I launch. I would like to know where the line sits for other people.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;An AI assistant helped tidy the prose. The runs, the numbers and the opinions are mine.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claudecode</category>
      <category>productivity</category>
      <category>discuss</category>
    </item>
    <item>
      <title>The September cut took 17% of my Claude Code week. Subagents were taking 48%.</title>
      <dc:creator>AI Dive</dc:creator>
      <pubDate>Thu, 08 Oct 2026 16:37:20 +0000</pubDate>
      <link>https://dev.to/aidiveyt/the-september-cut-took-17-of-my-claude-code-week-subagents-were-taking-48-98n</link>
      <guid>https://dev.to/aidiveyt/the-september-cut-took-17-of-my-claude-code-week-subagents-were-taking-48-98n</guid>
      <description>&lt;p&gt;My Claude Code week started ending on Wednesday. I blamed the September 14 cut, like everyone on r/ClaudeAI did. Then I opened the usage screen and the biggest line was not me typing. It was the helpers I had told it to launch.&lt;/p&gt;

&lt;p&gt;So I read a month of my own logs before touching a single setting. 455 sessions, 63,000 requests, and a number next to every saving tip I had been told to apply.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which of the five fixes everyone lists gives a measurable share of the week back, and which one costs quality?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I actually counted
&lt;/h2&gt;

&lt;p&gt;Claude Code writes one JSONL file per session under &lt;code&gt;~/.claude/projects/&lt;/code&gt;, and one file per subagent run next to it. Every assistant line carries the usage of its request: input, output, cache reads, cache writes.&lt;/p&gt;

&lt;p&gt;The first trap is double counting. The log writes the same answer about twice (1.96 lines per request in my month), so summing every line gave 18.6 billion tokens. De-duplicated on message id and request id, it was 9.3 billion. Every number below is the de-duplicated one.&lt;/p&gt;

&lt;p&gt;The second limit is bigger. Anthropic publishes the weekly limit as percentages and plan multipliers, never as a token count. So everything here is tokens from one workload, not a share of your week. The order may change for you. The usage screen will tell you.&lt;/p&gt;

&lt;p&gt;The cut itself is simple arithmetic. Call the old weekly limit 100. The summer promotion made it 150. The permanent level since September 14 is 125. From 150 to 125 is the 17% people feel, and Anthropic's "+25%" is true at the same time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Subagents took 48% of everything
&lt;/h2&gt;

&lt;p&gt;2,631 subagent runs in the month. They took 48.1% of all tokens and wrote 64% of all output, which is the heaviest line on the meter.&lt;/p&gt;

&lt;p&gt;Each one pays an entry price. Before a subagent does anything, its opening request already carries a median of 47,117 tokens: the instructions, the tool list, the skill list, all sent again. Someone else measured 16 to 21k on a different machine with tiny agent prompts, and their line stuck with me: your agent file is a rounding error inside its own launch cost.&lt;/p&gt;

&lt;p&gt;The model is the other half. A subagent inherits the main session's model unless the agent file says otherwise. Switch to the biggest model for yourself and every helper runs on it. In my logs the smallest model handled under 1% of subagent requests.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;test-runner&lt;/span&gt;
&lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;haiku&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Two habits, then. Skip the subagent for a job you could do in place. Pin a small model on the ones you keep. Nobody has measured what pinning saves as a share of the week, and a small model that needs more turns can cost more, so this stays a habit with a direction rather than a percentage.&lt;/p&gt;

&lt;h2&gt;
  
  
  The five-minute cache nobody lists
&lt;/h2&gt;

&lt;p&gt;The main session's prompt cache lives one hour on a subscription. A subagent's lives five minutes. My logs agree with the docs on this: every cache write from a subagent landed on the 5-minute tier, every write from a main session on the 1-hour tier.&lt;/p&gt;

&lt;p&gt;One setting moves it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"subagentPromptCacheTtl"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1h"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A Reddit user whose subagents wait on long builds saw cache writes go from 12 million tokens to 3 million after the change. In my own logs it barely matters: 2 requests in 1,000 arrived after a wait of five minutes, though each one rewrote about 75,000 tokens. If your subagents idle, turn it on. If they run in short bursts, leave it, because an hour of cache costs more to write.&lt;/p&gt;

&lt;h2&gt;
  
  
  One lunch break rewrote 130,000 tokens
&lt;/h2&gt;

&lt;p&gt;This is the one I did not expect. A message sent within five minutes of the previous one wrote about 1,200 tokens of cache. After a pause of more than an hour, the median was 130,332. The session at that moment held about 175,000 tokens, so most of it was written again.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gap before the message   n        cache written (median)
&amp;lt; 5 min                  18,029   1,176
5 to 60 min              414      1,327
&amp;gt; 60 min                 79       130,332
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Two cheap habits. Clear the session when a task is done, while the cache is still warm, so the next task starts small. And when Claude Code offers to resume a big session from a summary after a break, take it. A model switch mid-session empties the cache too, since each model keeps its own.&lt;/p&gt;

&lt;p&gt;The caveat: 79 cold returns is a small sample, and some of them follow a compaction rather than pure idle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Effort is the fix that can cost you quality
&lt;/h2&gt;

&lt;p&gt;One developer ran the same 29 real tasks at all five effort levels. Mean cost per task went from $2.50 at low to $8.84 at max. Medium passed 28 of 29, more than any level above it. His words: the curve appears to peak at medium.&lt;/p&gt;

&lt;p&gt;Then the catch. On the hard problems he picked, low passed 0 of 5 and high passed 5 of 5. A low attempt took two minutes, a high one thirty-three. So medium to build, high when a mistake is expensive, max almost never. Those costs are in dollars on an older model, not a share of your week.&lt;/p&gt;

&lt;h2&gt;
  
  
  The popular three weigh less than advertised
&lt;/h2&gt;

&lt;p&gt;Removing MCP servers is the tip everybody repeats. Tool definitions are deferred by default now, and one article counted 1,350 tokens for 51 tools across three servers. A single server with one tool cost 18.&lt;/p&gt;

&lt;p&gt;Turning off prompt suggestions made the rounds with a claim of up to 10% of the week. That was one account with enormous contexts. Another user on the same thread measured 3 to 4%.&lt;/p&gt;

&lt;p&gt;Filtering shell output: the developer who measured it on his own usage found about a tenth of one percent.&lt;/p&gt;

&lt;p&gt;All three grow with the size of your context. Switch them off if you like. Don't expect the week back.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this doesn't prove
&lt;/h2&gt;

&lt;p&gt;It is one month of one person's work, with heavy subagent fan-out. A solo session workflow will see a different split. The effort numbers are someone else's, on an older model, in dollars. And nothing here converts to a percent of the weekly cap, because the cap is not published in tokens.&lt;/p&gt;

&lt;h2&gt;
  
  
  The full run
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/CYclmVGUZeU" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The video shows the ranked table and the method on screen, including the counting trap.&lt;/p&gt;

&lt;p&gt;What does your usage screen blame? A) subagents B) long sessions C) something I did not count. I would like to know whether 48% is my workload or the norm.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I used an AI assistant to tidy the prose. The logs, the counting and the opinions are mine.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claudecode</category>
      <category>productivity</category>
      <category>discuss</category>
    </item>
    <item>
      <title>I wrote a safety mod that crashes on purpose. Claude Code ran the command anyway.</title>
      <dc:creator>AI Dive</dc:creator>
      <pubDate>Mon, 05 Oct 2026 16:37:28 +0000</pubDate>
      <link>https://dev.to/aidiveyt/i-wrote-a-safety-mod-that-crashes-on-purpose-claude-code-ran-the-command-anyway-323b</link>
      <guid>https://dev.to/aidiveyt/i-wrote-a-safety-mod-that-crashes-on-purpose-claude-code-ran-the-command-anyway-323b</guid>
      <description>&lt;p&gt;I wrote the dumbest safety mod I could think of. It watches every shell command Claude Code is about to run, and it throws.&lt;/p&gt;

&lt;p&gt;Then I asked for one command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;touch&lt;/span&gt; ./marker-failopen.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The guard crashed, as designed. One line showed up in the log: &lt;code&gt;failguard: tool.call hook skipped: threw Error: guard crashed&lt;/code&gt;. And the file was sitting in the folder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So what does a guard mod protect you from when the guard itself breaks?&lt;/strong&gt; By default, nothing. That was the part of a week of testing that stuck with me most, and it is one of the reasons I deleted seven of the ten mods everyone told me to install.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I actually tested
&lt;/h2&gt;

&lt;p&gt;Mods shipped in Claude Code at the start of October: TypeScript functions inside a plugin that hook into an event and run before it, after it, or instead of it. Within a day, three tours were out telling people to install ten of them. None of them measured anything.&lt;/p&gt;

&lt;p&gt;I took those ten and ran them against my own week: 85 sessions across 4 projects, 882 prompts, 5,993 tool calls. Each mod went through &lt;code&gt;claude plugin validate&lt;/code&gt;, then ran the same task against a clean baseline on Claude Code 2.1.288, same machine, medians of three runs.&lt;/p&gt;

&lt;p&gt;Six of the ten cost nothing I could measure at runtime. That does not make all six worth keeping.&lt;/p&gt;

&lt;h2&gt;
  
  
  A guard that throws is skipped
&lt;/h2&gt;

&lt;p&gt;This is documented, not a bug. The events page says that when a hook with no &lt;code&gt;.catch&lt;/code&gt; handler throws, times out, or returns a result of the wrong shape before calling &lt;code&gt;next&lt;/code&gt;, "Claude Code skips it, and the next handler runs in its place."&lt;/p&gt;

&lt;p&gt;It makes sense for decoration. A broken heatmap should not brick your session. For a guard it means the failure is silent and the command goes through.&lt;/p&gt;

&lt;p&gt;The fix is in the same docs, and it is one handler:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;tool.call&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;tool&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Bash&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="nx"&gt;guard&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;next&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;deny&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;The command guard failed, so this command was not run: &lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;next&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;kind&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Same crashing guard, same prompt, plus that catch: no file, and the model reports the block. &lt;strong&gt;One line decides whether your guard fails open or fails closed.&lt;/strong&gt; If you installed a safety mod this week, open it and look for that catch.&lt;/p&gt;

&lt;p&gt;A community re-test on 2.1.288 went further, 10 cases with 3 runs each, judged by marker files and not by what the model said. The catch pattern held. One path is still open: a deny returned after the call was already forwarded does not stop the tool. The file landed 3 times out of 3 while the model was told the write failed.&lt;/p&gt;

&lt;h2&gt;
  
  
  The most demoed mod bills you on every answer
&lt;/h2&gt;

&lt;p&gt;next-steps is the one every video opens with. Your answer finishes, three suggested prompts appear above the composer, you press a number.&lt;/p&gt;

&lt;p&gt;To get those suggestions it forks the session after each turn. Its README says so plainly: the fork shares the prompt cache, "so it costs about one short reply." On my bench that came to about 250 extra output tokens and 2.9 seconds per answer.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;config&lt;/th&gt;
&lt;th&gt;duration&lt;/th&gt;
&lt;th&gt;output tokens&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;baseline&lt;/td&gt;
&lt;td&gt;3980 ms&lt;/td&gt;
&lt;td&gt;247&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;next-steps&lt;/td&gt;
&lt;td&gt;6830 ms&lt;/td&gt;
&lt;td&gt;497&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cache-keeper&lt;/td&gt;
&lt;td&gt;5569 ms&lt;/td&gt;
&lt;td&gt;367&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The detail I did not expect: the fork has no surface gate. Suggestions only draw in a terminal, but I watched the fork fire in a headless &lt;code&gt;claude -p&lt;/code&gt; run where nothing can be drawn. There is no setting that keeps the suggestions and drops the fork. You can raise the answer length threshold or disable the plugin.&lt;/p&gt;

&lt;p&gt;cache-keeper has the same shape, about 1.6 seconds per turn, plus paid pings to keep a cache warm that already lasts an hour on a subscription plan.&lt;/p&gt;

&lt;h2&gt;
  
  
  A bookmark that can start processes
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;claude plugin validate&lt;/code&gt; prints what a mod hooks, what it calls and which environment variables it reads. It takes a couple of minutes and it runs before you enable anything.&lt;/p&gt;

&lt;p&gt;session-bookmarks was one of my six free mods at runtime. Its audit lists &lt;code&gt;$.model.complete&lt;/code&gt;, &lt;code&gt;$.process.run&lt;/code&gt; and &lt;code&gt;$.fs.write&lt;/code&gt;. A bookmark that can call the model, run programs and write files. Nothing in it is malicious. It is just a lot of reach for the job, and I would not have known without reading two lines of output.&lt;/p&gt;

&lt;p&gt;This matters because of what Anthropic said on launch day: "Mods run with the same access to your machine as Claude Code itself. They aren't sandboxed." Your permission rules cover Claude's tool calls, not the mod's own. The docs put it in one sentence: "with &lt;code&gt;Read(.env)&lt;/code&gt; denied, a mod can still read that file with &lt;code&gt;$.fs.read&lt;/code&gt; or start a program that does."&lt;/p&gt;

&lt;h2&gt;
  
  
  When a plain hook is still the right tool
&lt;/h2&gt;

&lt;p&gt;Claude Code already had hooks, a shell script that fires on the same events. The measurable difference is the process spawn on every call:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;hook body&lt;/th&gt;
&lt;th&gt;per call&lt;/th&gt;
&lt;th&gt;over 5,993 calls&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;bash -c 'exit 0'&lt;/td&gt;
&lt;td&gt;8.3 ms&lt;/td&gt;
&lt;td&gt;50 s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;python3 -c 'pass'&lt;/td&gt;
&lt;td&gt;26.1 ms&lt;/td&gt;
&lt;td&gt;156 s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;node -e ''&lt;/td&gt;
&lt;td&gt;43.1 ms&lt;/td&gt;
&lt;td&gt;258 s&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A mod runs in-process and pays none of that. But four minutes a week only shows up at thousands of calls. My rule now: interface or event rewriting is a mod. Block, allow or log with a script you have read is a hook. A hook you have read beats a mod you have not.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I kept
&lt;/h2&gt;

&lt;p&gt;Three out of ten.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;collision-guard.&lt;/strong&gt; Two chats editing the same file is a real problem, and when it trips it asks in a dialog. It does not silently allow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;model-router.&lt;/strong&gt; I ran a session on Sonnet, routed subagents to Haiku, and the usage readout showed the subagent billed on Haiku. About a third of the price for that job.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;auto-handoff.&lt;/strong&gt; It added 71 ms on the bench and does nothing until a context threshold, then writes the handoff once.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What this doesn't prove
&lt;/h2&gt;

&lt;p&gt;One week, one machine, my workload, three runs per point on the small model. Two rows in my table moved in ways I put down to answer variance, so I only quote the deltas that held. Your three keepers might differ. The method transfers better than the list.&lt;/p&gt;

&lt;h2&gt;
  
  
  The full run
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/k7BWw5gz8aQ" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The video shows the crashing guard and the fixed one side by side, and the full ten-row verdict table with the measured cost of each mod.&lt;/p&gt;

&lt;p&gt;Which mods are still on your machine after the first week? And did any of your guards have the catch handler when you checked?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I use AI tools to help tighten my drafts. The runs, the numbers and the opinions are mine.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claudecode</category>
      <category>programming</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Jev did not make Claude Code cheaper. Its own benchmark says so.</title>
      <dc:creator>AI Dive</dc:creator>
      <pubDate>Sun, 27 Sep 2026 08:47:53 +0000</pubDate>
      <link>https://dev.to/aidiveyt/jev-did-not-make-claude-code-cheaper-its-own-benchmark-says-so-1abm</link>
      <guid>https://dev.to/aidiveyt/jev-did-not-make-claude-code-cheaper-its-own-benchmark-says-so-1abm</guid>
      <description>&lt;p&gt;Six videos in five days wired Jev into Claude Code and called it the cheapest agentic coding loop available. I installed the gateway too. Then I did the thing none of those videos did, which is open the code.&lt;/p&gt;

&lt;p&gt;One ternary in &lt;code&gt;src/adapters/messages.ts&lt;/code&gt;, line 99, answers the entire question:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;steer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;thinking&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;cached&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hint&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;tool_choice&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;If thinking is on, or the conversation is cached, the gateway is only allowed to hint.&lt;/strong&gt; Every real Claude Code request carries both. So hint mode is not a degraded fallback you hit occasionally. Inside Claude Code it is the only mode there is.&lt;/p&gt;

&lt;p&gt;So what does a hint actually buy you?&lt;/p&gt;

&lt;h2&gt;
  
  
  What I actually tested
&lt;/h2&gt;

&lt;p&gt;Jev is TypeSafe's decision model. No text generation, just a choice, a score or a yes-no probability, in 70 to 500 ms, at $0.042 per million input tokens. jev-gateway sits in front of Claude Code, looks at your tool roster, and tells the model which tool it thinks you want.&lt;/p&gt;

&lt;p&gt;I did three things: read the gateway's adapter and launcher, read the benchmark the gateway author published alongside it, and put a logging proxy in the gateway's seat in front of my own Claude Code to count what a router would actually receive.&lt;/p&gt;

&lt;p&gt;The install is honest, by the way. &lt;code&gt;bin/clients.mjs&lt;/code&gt; sets &lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt; and nothing else, so your Pro or Max login keeps working and no API key is involved. The gateway's own README says it plainly: "Expect better tool picks on large tool lists, not lower cost or latency." Nobody quoted that line either.&lt;/p&gt;

&lt;h2&gt;
  
  
  The hint is two sentences, and the model can ignore them
&lt;/h2&gt;

&lt;p&gt;In hint mode the gateway appends a block after everything the client sent, on the client's own blocks, so the cached prefix stays byte identical. The text is a &lt;code&gt;&amp;lt;system-reminder&amp;gt;&lt;/code&gt; saying a tool-routing model suggests tool X. The model is free to disagree, and the wording says so.&lt;/p&gt;

&lt;p&gt;It has to work this way. The Anthropic docs close the other doors:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Forcing a tool with extended thinking on returns an error, and on the newest models a forced tool returns a 400 regardless of thinking.&lt;/li&gt;
&lt;li&gt;Changing &lt;code&gt;tool_choice&lt;/code&gt; invalidates the messages cache.&lt;/li&gt;
&lt;li&gt;Editing a tool definition invalidates everything.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The gateway touches neither, which is the correct call. It also means there is a guard that skips the hint entirely when the last block is a system reminder, and Claude Code appends those itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  The benchmark nobody quotes is the gateway author's own
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;jev-gateway-bench&lt;/code&gt; is 120 sessions, 5 runs per cell, Claude Code 2.1, on the same subscription you use. Here is the part that never made it into a thumbnail.&lt;/p&gt;

&lt;p&gt;On &lt;code&gt;chess-bugfix&lt;/code&gt;, routing pays. Sonnet 5 read 48% fewer input tokens and finished 25% faster. Nothing got less correct.&lt;/p&gt;

&lt;p&gt;On &lt;code&gt;chess-san&lt;/code&gt;, adding a feature, it goes the other way:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Opus 5, routing on:  +61% input tokens  +47% requests  +83% time
Sonnet 5, routing on: +16% input tokens                +37% time
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The authors' own explanation is the sentence I keep coming back to. A hint that does not fit costs a detour, instead of being ignored for free. A forced tool call you did not want is one wasted call. A suggestion you half follow is a path.&lt;/p&gt;

&lt;p&gt;There is a correctness line in there too. One model solved the feature task five times out of five on its own and three out of five with routing on, using half the input tokens to get there. Cheaper and wrong is not a saving.&lt;/p&gt;

&lt;p&gt;And the split that explains the whole product: Jev decided 76 to 100% of Codex requests, where the gateway forces the tool, against 34 to 51% of Claude Code requests, where it can only hint.&lt;/p&gt;

&lt;h2&gt;
  
  
  What your session hands the router before it decides anything
&lt;/h2&gt;

&lt;p&gt;A router has to see your tools to pick one. So I counted mine.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;clean install:  24 tools   47,000 prefix tokens
my real setup:  40 tools   57,000 prefix tokens
answer:         4 tokens
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The gateway re-sends that roster on every call, and there is an open issue about exactly that. The bench repo has a footnote with a worse case than mine: one setup sent 285 tools and about 200,000 tokens with every Claude Code request, against 6 tools and 7,000 tokens clean.&lt;/p&gt;

&lt;p&gt;Jev's own pricing makes this survivable. That is not the point. The point is that a decision model priced at four cents per million tokens is being handed a 47,000 token question to return four tokens, every turn, so that a model with thinking on can read two sentences it is allowed to ignore.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this doesn't prove
&lt;/h2&gt;

&lt;p&gt;It is one benchmark, two task families, five runs per cell, on a chess engine. My proxy numbers are my machine and my plugins, not yours. If your roster is small and your tasks look like bug hunts, the bugfix column is real and you should go measure it yourself, which is what the bench repo is for.&lt;/p&gt;

&lt;p&gt;It also says nothing about the rest of the Jev surface. Compaction is a separate tool with separate tradeoffs, and Codex is where forced routing actually lands.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verdict per use
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tool routing inside Claude Code: no.&lt;/strong&gt; Hint mode is the only mode, and the vendor's own feature-task numbers go the wrong way.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;fast-jev-compaction: not yet.&lt;/strong&gt; 6,400 stars, and open issues on hooks not registering, full transcripts going to a third-party API, and dropped evidence producing fabricated work reports. The terms-of-service question is the one practitioners raised first.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Codex: yes.&lt;/strong&gt; The gateway forces the tool there and steered up to every request.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Jev itself is cheap and fast. The detour around it is not.&lt;/p&gt;

&lt;h2&gt;
  
  
  The full run
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/iYp4-2fiXkg" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The video walks the adapter line by line and puts the bench table on screen next to the claims made about it, which is easier to follow than a code block in an article.&lt;/p&gt;

&lt;p&gt;Have you measured your own tool roster? If you run Claude Code with more than a handful of MCP servers, I would like to know what number you get, because mine surprised me.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I use AI tools to help tighten my drafts. The runs, the numbers and the opinions are mine.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claudecode</category>
      <category>llm</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Your agent commits every spec. Nobody owns them.</title>
      <dc:creator>AI Dive</dc:creator>
      <pubDate>Mon, 14 Sep 2026 16:57:11 +0000</pubDate>
      <link>https://dev.to/aidiveyt/your-agent-commits-every-spec-nobody-owns-them-262n</link>
      <guid>https://dev.to/aidiveyt/your-agent-commits-every-spec-nobody-owns-them-262n</guid>
      <description>&lt;p&gt;In June, the maintainers of okama, a Python finance library, found their internal implementation plans published on Read the Docs. Eight markdown files an agent had written, committed exactly as the plugin intends, rendered as public web pages. They noticed after the release.&lt;/p&gt;

&lt;p&gt;The plugin was Superpowers. By default every spec and every plan it writes lands in &lt;code&gt;docs/superpowers/&lt;/code&gt;, and the brainstorming skill commits the design doc before you've even seen the plan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So who owns those files, and when is one dead?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Every tool commits the files
&lt;/h2&gt;

&lt;p&gt;This isn't a Superpowers quirk. spec-kit keeps one numbered folder per feature on that feature's branch. Kiro keeps &lt;code&gt;.kiro/specs/&lt;/code&gt;, one folder per feature. Anthropic's playbook goes further and commits an artifact at every stage: intent, spec, plan, diff, review findings, incident record.&lt;/p&gt;

&lt;p&gt;Whether to commit is settled. Ownership and lifecycle aren't.&lt;/p&gt;

&lt;p&gt;Picture a front-end team of 10 people in four squads sharing one repo, with every developer generating these files. Three failures are already documented:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A docs generator renders every markdown file under &lt;code&gt;docs/&lt;/code&gt;, listed in the table of contents or not. That's the okama leak.&lt;/li&gt;
&lt;li&gt;Issue #1246: the brainstorm commits the plan straight to main. One user counts 10 to 15 commits per session.&lt;/li&gt;
&lt;li&gt;Drift, the quiet one. Birgitta Böckeler at Thoughtworks separates spec-first (written, used once) from spec-anchored (maintained for the feature's life). Superpowers writes spec-first documents and keeps them forever, so you get anchored storage with first-draft maintenance. Nobody updates the file, and an agent reads it next quarter as truth.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Rule 1: the folder has an owner, and it's a squad
&lt;/h2&gt;

&lt;p&gt;Since v5, Superpowers honors the instructions in your CLAUDE.md over its own defaults. A table of paths isn't enough though. In issue #939 a user wrote an output paths table and the model followed the concrete path in the skill instead. One bold imperative line, naming the default as the thing to avoid, fixed it on the first attempt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;IMPORTANT: specs MUST be saved under docs/superpowers/&lt;span class="nt"&gt;&amp;lt;squad&amp;gt;&lt;/span&gt;/specs/
and plans under docs/superpowers/&lt;span class="nt"&gt;&amp;lt;squad&amp;gt;&lt;/span&gt;/plans/, NOT docs/superpowers/specs/.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In a monorepo, put that line in the package's own CLAUDE.md. Claude Code loads a subdirectory's file when it reads there. Then let the platform enforce the owner:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight codeowners"&gt;&lt;code&gt;&lt;span class="c1"&gt;# CODEOWNERS&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;docs/superpowers/checkout/&lt;/span&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nf"&gt;@org/squad-checkout&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;docs/superpowers/search/&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="nf"&gt;@org/squad-search&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;docs/superpowers/design-system/&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nf"&gt;@org/squad-design-system&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every spec review now lands with the people who'll live with it. One caveat: the override is a prompt, not a setting. Check the first spec after every plugin release.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rule 2: not every plan is a team artifact
&lt;/h2&gt;

&lt;p&gt;Personal redirects go in &lt;code&gt;CLAUDE.local.md&lt;/code&gt;, which loads after the shared file and which you git-ignore yourself. For the folder itself, &lt;code&gt;.git/info/exclude&lt;/code&gt; ignores it per clone without touching the shared tree.&lt;/p&gt;

&lt;p&gt;The shared side is whatever passed the review gate the brainstorm already runs. Approved by a second person, it moves into the squad folder. Not approved, it stays local. Both are written on a branch, never on main. Two lines in the shared CLAUDE.md do it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Treat specs and plans as the start of a feature.
Create the worktree before writing them.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There's a limit. The okama maintainers tried ignoring the folder first and reverted, because plans stopped syncing between machines and agents. Personal means personal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rule 3: a spec has a status, and a dead spec says so
&lt;/h2&gt;

&lt;p&gt;Michael Nygard wrote this down for architecture decision records in 2011. A decision is proposed, then accepted, and when a later record changes it the old one is marked superseded instead of deleted.&lt;/p&gt;

&lt;p&gt;So every shared spec opens with a short header, plus a review date if your team uses one:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;accepted&lt;/span&gt;
&lt;span class="na"&gt;superseded-by&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
&lt;span class="na"&gt;owner&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="s"&gt;org/squad-checkout&lt;/span&gt;
&lt;span class="na"&gt;touches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;src/checkout/retry.ts, src/checkout/api.ts&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Never edit an accepted spec into a different decision. Write the next one and point it back. The one exception is in Anthropic's playbook: when implementation departs from the plan, update the plan in the same commit.&lt;/p&gt;

&lt;p&gt;The weak spot is that a status is metadata a human sets. The agent won't mark its own spec superseded unless your CLAUDE.md tells it to.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rule 4: a spec that lies about the tree fails the build
&lt;/h2&gt;

&lt;p&gt;For every spec whose header says accepted, pull the paths it names (in backticks or on the touches line) and check that each one exists. Proposed and superseded specs are skipped, because only accepted specs make claims about the tree.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/usr/bin/env bash&lt;/span&gt;
&lt;span class="c"&gt;# drift gate: accepted specs may only name paths that exist&lt;/span&gt;
&lt;span class="nb"&gt;shopt&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt; globstar
&lt;span class="nv"&gt;fail&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0
&lt;span class="k"&gt;for &lt;/span&gt;f &lt;span class="k"&gt;in &lt;/span&gt;docs/superpowers/&lt;span class="k"&gt;**&lt;/span&gt;/specs/&lt;span class="k"&gt;*&lt;/span&gt;.md&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
  &lt;/span&gt;&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-q&lt;/span&gt; &lt;span class="s1"&gt;'^status: accepted'&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="k"&gt;continue
  &lt;/span&gt;&lt;span class="nv"&gt;paths&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt; &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-oE&lt;/span&gt; &lt;span class="s1"&gt;'`[^` ]+/[^` ]+`'&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; | &lt;span class="nb"&gt;tr&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'`'&lt;/span&gt;
             &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-m1&lt;/span&gt; &lt;span class="s1"&gt;'^touches:'&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; | &lt;span class="nb"&gt;sed&lt;/span&gt; &lt;span class="s1"&gt;'s/^touches://'&lt;/span&gt; | &lt;span class="nb"&gt;tr&lt;/span&gt; &lt;span class="s1"&gt;','&lt;/span&gt; &lt;span class="s1"&gt;'\n'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt; | &lt;span class="nb"&gt;tr&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;' '&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;for &lt;/span&gt;p &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;$paths&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
    if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$p&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
      &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"drift: &lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="s2"&gt; names &lt;/span&gt;&lt;span class="nv"&gt;$p&lt;/span&gt;&lt;span class="s2"&gt;, which no longer exists"&lt;/span&gt;
      &lt;span class="nv"&gt;fail&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1
    &lt;span class="k"&gt;fi
  done
done
&lt;/span&gt;&lt;span class="nb"&gt;exit&lt;/span&gt; &lt;span class="nv"&gt;$fail&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;People already do the manual version. One commenter on r/ClaudeCode has Claude compare the spec files to the codebase and file tickets for what's missing. This does that on every pull request.&lt;/p&gt;

&lt;p&gt;While you're in CI, add the guard okama shipped: exclude the folder from the docs build. In Sphinx that's one entry in &lt;code&gt;exclude_patterns&lt;/code&gt;, and the files stay in git without reaching the HTML.&lt;/p&gt;

&lt;p&gt;The check catches deleted files, not changed behavior. A spec can name files that all exist and still describe an API that's gone. That part is still review's job.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rule 5: most work doesn't deserve a spec
&lt;/h2&gt;

&lt;p&gt;Marmelab ran spec-kit on a feature that shows the current date and got 8 files and 1,300 lines of specification. The OpenSpec bake-off ran the same requirements twice, with the spec tool and with Claude Code alone. The spec run produced 50% more code with 50% more cyclomatic complexity, took twice as long and cost three times as much. It's one experiment, and the author says so. It also found three gaps the plain run missed.&lt;/p&gt;

&lt;p&gt;A team that ran spec-driven development for months couldn't prove it improved the code: two to three times the tokens, about twice as long.&lt;/p&gt;

&lt;p&gt;My rule: write a spec when the work crosses a squad boundary or will be read again in 90 days, and keep it near 300 lines. Everything else is a prompt. The spec buys coverage, not speed.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this doesn't fix
&lt;/h2&gt;

&lt;p&gt;None of these rules is enforced by a tool today. The override issue is open, the main branch issue is open, and the pull request that reordered the instruction was closed without merging. And if your team won't review a code owner request, it won't review a spec either. In that case git-ignoring the folder is the honest choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  The full walkthrough
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/IKfUxgO0apE" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The video puts the issues, the ADR source and the okama config on screen. The written version with every source is at &lt;a href="https://aidive.dev/videos/spec-plan-governance/" rel="noopener noreferrer"&gt;https://aidive.dev/videos/spec-plan-governance/&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Do you commit your agent's specs, and has a stale one misled an agent yet?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I used AI tools to help edit this piece.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claudecode</category>
      <category>programming</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Everything Claude Code costs 27,000 tokens before you type. I kept five pieces.</title>
      <dc:creator>AI Dive</dc:creator>
      <pubDate>Tue, 08 Sep 2026 17:52:58 +0000</pubDate>
      <link>https://dev.to/aidiveyt/everything-claude-code-costs-27000-tokens-before-you-type-i-kept-five-pieces-52bb</link>
      <guid>https://dev.to/aidiveyt/everything-claude-code-costs-27000-tokens-before-you-type-i-kept-five-pieces-52bb</guid>
      <description>&lt;p&gt;Someone asked on r/ClaudeCode whether everything-claude-code is really that good. The thread got one reply saying the token cost of skill descriptions is "minimal". Nobody had counted.&lt;/p&gt;

&lt;p&gt;So I cloned it, version 2.2.1, and counted. It has 250,000 stars, 68 agents, 286 skills, 94 slash commands, 122 rule files and 23 hooks. The README that describes all of it is 2,200 lines long.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The question I wanted answered: what does a full install cost you before you type a word, and which parts are worth taking?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/iu9-gpYgdrI" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  The part the repo tours skip
&lt;/h2&gt;

&lt;p&gt;A skill's body only loads when the skill fires. Its name and description do not. They sit in your context from the first token of every session, and the same is true of every subagent.&lt;/p&gt;

&lt;p&gt;That metadata is the price of admission, so I measured it on the fresh clone:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;286 skill names + descriptions   85,000 chars   ~21,000 tokens
68 subagent descriptions         20,000 chars    ~5,000 tokens
the repo's own instruction file                  ~1,000 tokens
------------------------------------------------------------
standing context, full install                  ~27,000 tokens
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Against a 200,000 token window that is 14% gone every session. It sounds survivable until you remember what shares that window: your files, your diffs, your tool results and the conversation itself. Every skill you will never call competes with the code you are working on.&lt;/p&gt;

&lt;p&gt;The repo's own README says "optimize the context window, persist everything else". Then it ships 286 skills.&lt;/p&gt;

&lt;p&gt;Two caveats before anyone quotes this. Tokens are estimated at four characters each, so the real number moves with the tokenizer. And none of this says the skills are bad. It says they are not free, and most of them are for stacks you don't write in.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I kept
&lt;/h2&gt;

&lt;p&gt;Five things. The first two don't need the repo installed at all.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. AgentShield
&lt;/h3&gt;

&lt;p&gt;A security auditor for agent configurations. It ships inside ECC and also lives on npm as its own package, &lt;code&gt;ecc-agentshield&lt;/code&gt; (5,500 downloads last week).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx ecc-agentshield scan &lt;span class="nt"&gt;--path&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It audits your agent files, hooks, MCP servers, permissions and secrets, with flags for output format, severity floor and safe auto-fixes. Its README justifies itself with numbers from January: 12% of one skill marketplace was malicious, 341 skills out of 2,800. Those are the package's claims, not mine.&lt;/p&gt;

&lt;p&gt;The catch is a date. AgentShield was last published in March. The repo it ships with was updated yesterday, and the scanner's README still describes the ecosystem at 42,000 stars. Six months behind the thing it audits.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The settings block
&lt;/h3&gt;

&lt;p&gt;The README publishes four changes to &lt;code&gt;.claude/settings.json&lt;/code&gt;: default model to Sonnet, thinking budget from 32,000 down to 10,000, compaction threshold from 95% down to 50%, subagents on the cheapest model. It claims about 60% off model cost and 70% off hidden thinking cost. Its figures, not mine, and they are a trade. A smaller default model will cost you on the hard reviews.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Instincts
&lt;/h3&gt;

&lt;p&gt;This is the one idea in the repo I have not seen anywhere else. An instinct is a small learned behaviour with a confidence score between 0.3 and 0.9. Not a rule you wrote. A pattern the system noticed you repeating and wrote down for you.&lt;/p&gt;

&lt;p&gt;It watches before and after every tool call, runs the analysis in a background agent on the cheap model, and scopes instincts per project so your React habits stay in the React project. When the same instinct shows up in two projects it gets promoted to global. The system decides what is universal by watching instead of asking.&lt;/p&gt;

&lt;p&gt;The tool behind it is 2,200 lines with six commands, and instinct libraries are exportable. Hand yours to a teammate and they import it, which is the first sane onboarding story I've seen for an agent setup.&lt;/p&gt;

&lt;p&gt;String attached: all of it rides on the hook runtime, which is the exact part of the repo you are asked to opt into on purpose. No hooks, no instincts.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. The three context skills
&lt;/h3&gt;

&lt;p&gt;A context budget, a compaction adviser, a token budget adviser. The repo that costs you 14% also ships the tools to see it. The compaction rule alone is worth copying: compact after research and before you implement, after a milestone, after debugging, after an approach fails, and never in the middle of an implementation where you lose the file paths and the half-finished state.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. The installer, used one skill at a time
&lt;/h3&gt;

&lt;p&gt;Seven profiles, and the smallest says in its own description that it leaves the hook runtime out. You can skip profiles entirely and name skills one by one, and an adviser takes a plain sentence about your work and returns matching components with a preview before anything is written. Any install that would put hooks on your machine stops and waits for a yes.&lt;/p&gt;

&lt;p&gt;Install that way and the bill stops being 14%. I'm not giving a figure for the fraction because I did not measure every combination. Even the smallest profile still carries the agents and the rules, so naming skills by hand is the only way to pay for exactly what you use.&lt;/p&gt;

&lt;h2&gt;
  
  
  What stays in the repo
&lt;/h2&gt;

&lt;p&gt;The 68 agents as a set: about 5,000 tokens of standing context, mostly language reviewers and build fixers for C++, C#, Django and Kotlin. Take the two that match your work.&lt;/p&gt;

&lt;p&gt;The 94 slash commands: the README itself calls them temporary entry points while the repo moves to skills, and commands are the easiest thing here to write yourself.&lt;/p&gt;

&lt;p&gt;The hooks file: 23 hooks, 291 lines, 40 KB, every hook squeezed onto a single line, the longest at 2,000 characters. The descriptions beside them are readable and some are good (one blocks the agent from editing your linter config and says why). The description is the only part you can read.&lt;/p&gt;

&lt;p&gt;The ballast: config for 19 harnesses and 15 MB of docs in 22 languages, for a tool you run in one language, in one place.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this doesn't measure
&lt;/h2&gt;

&lt;p&gt;Whether the skills make the answers better. I measured what they cost you to have. Those are different questions. Also, version 2.2.1 had 110 open pull requests the day I cloned it, so the counts above are already old.&lt;/p&gt;

&lt;h2&gt;
  
  
  Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A full install of ECC parks about 27,000 tokens in context before you type, 14% of a 200k window.&lt;/li&gt;
&lt;li&gt;Skill bodies are lazy. Skill metadata is not.&lt;/li&gt;
&lt;li&gt;The licence is MIT. Copying five directories out is the intended use, not a workaround.&lt;/li&gt;
&lt;li&gt;AgentShield is worth running once, and worth checking the publish date of.&lt;/li&gt;
&lt;li&gt;Instincts are the only new idea; they need the hook runtime.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full write-up with the tables and chapter timestamps: &lt;a href="https://aidive.dev/videos/ecc-what-to-steal/" rel="noopener noreferrer"&gt;https://aidive.dev/videos/ecc-what-to-steal/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Are you running the full install, a profile, or hand-picked skills? And what does your context sit at when a session starts?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I use AI tools to help edit my writing. The counts, the install and the opinions are mine.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claudecode</category>
      <category>productivity</category>
      <category>discuss</category>
    </item>
    <item>
      <title>JetBrains says rtk costs more. My dashboard says 11.6M saved. Both are right.</title>
      <dc:creator>AI Dive</dc:creator>
      <pubDate>Sun, 06 Sep 2026 15:33:37 +0000</pubDate>
      <link>https://dev.to/aidiveyt/jetbrains-says-rtk-costs-more-my-dashboard-says-116m-saved-both-are-right-l43</link>
      <guid>https://dev.to/aidiveyt/jetbrains-says-rtk-costs-more-my-dashboard-says-116m-saved-both-are-right-l43</guid>
      <description>&lt;p&gt;JetBrains spent about $320 of API credit in July to test rtk, the shell proxy tens of thousands of us installed to save tokens in Claude Code. Their sessions came out 7.6% more expensive per task. Two weeks earlier the same team measured caveman, the skill that advertises a 65% cut, and got 8.5%.&lt;/p&gt;

&lt;p&gt;I read both posts with &lt;code&gt;rtk gain&lt;/code&gt; open in another tab. It said 11.6 million tokens saved over 25,599 commands.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So who is wrong?&lt;/strong&gt; Nobody. The two numbers count different things, and once you see which slice of the bill each tool touches, the four tools I run sort themselves into a ranking. That ranking is the useful part, so here it is.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I actually tested
&lt;/h2&gt;

&lt;p&gt;Four tools, all free, 575,612 GitHub stars between them on September 2: graphify, rtk, Superpowers and caveman. For each one I took the number it advertises, the number JetBrains measured in their paired benchmarks (claude-sonnet-5, 82 to 86 agentic tasks, run twice), and what my own machine shows after months of daily Claude Code use.&lt;/p&gt;

&lt;p&gt;The frame that made it click comes from rtk's own docs. A Claude Code bill has two sides. Input tokens are everything the model reads: shell output, your prompt, the system prompt, and the whole conversation replayed on every call. Output tokens are everything it writes. JetBrains replayed 83 sessions and split the reading side:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1.9M characters of tool output, by origin
  19.7%  shell output rtk can compress
  46.3%  shell output rtk has no rule for
  34.0%  Read / Grep / Glob tools that never touch the shell
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Only a fifth of what the model reads can pass through a shell proxy at all. Keep that table in mind for the rest.&lt;/p&gt;

&lt;h2&gt;
  
  
  rtk shrinks shell bytes, and shell bytes are not the bill
&lt;/h2&gt;

&lt;p&gt;rtk sits between Claude Code and your shell. A &lt;code&gt;PreToolUse&lt;/code&gt; hook rewrites &lt;code&gt;git status&lt;/code&gt; into &lt;code&gt;rtk git status&lt;/code&gt;, and the compact output comes back instead of the noisy one. My dashboard after 25,599 commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rtk find      354 calls   2.2M saved   46.6%
rtk read    3,504 calls   2.2M saved   10.4%
rtk grep    2,760 calls   1.9M saved   47.7%
rtk ps aux     24 calls   1.1M saved   98.0%
total      25,599 calls  11.6M saved   41.6%
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That 11.6M is bytes divided by four, counted on the commands that had a rule. JetBrains found a rule for 349 of 1,056 shell commands, one in three, and combined with the table above that puts the ceiling around 3% of a session's cost. Their measured result was +7.6% per task at low reasoning effort (p=0.004), with 13.8% more turns, and no difference at high effort. Quality unchanged.&lt;/p&gt;

&lt;p&gt;The rtk README now says it in one line: up to 90% of the bash output, which is not the same as cutting your bill by 90%. I still run it. One-line test output is nicer to read and it costs nothing. I just stopped expecting it to move the invoice.&lt;/p&gt;

&lt;h2&gt;
  
  
  caveman trims the smallest slice
&lt;/h2&gt;

&lt;p&gt;caveman makes the agent talk like a caveman: drop articles, filler, pleasantries. Code, paths and error messages are never touched. Its own table shows 1,214 output tokens per answer without and 294 with, the 65% figure.&lt;/p&gt;

&lt;p&gt;JetBrains ran it on 82 paired agentic tasks and got 8.5% of output tokens, 592k down to 542k, with no detectable quality change (sign test p=0.82). The reason is structural. An agent's output is mostly code and tool calls, which caveman leaves alone on purpose, so only the prose around them shrinks. Meanwhile the skill's rules cost about 1 to 1.5k input tokens on every turn.&lt;/p&gt;

&lt;p&gt;Claude Code has shipped a built-in equivalent since v2.1.237, the Concise output style under &lt;code&gt;/config&lt;/code&gt;. Same effect, no plugin. Both apply to the main conversation only; subagents keep their own prompt.&lt;/p&gt;

&lt;h2&gt;
  
  
  graphify moved the most tokens on a large repo
&lt;/h2&gt;

&lt;p&gt;graphify parses the project with tree-sitter, locally, and builds a knowledge graph the agent queries instead of grepping files. Zero model calls for the code pass. I ran its built-in benchmark on one of my projects:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nodes                  34,031
edges                  56,865
naive full read     2,268,733 tokens
average graph query    24,702 tokens
                        91.8x fewer per query
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Two caveats that the number hides. The comparison is against reading everything, and a grep-driven session was never that expensive, so the real gain is smaller. And the graph goes stale; you rebuild it with &lt;code&gt;graphify update&lt;/code&gt; or the git hooks, and the semantic pass over docs and PDFs does spend tokens. On a small repo the gap shrinks to nothing.&lt;/p&gt;

&lt;p&gt;Install: &lt;code&gt;uv tool install graphifyy&lt;/code&gt; (double y), then &lt;code&gt;graphify install&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Superpowers moved the bill, without compressing anything
&lt;/h2&gt;

&lt;p&gt;Superpowers is Jesse Vincent's plugin, 280,792 stars, fourteen skills. Nothing in it compresses output. It changes what gets read and which model reads it.&lt;/p&gt;

&lt;p&gt;A brainstorming gate blocks any code until the intent is approved. The plan skill cuts work into steps of two to five minutes: failing test, minimal code, tests green, commit. Each step then runs in a fresh subagent whose context holds only that task, never the session history. And the rule that pays for everything, quoted from the skill file: "Use the least powerful model that can handle each role to conserve cost."&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mechanical, well specified   -&amp;gt;  small model
multi-file, debugging        -&amp;gt;  standard model
architecture, final review   -&amp;gt;  most capable model
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is what makes Opus and Fable usable on a $20 Pro plan. The expensive model touches a handful of tasks instead of the whole session. The cost is ceremony: the gate fires on a one-line fix too, and that is tokens as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this doesn't prove
&lt;/h2&gt;

&lt;p&gt;My graphify and rtk numbers come from my own projects, and repo shape changes them a lot. JetBrains measured on Sonnet 5 with 82 to 86 tasks; a different model at a different effort level can move the rtk result in either direction, as their own high-effort arm shows. I did not benchmark Superpowers with a paired test; its effect is on model selection, which is visible on the invoice but harder to isolate per task.&lt;/p&gt;

&lt;h2&gt;
  
  
  The full run
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/DeesRYixB-Y" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The video walks through the JetBrains tables and my dashboards on screen, with the four tools ranked at the end: Superpowers, graphify, rtk, caveman.&lt;/p&gt;

&lt;p&gt;What do you run to save tokens, and did you ever check it against the bill? A) a shell proxy B) a code graph C) task and model discipline D) never measured, just installed&lt;/p&gt;

&lt;p&gt;&lt;em&gt;English isn't my first language; I used an editing tool to polish the wording. The measurements and opinions are mine.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claudecode</category>
      <category>productivity</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Fable 5.1 cut cache reads by 75%. Cost per task went up 20% anyway.</title>
      <dc:creator>AI Dive</dc:creator>
      <pubDate>Fri, 04 Sep 2026 15:34:54 +0000</pubDate>
      <link>https://dev.to/aidiveyt/fable-51-cut-cache-reads-by-75-cost-per-task-went-up-20-anyway-3l2i</link>
      <guid>https://dev.to/aidiveyt/fable-51-cut-cache-reads-by-75-cost-per-task-went-up-20-anyway-3l2i</guid>
      <description>&lt;p&gt;In the same week that Claude Fable 5.1 shipped, two things happened that look like they cannot both be true.&lt;/p&gt;

&lt;p&gt;Millennium had a piece of code that crashed about one run in a million. Their team had not explained it in four to five years. Every model they tried missed it, Fable 5 included. Fable 5.1 found it.&lt;/p&gt;

&lt;p&gt;That same week a creator titled his review "I'm asking for a refund", and Artificial Analysis, which ranks these models for a living, put Fable 5.1 at the top of its intelligence index while measuring it at 20% more cost per task than Fable 5.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Both are accurate, and the reason is not in the benchmarks. It is in the pricing page and in how you pay for the model.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I actually did
&lt;/h2&gt;

&lt;p&gt;I did not run my own benchmark suite. There are plenty of those already and they mostly disagree.&lt;/p&gt;

&lt;p&gt;What I did was read the release the way you would read a spec sheet before buying hardware: the announcement, the model docs, the system card, the prompting guide, the pricing page, and the support articles about plan limits. Then the independent measurements from Artificial Analysis, ARC Prize, FrontierSWE and Simon Willison, because the vendor's own table is not evidence about the vendor.&lt;/p&gt;

&lt;p&gt;That turns out to be the differentiator. Almost every review this week ran demos and picked a side. The interesting material was sitting in the footnotes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The cut is one line item
&lt;/h2&gt;

&lt;p&gt;Fable 5.1 is not broadly cheaper. Input is still $10 per million tokens and output is still $50, unchanged from Fable 5.&lt;/p&gt;

&lt;p&gt;One line moved. Cache reads, meaning the tokens the model rereads from a prefix it already processed, went from $1 to $0.25 per million. That is the entire price cut.&lt;/p&gt;

&lt;p&gt;It matters more than it sounds, because in a long agent session most of your tokens are re-reads of the same context. Anthropic measured four weeks of real August traffic and reports roughly 25% off a typical bill and up to 45% off a heavily agentic one.&lt;/p&gt;

&lt;p&gt;It also produces the one situation where the expensive model undercuts the cheaper one:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Cache read, per million tokens
Fable 5.1   $0.25
Opus 5      $0.50
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Everything else on Fable costs double what Opus costs. A cache heavy loop really can be cheaper on Fable. Nothing else can.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the per-task number still went up
&lt;/h2&gt;

&lt;p&gt;The second dial is effort, and it moves the bill much harder than the cache line does.&lt;/p&gt;

&lt;p&gt;Simon Willison drew the same pelican at every effort level. Low cost him 10 cents. High cost 13 cents. Xhigh cost $1.83. Max cost $3.30, producing 65,927 output tokens over 14 minutes. Same prompt, 33 times the price.&lt;/p&gt;

&lt;p&gt;Artificial Analysis runs everything at max. So they measured $3.76 per task against $3.14 for Fable 5, which is the 20% increase people are quoting. The cache cut is why it was not worse: without it the same measurement would have landed at $5.16.&lt;/p&gt;

&lt;p&gt;So the honest version of the headline is that the model got cheaper to reread and more expensive to think, and which of those dominates depends on your workload. If you are running one shot requests at max effort, you are the case they measured. If you are running a review loop over the same repository for two hours, you are the case Anthropic measured.&lt;/p&gt;

&lt;h2&gt;
  
  
  The plan is a different meter entirely
&lt;/h2&gt;

&lt;p&gt;None of that per-token math applies if you are on a subscription, and this is where the refund videos come from.&lt;/p&gt;

&lt;p&gt;On Pro, Fable is not part of the plan's usage limits at all. It runs on pay as you go usage credits, and unlike previous launches there is no one-time credit this time.&lt;/p&gt;

&lt;p&gt;On Max it is included, for up to 50% of your weekly limits. The same support page adds that these models consume those limits faster than other Claude models. That sentence is doing a lot of work and almost nobody quotes it.&lt;/p&gt;

&lt;p&gt;Then the counter itself. The pricing page says Max gives 5x or 20x more usage per 5-hour session than Pro. Per session, with weekly limits stacked on top. A lawsuit filed June 15 alleges the real weekly multipliers are far below the advertised ones. And on September 14 a permanent 25% raise of weekly limits takes effect, which Anthropic itself clarified works out to a 17% reduction compared to today, because a temporary 50% boost ends the day before.&lt;/p&gt;

&lt;p&gt;The model is not more expensive per token on a plan. It spends a budget faster than that budget was ever advertised to be spent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three things break if you call the API today
&lt;/h2&gt;

&lt;p&gt;If you have a working Fable 5 integration, three changes fail it rather than degrade it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Forced tool use returns a 400.&lt;/strong&gt; Setting &lt;code&gt;tool_choice&lt;/code&gt; to &lt;code&gt;any&lt;/code&gt; or to a named tool is rejected. Thinking is always on now, and forcing a call would skip it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thinking blocks record which model wrote them, one way.&lt;/strong&gt; Fable 5.1 reads Opus's thinking. Nothing reads Fable 5.1's.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conversations are append only.&lt;/strong&gt; Edit an earlier turn, or rebuild your system prompt or tools array between requests, and the next call fails with a message about the block being bound to a different conversation. This is enforced for accounts created on or after August 31. It breaks every harness that injects a reminder and deletes it on the following turn, which is a very common pattern.&lt;/p&gt;

&lt;p&gt;Five things arrive at the same time, and the useful one is that you can change effort per message without losing your cache.&lt;/p&gt;

&lt;p&gt;Then there are the documented behavior regressions, which are the ones burning people's quota right now. It rewrites whole files for small edits. It issues one tool call per turn in coding loops where Fable 5 batched several. It sometimes describes what it would do next instead of doing it. Each of those has a one line fix in the prompting guide, and each of them costs output tokens until you apply it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this doesn't prove
&lt;/h2&gt;

&lt;p&gt;This is a documentation read, not a capability test. I cannot tell you whether the model is better at your work, and I did not try to.&lt;/p&gt;

&lt;p&gt;The benchmark table is also weaker evidence than it looks. Anthropic's own footnote gives a standard error of 3.5 to 4.5 points per model, which puts the three point coding lead over Opus 5 inside the error bar. The rows missing from the marketing graphic are the ones where Opus 5 wins: 90.42 against 90.0 on ARC-AGI-2, and 59.4 against 54.7 on SWE-bench multimodal.&lt;/p&gt;

&lt;p&gt;One more thing worth knowing before you send anything sensitive: Fable 5.1 carries 30-day retention and is not available under zero data retention unless Anthropic authorizes it. Enterprise Frontier Safeguards is the way out, and it ships this fall.&lt;/p&gt;

&lt;h2&gt;
  
  
  The full run
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/azLxlz5FrH8" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The video walks the actual pages, so you can see where each of these numbers lives rather than taking my word for the quote.&lt;/p&gt;

&lt;p&gt;If you are on Max: did your 5-hour window survive the first week of Fable 5.1, and did you change your prompts before or after finding out?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;English is not my first language, so I use a tool to polish the writing.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>llm</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Superpowers fixes Claude Code. Then it bills you for every two-line fix.</title>
      <dc:creator>AI Dive</dc:creator>
      <pubDate>Wed, 02 Sep 2026 16:40:40 +0000</pubDate>
      <link>https://dev.to/aidiveyt/superpowers-fixes-claude-code-then-it-bills-you-for-every-two-line-fix-6dg</link>
      <guid>https://dev.to/aidiveyt/superpowers-fixes-claude-code-then-it-bills-you-for-every-two-line-fix-6dg</guid>
      <description>&lt;p&gt;Every few weeks the same thread comes back on r/ClaudeCode. Someone installed the Superpowers plugin because everybody recommended it, checked their usage stats, and found it sitting at 1 to 3 percent. No visible change in the code either. Is it worth it, or is it a tokens killer?&lt;/p&gt;

&lt;p&gt;The plugin has 280,000 stars, 25,000 forks and is on its sixth major version in under a year, so this is not a prompt pack somebody abandoned after launch. Jesse Vincent, who has been shipping open source developer tools since the 90s, built it by mining 2,249 markdown files of lessons his own agents had learned.&lt;/p&gt;

&lt;p&gt;I installed it, read the 14 skill files line by line, and ran it on my own projects. &lt;strong&gt;The short answer to the Reddit question: both camps are right, and which one you land in depends on what you feed it.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I actually looked at
&lt;/h2&gt;

&lt;p&gt;Superpowers is a free plugin on Anthropic's plugin marketplace, one command to install. The core is 14 skills: markdown instruction files the agent loads whenever a situation matches. Brainstorming, plan writing, subagent driven development, test driven development, systematic debugging, verification before completion, and so on.&lt;/p&gt;

&lt;p&gt;A hook at session start forces Claude to check, before every task, whether one of these skills applies. The entry skill is blunt about it: if there is even a 1 percent chance a skill is relevant, load it. So this behaves less like a toolbox and more like a development methodology injected into your agent.&lt;/p&gt;

&lt;p&gt;I read every file, then watched what each one did on real feature work and on real small fixes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The gain sits upstream of the code
&lt;/h2&gt;

&lt;p&gt;The brainstorming skill opens on a hard gate: no code, no scaffolding, no implementation skill of any kind until you have approved an explicit intent. Every request gets sorted into one of three paths. A spike is a feasibility question whose output is an answer, not code you keep. Bounded is a small change to a flow that already exists. Architectural is anything that restructures how the project fits together. The agent says its classification out loud so you can override it, and hidden complexity found mid task can upgrade the path, never downgrade it.&lt;/p&gt;

&lt;p&gt;On my own project this phase has already killed features I would have built for nothing. That alone paid for the install.&lt;/p&gt;

&lt;p&gt;Out of the architectural path come two documents: a spec you validate, then an implementation plan. The plan skill's opening instruction sets the tone. Write it for a skilled developer with zero context on the codebase and, in the file's own words, questionable taste. The work gets cut into tasks of two to five minutes each:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;write the failing test
run it, confirm it fails
write the minimal code that passes
run the tests again
commit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each task lists the exact files to touch, down to line numbers. This sizing is the reliability argument in one line: &lt;strong&gt;a short task means an agent that finishes with a context window still mostly empty.&lt;/strong&gt; It never reaches the moment where the session overflows and the agent starts inventing functions that do not exist.&lt;/p&gt;

&lt;h2&gt;
  
  
  The cost is the execution loop, and it never switches off
&lt;/h2&gt;

&lt;p&gt;At execution time your main session stops coding and becomes an orchestrator. It dispatches one fresh subagent per task, with exactly the context that task needs and none of your session history. When the subagent is done, the orchestrator runs a two part review: spec compliance first, then code quality. If the review fails, a fix loop starts, capped at five rounds. The first three resume the original implementer, round four dispatches a fresh one on a more capable model, and at round five a breaker trips and the orchestrator rules on every open finding itself.&lt;/p&gt;

&lt;p&gt;That is a real code review process running on its own, task after task. It is also where the tokens go. Dispatch briefs, two reviews per task and the completion ledger are paid every single time, and you feel it on the smallest tasks.&lt;/p&gt;

&lt;p&gt;The brainstorming file is explicit that the ceremony scales with the task. The human approval step does not. On a two line fix, that means answering framing questions, approving a two sentence design, then waiting for the full cycle. For a typo in a config file, the complete process is simply slower than fixing it yourself.&lt;/p&gt;

&lt;p&gt;And here is the answer to the 1 to 3 percent question. If your usage stats show the plugin that low, your requests almost never trigger the skills. You are paying the session start check every time without ever touching the gains.&lt;/p&gt;

&lt;h2&gt;
  
  
  The setting that decides whether it pays
&lt;/h2&gt;

&lt;p&gt;The execution skill has a model selection section that starts with one rule: use the least powerful model that can handle each role. A well specified mechanical task touching a file or two goes to a small model. Coordination across several files and debugging go to a standard model. Architecture and the final branch review go to the most capable one.&lt;/p&gt;

&lt;p&gt;Two subtleties in that file I had not seen anywhere else.&lt;/p&gt;

&lt;p&gt;First, always name the model explicitly when you dispatch. A subagent without one inherits your session's model, often the most expensive one, which silently defeats the whole section.&lt;/p&gt;

&lt;p&gt;Second, turn count beats token price. The cheapest models take more turns on multi step work and end up costing more overall, so reviewers and implementers working from prose get a floor one tier up.&lt;/p&gt;

&lt;p&gt;This is what makes running Opus or Fable on the 20 dollar Pro plan workable with the plugin: the expensive model only touches the few decisions that deserve it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The win nobody installs it for
&lt;/h2&gt;

&lt;p&gt;Specs and plans are not chat messages that vanish. They are markdown files saved in a dated plans folder inside the repo and committed with the work. The spec travels with the plan, and conflicts resolve against the spec, so the document is the authority rather than the agent's memory.&lt;/p&gt;

&lt;p&gt;Six months later you mention the plan file in a prompt and the agent picks the feature's context right back up. Your git history stops telling you only what changed and starts telling you why. Documentation falls out of the process without anyone sitting down to write it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this does not prove
&lt;/h2&gt;

&lt;p&gt;I read the files and used the plugin on my own projects. I did not run a controlled benchmark with token counts per task, so "it burns quota on small fixes" is an observation, not a measurement. The repo also moves fast: sixth major version in under a year, 125 open issues, so the skills you read today will have changed by the next update.&lt;/p&gt;

&lt;p&gt;The plugin plans its own exit, though. Its instructions put your directives above the skills, so telling the agent to skip the process works.&lt;/p&gt;

&lt;h2&gt;
  
  
  The rule I ended up with
&lt;/h2&gt;

&lt;p&gt;Superpowers on by default for any feature work. An explicit skip for tiny fixes.&lt;/p&gt;

&lt;p&gt;If you build features that take hours with Claude Code, install it. If your usage is throwaway scripts and small fixes, walk on by. In between, install it and learn to say skip, or let just the brainstorming skill run for a few days. It carries most of the gain and the other skills graft on after it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The full read
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/l7P_TQzyd7Q" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The video shows the actual skill files on screen, section by section, which is hard to convey in prose.&lt;/p&gt;

&lt;p&gt;Which camp are you in? A) On all the time B) On for features, off for fixes C) Deleted it, saved my quota D) Never installed it&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The reading, the runs and the opinions are mine. I used an editing tool to polish the English.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claudecode</category>
      <category>productivity</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Anthropic graded 400,000 Claude Code sessions. Managers beat the engineers.</title>
      <dc:creator>AI Dive</dc:creator>
      <pubDate>Mon, 31 Aug 2026 15:29:55 +0000</pubDate>
      <link>https://dev.to/aidiveyt/anthropic-graded-400000-claude-code-sessions-managers-beat-the-engineers-j61</link>
      <guid>https://dev.to/aidiveyt/anthropic-graded-400000-claude-code-sessions-managers-beat-the-engineers-j61</guid>
      <description>&lt;p&gt;Anthropic ran a classifier over roughly 400,000 Claude Code sessions from 235,000 people, recorded between October 2025 and April 2026, to figure out who actually succeeds with a coding agent. The finding that made me read the whole thing: management occupations reach verified success slightly more often than software engineers, and the ten biggest occupation groups all land within seven points of the engineers.&lt;/p&gt;

&lt;p&gt;I made a video that walks through the study and then tests its main claim live. Here is the short version.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/wq2QN_MvetY" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  What "verified success" means
&lt;/h2&gt;

&lt;p&gt;The numbers only make sense with the definitions. Nobody at Anthropic read the transcripts. A classifier built on Sonnet 4.6 graded each session, and its grades were cross-checked against telemetry (commits, code changes, test results). On sessions that touch code, classifier and telemetry agree more than 90% of the time. A success only counts as verified when there is hard evidence, like passing tests or committed work.&lt;/p&gt;

&lt;h2&gt;
  
  
  The five levels
&lt;/h2&gt;

&lt;p&gt;Each session also gets an expertise rating from novice to expert, based on how the person works, not on their job title. A lawyer who knows exactly what a contract script must catch can rate as an expert. A senior engineer poking at an unfamiliar language can rate as a novice.&lt;/p&gt;

&lt;p&gt;Novice-rated sessions reach verified success 15% of the time. Intermediate through expert sit at 28 to 33%. Almost the entire gain is between novice and intermediate, which is the encouraging part: you do not need mastery, you need to stop prompting like a novice.&lt;/p&gt;

&lt;p&gt;The output gap is just as stark. One instruction from a novice triggers about 5 actions and 600 words of output. The same instruction from an expert triggers about 12 actions and 3,200 words.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part I tested myself
&lt;/h2&gt;

&lt;p&gt;In the video I run the same task twice in two real Claude Code sessions, once written like the novice prompts in the study and once like the expert ones. The expert prompt contains zero code. It packs a repo map, constraints, and a test plan, and the session behaves almost exactly like the study predicts.&lt;/p&gt;

&lt;p&gt;Three habits the data rewards, if you want the actionable bit: frame directions precisely up front, ask the agent to verify its own work, and redirect a failing session instead of watching it sink. When things break, 19% of novices quit with zero lines written; everyone else quits 5 to 7% of the time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Caveats
&lt;/h2&gt;

&lt;p&gt;Verified success caps out around a third even for experts. The data is self-selected Claude Code users. And the occupation ranking may partly reflect who confirms out loud when they got what they asked for. The study is still the best evidence I have seen that knowing your domain now matters more than knowing how to code.&lt;/p&gt;

&lt;p&gt;Full write-up: &lt;a href="https://aidive.dev/videos/anthropic-400k-expertise/" rel="noopener noreferrer"&gt;https://aidive.dev/videos/anthropic-400k-expertise/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
