What Fact-Checking My Own Claude Code Guide Taught Me About Verifiable AI
Most talk about verifiable AI is about the model: proofs of inference, attested hardware, reproducible weights. That matters. But most of the AI output people act on every day isn't a model call they could audit. It's a claim: in a doc, a README, an answer, a config someone copied.
I write about Claude Code. In February, I published a long guide to building with it, plus a companion GitHub repo of the configs I actually use. The repo is the part a reader can copy straight into their own setup, which turns out to matter. As Veera Ravindra Divi put it here on HackerNoon, Claude Code doesn't ship production code: your config does. A wrong config does more damage than a wrong sentence.
Since then I've re-checked every claim in it twice, once in August against Claude Code v2.1.234 and again this month against v2.1.311, the second time with four Claude Code agents working in parallel. I expected stale facts. What I didn't expect was ten claims that were wrong on the day I wrote them. One of them was a correction from the August pass.
This month, the agents did most of the checking. Some of their findings looked like errors until I traced the source, and some of my old claims looked fine until I did the same. Either way, what mattered was whether a verdict could be checked by someone other than whoever produced it.
What "Verifiable" Has to Mean for AI Output
A verified claim needs four things. I learned each one by watching a check fail without it.
|
Property |
Question it answers |
Failure without it |
|---|---|---|
|
Source |
Where does this come from? |
Plausible numbers nobody measured |
|
Version |
True as of when? |
"Corrections" that were never true |
|
Reproducibility |
Can someone else re-run the check? |
Works on my machine, fails on yours |
|
Independence |
Is the evidence separate from the claim? |
A checker citing the article it's checking |
None of these is about the model. You can run the best model available and still get output you can't verify. You can also run a cheaper one and get output anyone can audit, if the process makes it leave a trail.
The Ten Claims That Failed
From the August pass:
- "Delegate Mode (
Shift+Tab)." It never existed.Shift+Tabcycles permission modes. I'd described a feature that sounded right in three different files. @-imports defer loading. They don't. Imported files are expanded into context at launch. Imports organise your instructions; they don't save context.- An eight-layer memory hierarchy. It had ten. I'd missed the managed-policy CLAUDE.md entirely, a layer that existed the whole time and can't be excluded.
- "Keep CLAUDE.md under 500 lines." That was my own guess. Anthropic's published guidance is under 200.
From the October pass:
- "Before v2.1.179 the default display mode was
auto." This one hurts most, because I added it in August as a correction. No changelog entry supports it. - "Forks cannot spawn further forks." Unverified. What is documented is that forks count toward the three-level nesting cap.
- "Auto-compaction triggers at about 95% of context." There's no fixed percentage. By default it compacts at the model's context limit, about 967K tokens on the 1M-context models, and
/autocompactsets an earlier trigger. - "A skill costs about one line of context at startup." The real cost is the skill's description plus its "when to use" text, capped at 1,536 characters per skill. The whole listing is budgeted at 1% of the context window.
- "Unspecified teammates inherit the lead's model." The lead's model is the last fallback, after the spawn prompt, the agent definition's
modelandCLAUDE_CODE_SUBAGENT_MODEL. - "Fable investigates before acting and verifies its own work." No official source says that. Anthropic describes Fable 5.1 as being "for demanding reasoning and long-horizon agentic work". I'd absorbed a paraphrase and repeated it as a capability.
Every one of these is fluent, specific, and plausible. That is the kind of claim language models produce easily, and agents repeat confidently. It is also the kind a reader can't check without a source.
Source: Unsourced Precision Is Unverifiable
Look at numbers 5, 7 and 8. A version number, a percentage, and a line count. Each one survived review because it was specific.
"Compaction triggers at about 95%" sounds like someone measured it. "Before v2.1.179" sounds like someone read the changelog. Nobody had. The precision did the persuading, and the precision was invented.
My rule now: every number gets a source next to it, or it gets rewritten as a range or removed. When the first correction pass suggested "fixed around v2.1.63" for a GitHub issue, there was no changelog entry behind it. That number came out too. The guide now says the behaviour is no longer reproducible and tells readers to check it themselves with /context.
Version: Sources Describe Specific Systems
Checking against official documentation sounds definitive until two official sources disagree.
In August, Claude Code's subagents page still listed a 200-subagent-per-session cap. The changelog said it was removed in v2.1.224. The docs hadn't caught up.
In October, Anthropic's API models page listed Sonnet 5.5's default effort as high. Claude Code's model configuration page says the 5.5 models default to medium. Both are right: one describes the API, the other describes Claude Code. An agent that reads only one of them will "correct" a true claim into a false one.
So provenance has to include which system and which version a source describes. For anything version-specific, I treat the changelog as the primary source. When sources disagree, the verdict says which surface each one describes rather than quietly picking one.
Reproducibility: Run It, Don't Read It
The worst error in the February guide isn't on the list above. Nothing I wrote was false; I left something out.
Agent Teams is experimental and disabled by default. It needs CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1. I never mentioned it, because the flag had sat in my own settings.json so long I'd stopped seeing it. Every Agent Teams pattern in the guide worked on my machine and did nothing on yours.
Reading docs can't catch that. The docs are right, and the claim is right. What's missing is the environment. The only check that works is re-running the instructions somewhere that isn't your machine.
T