Capability-gap report
Report 015: Skills.sh snapshot 2026-10-17: text tasks
claude-sonnet-5-5 claude-opus-5-5
2026-10-18
A SKILL.md teaches an AI coding agent how you like things done. A skill's own tests passing is one answer. Driftproof asks two more: whether the scores with the skill and without it separate beyond their spread, and whether that held when the model changed. Each answer is a dated, hash-verified receipt, and when there were too few draws to tell, the receipt says so.
Install in Claude Code
claude plugin marketplace add driftproofhq/driftproof
claude plugin install driftproof@driftproofhq
Then run /driftproof:start on a skill in your repository. For CI, npx and the GitHub Action are further down.
See a receipt Read the findings Read the latest report
A piece by Maverick: quoted AI benchmark gaps, checked against their own sampling noise.
Verdict Passing
Model claude-haiku-4-5
Date 2026-09-17
Skill commit-message-conventions
Range 0.434 without, 0.822 with
the two ranges do not overlap: separated
Receipt hash fad883d1018d3a4b3c75bc60b1eaec50032256cbf69fba3299999edf7978589c
14 reports published
216 receipts published
11 models measured on
Comparing two benchmark scores? The gap calculator says whether the gap is bigger than the benchmark's own sampling noise.
Every receipt has its own page, with its verdict, its two arms and a way to verify it yourself. How this is built describes how the tool itself is checked.
That range is a band. The dated file that records all of it is a receipt. What changes between two receipts is drift.
Move the floor and change what counts as a band to see the verdict change. This is the bundled example receipt's own per-case data.
On the report that measured it, draw-to-draw spread reaches sd 0.355 on a single case (semver-hidden-breaking-change). That is the across-draw spread of the model writing a different answer, not of the scorer re-reading one, and it is wider than the scorer's.
We publish refusals instead of guesses, and we publish our own instrument defects, including what outside audits found. Read the methodology, or read what we will not claim.
See whether it helps before you publish, and on which model.
See which of your skills stopped separating when the model changed.
An evidence trail for the skills your agents run in production.
claude plugin marketplace add driftproofhq/driftproof
claude plugin install driftproof@driftproofhq
That installs /driftproof:start, /driftproof:init, /driftproof:run and /driftproof:badge. The plugin hands your arguments to the pinned runner and writes the receipt that runner would have written; /driftproof:run spends your Claude Code subscription rather than an API key. It measures and never changes a skill's instructions. The one file it adds is a new evals/evals.json, from /driftproof:start or /driftproof:init, to a skill that has none, after you say yes in the run.
Start with a skill you already have. In Claude Code, from the folder above it, in a git repository, run /driftproof:start. Claude lists your skills and asks which to check. If the skill has no test cases, Claude reads your SKILL.md and drafts test cases with you, aimed at outcomes you would check. It writes only after you say yes, then runs a quick check and opens a results page: your first receipt. Drafted cases are labelled as drafted from the skill and approved by you. A quick check is a first look and cannot produce a verdict. For a direct measurement, use /driftproof:run path/to/your-skill. On a skill with no test cases, it offers the same draft. For a new skill, scaffold one with npx driftproof init my-skill, as the next section shows.
Driftproof is tested on Linux and macOS. In an outside retest on macOS the shipped gate failed only in the publishing helper, which needs GNU realpath -m. Windows is untested: from Node's source the plugin would not find npx there, but that failure has never been observed. A CI matrix across Linux, macOS and Windows is planned, and the findings page has the figures.
You need Node 22 or newer and an ANTHROPIC_API_KEY. From a clean checkout to a receipt for a new skill, on the command line:
npx driftproof init my-skill # scaffold SKILL.md + evals/evals.json + .driftproofrc
# edit the 3 example cases so each is grounded in a claim your SKILL.md makes
export CLAUDE_PROVIDER=api
read -rsp "Anthropic API key: " ANTHROPIC_API_KEY && export ANTHROPIC_API_KEY
npx driftproof run my-skill --models claude-haiku-4-5
cat receipts/*.summary.md # read the receipt + human summary
Wire it into a repository with the GitHub Action (uses: driftproofhq/driftproof@v0.23.1): it re-runs the suite on every push, uploads the receipts, and fails the job when a case separated downward. driftproof badge turns a receipt into a badge that carries the model and the date it was measured.
Capability-gap report
claude-sonnet-5-5 claude-opus-5-5
2026-10-18
Writing: What happens to agent skills when the model changes, the launch essay reading all fourteen reports on what a moving model does to encoded expertise.
Your address goes to Buttondown, our newsletter provider, and nowhere else. One email per model release. Unsubscribe any time.
Every report is also in the Atom feed.