Did the AI change?
The same popular skills and the same tests, run again on the same model on a later date. Here is what Driftproof's comparison read for each pair.
What this is
People often say their AI assistant changed under them, and nobody can tell them whether it did. This page is a first reading of one way to find out. Driftproof keeps a receipt for every test it runs: the skill's exact text, the test tasks, the model, every score and a seal. Running the same skill and the same tests again on the same model on a later date gives a second receipt. Driftproof then compares the two with the same rule it uses for every comparison and says what it read.
A canary is an early warning: a small, fixed check repeated over time, so that a change shows up as a difference between two readings of the same thing. Here the canary is a handful of popular skills, each with its own small set of text tasks, written by Driftproof and frozen before the first run.
This page is not a status page, and it promises no schedule: we decide when to run it again. It is not a verdict about Claude or about any model. A difference between two dates is read under a fixed rule and is never attributed to a cause.
How the skills were chosen: The first five skills in Report 018's fixed order that do real work rather than hand off to another skill, chosen before any result: grill-me, grill-with-docs, improve-codebase-architecture and tdd from mattpocock/skills at 49dd158d, and hyperframes-cli from heygen-com/hyperframes at c4440dfb. Each was run with its exact skill text and its frozen tests, and both were checked against the earlier receipt's.
On Claude Sonnet 5.5
Five popular skills, the same tests, 2026-11-01 and 2026-11-08 on Claude Sonnet 5.5, seven days apart: no separation detected on three, a separation detected on two (improve-codebase-architecture: on the adr task, the answers with the skill scored lower on the later date; hyperframes-cli: on the render task, the answers with the skill scored higher on the later date), and every pair got a reading.
Across these 15 test tasks, chance alone can produce some separations under this rule, because each task's band comes from a few answers. This page does not say whether a separation here came from chance or from anything else.
Every receipt below records the same skill text, the same test tasks and the same model, scored by the same judge model the same number of times per answer, with each answer recorded the same way. The judge was a different model from the one measured.
Of the five pairs below, the receipts record a different version of Driftproof on five, a different revision of its scoring code on five and a different version of the harness on none. A receipt names the model but cannot show whether what stands behind that name changed. Driftproof's own version and scoring code could have moved these scores too, so a separation here cannot be put down to the model alone.
grill-me
From mattpocock/skills at 49dd158d; the tests are mattpocock--skills--grill-me.json.
- 2026-11-01: Driftproof 0.25.0, harness claude-code 2.1.311. With the skill 0.678 ± 0.201, without it 0.749 ± 0.153.
- Comparing 2026-11-01 with 2026-11-08: On no task did the answers with the skill score clearly higher or lower. Driftproof read: No separation detected: no case separated under the rule at this sample size (band = mean ± 1 sd); this is not evidence that nothing changed.
- 2026-11-08: Driftproof 0.27.0, harness claude-code 2.1.311. With the skill 0.709 ± 0.159, without it 0.743 ± 0.126.
grill-with-docs
From mattpocock/skills at 49dd158d; the tests are mattpocock--skills--grill-with-docs.json.
- 2026-11-01: Driftproof 0.25.0, harness claude-code 2.1.311. With the skill 0.906 ± 0.136, without it 0.922 ± 0.072.
- Comparing 2026-11-01 with 2026-11-08: On no task did the answers with the skill score clearly higher or lower. Driftproof read: No separation detected: no case separated under the rule at this sample size (band = mean ± 1 sd); this is not evidence that nothing changed.
- 2026-11-08: Driftproof 0.27.0, harness claude-code 2.1.311. With the skill 0.892 ± 0.128, without it 0.986 ± 0.013.
improve-codebase-architecture
From mattpocock/skills at 49dd158d; the tests are mattpocock--skills--improve-codebase-architecture.json.
- 2026-11-01: Driftproof 0.25.0, harness claude-code 2.1.311. With the skill 0.783 ± 0.144, without it 0.704 ± 0.079.
- Comparing 2026-11-01 with 2026-11-08: On the adr task, the answers with the skill scored lower on 2026-11-08 than on 2026-11-01, by more than their usual spread. The averages in the rows on either side cover all of this skill's tasks, so they can move the other way, and here they do. Driftproof read: A separation detected on a task, with the skill lower on the later date: separation detected under the rule on 1 case, downward (bands do not overlap and the move clears the effect floor); none upward.
- 2026-11-08: Driftproof 0.27.0, harness claude-code 2.1.311. With the skill 0.794 ± 0.079, without it 0.698 ± 0.148.
tdd
From mattpocock/skills at 49dd158d; the tests are mattpocock--skills--tdd.json.
- 2026-11-01: Driftproof 0.25.0, harness claude-code 2.1.311. With the skill 0.989 ± 0.019, without it 0.972 ± 0.010.
- Comparing 2026-11-01 with 2026-11-08: On no task did the answers with the skill score clearly higher or lower. Driftproof read: No separation detected: no case separated under the rule at this sample size (band = mean ± 1 sd); this is not evidence that nothing changed.
- 2026-11-08: Driftproof 0.27.0, harness claude-code 2.1.311. With the skill 0.986 ± 0.013, without it 0.946 ± 0.094.
hyperframes-cli
From heygen-com/hyperframes at c4440dfb; the tests are heygen-com--hyperframes--hyperframes-cli.json.
- 2026-11-01: Driftproof 0.25.0, harness claude-code 2.1.311. With the skill 0.919 ± 0.027, without it 0.592 ± 0.108.
- Comparing 2026-11-01 with 2026-11-08: On the render task, the answers with the skill scored higher on 2026-11-08 than on 2026-11-01, by more than their usual spread. Driftproof read: A separation detected on a task, with the skill higher on the later date: separation detected under the rule on 1 case, upward (bands do not overlap and the move clears the effect floor); none downward.
- 2026-11-08: Driftproof 0.27.0, harness claude-code 2.1.311. With the skill 0.933 ± 0.052, without it 0.642 ± 0.155.
On Claude Haiku 5.5
Five popular skills, the same tests, 2026-11-02 and 2026-11-08 on Claude Haiku 5.5, six days apart: no separation detected on five, and every pair got a reading.
Across these 15 test tasks, chance alone can produce some separations under this rule, because each task's band comes from a few answers. This page does not say whether a separation here came from chance or from anything else.
Every receipt below records the same skill text, the same test tasks and the same model, scored by the same judge model the same number of times per answer, with each answer recorded the same way. The judge was the same model as the one measured.
Of the five pairs below, the receipts record a different version of Driftproof on five, a different revision of its scoring code on five and a different version of the harness on none. A receipt names the model but cannot show whether what stands behind that name changed. Driftproof's own version and scoring code could have moved these scores too, so a separation here cannot be put down to the model alone.
grill-me
From mattpocock/skills at 49dd158d; the tests are mattpocock--skills--grill-me.json.
- 2026-11-02: Driftproof 0.26.0, harness claude-code 2.1.311. With the skill 0.710 ± 0.154, without it 0.710 ± 0.143.
- Comparing 2026-11-02 with 2026-11-08: On no task did the answers with the skill score clearly higher or lower. Driftproof read: No separation detected: no case separated under the rule at this sample size (band = mean ± 1 sd); this is not evidence that nothing changed.
- 2026-11-08: Driftproof 0.27.0, harness claude-code 2.1.311. With the skill 0.775 ± 0.123, without it 0.701 ± 0.119.
grill-with-docs
From mattpocock/skills at 49dd158d; the tests are mattpocock--skills--grill-with-docs.json.
- 2026-11-02: Driftproof 0.26.0, harness claude-code 2.1.311. With the skill 0.870 ± 0.036, without it 0.865 ± 0.075.
- Comparing 2026-11-02 with 2026-11-08: On no task did the answers with the skill score clearly higher or lower. Driftproof read: No separation detected: no case separated under the rule at this sample size (band = mean ± 1 sd); this is not evidence that nothing changed.
- 2026-11-08: Driftproof 0.27.0, harness claude-code 2.1.311. With the skill 0.923 ± 0.025, without it 0.916 ± 0.043.
improve-codebase-architecture
From mattpocock/skills at 49dd158d; the tests are mattpocock--skills--improve-codebase-architecture.json.
- 2026-11-02: Driftproof 0.26.0, harness claude-code 2.1.311. With the skill 0.778 ± 0.077, without it 0.546 ± 0.106.
- Comparing 2026-11-02 with 2026-11-08: On no task did the answers with the skill score clearly higher or lower. Driftproof read: No separation detected: no case separated under the rule at this sample size (band = mean ± 1 sd); this is not evidence that nothing changed.
- 2026-11-08: Driftproof 0.27.0, harness claude-code 2.1.311. With the skill 0.831 ± 0.061, without it 0.616 ± 0.155.
tdd
From mattpocock/skills at 49dd158d; the tests are mattpocock--skills--tdd.json.
- 2026-11-02: Driftproof 0.26.0, harness claude-code 2.1.311. With the skill 0.974 ± 0.031, without it 0.956 ± 0.077.
- Comparing 2026-11-02 with 2026-11-08: On no task did the answers with the skill score clearly higher or lower. Driftproof read: No separation detected: no case separated under the rule at this sample size (band = mean ± 1 sd); this is not evidence that nothing changed.
- 2026-11-08: Driftproof 0.27.0, harness claude-code 2.1.311. With the skill 0.932 ± 0.104, without it 0.917 ± 0.144.
hyperframes-cli
From heygen-com/hyperframes at c4440dfb; the tests are heygen-com--hyperframes--hyperframes-cli.json.
- 2026-11-02: Driftproof 0.26.0, harness claude-code 2.1.311. With the skill 0.904 ± 0.069, without it 0.340 ± 0.156.
- Comparing 2026-11-02 with 2026-11-08: On no task did the answers with the skill score clearly higher or lower. Driftproof read: No separation detected: no case separated under the rule at this sample size (band = mean ± 1 sd); this is not evidence that nothing changed.
- 2026-11-08: Driftproof 0.27.0, harness claude-code 2.1.311. With the skill 0.945 ± 0.018, without it 0.417 ± 0.176.
How to read this page
A separation between two dates is detected under the rule, never attributed. Between the dates any of these could have moved the scores: the model behind the name, the harness that ran it, Driftproof's own version and scoring code, the judge model behind its name, the judge's own variation and chance. This page does not say which one made the difference.
Where the judge is the same model as the one measured, a change in that model also changes the scoring, so the two cannot be told apart.
No separation is not evidence of sameness: it means no test task separated under the rule at this sample size.
Chance alone can produce a separation. Each task's band comes from a few answers, so the more tasks are read, the likelier one separates with nothing changed.
No verdict is a result: where Driftproof refused to compare two receipts, or a receipt did not measure every task, or a separation did not hold for every score the lost answers could have had, it says so and asserts nothing.
A few tasks per skill on a few dates is a first look, not a trend.
In the rows, the harness is the program that ran the model. In the printed readings, a case is one test task, a band is the average plus or minus the usual spread of the scores, and the effect floor is the smallest gap that counts.
Driftproof's comparison prints a label in capitals before each reading. This page writes that label in plain words and keeps the rest of the reading as printed. The labels and their plain words:
NO SEPARATION DETECTED- No separation detected
DRIFT- A separation detected on a task, with the skill lower on the later date
IMPROVED- A separation detected on a task, with the skill higher on the later date
MIXED- A separation detected, lower on some tasks and higher on others
INCONCLUSIVE- Inconclusive
NOT MEASURED- Not measured
REFUSED- Refused
Do this for your own file
In Claude Code, type /driftproof:recheck and the path to your file. The first use saves a copy of your file, its tests and its run settings and runs nothing. Each later use runs that saved copy and keeps another dated receipt, and a recheck compares each new result with the previous one and with the first saved reading. It cannot compare with a date before you saved.
From a terminal, the same steps are driftproof recheck init --trusted-skill (only for a file you wrote yourself), driftproof recheck run --trusted-skill on each later date (you give that flag each time; the saved copy does not keep it) and driftproof recheck history for the comparisons.
This checks Claude through Claude Code with fixed tasks, not anyone's chat history.
Every pair of receipts this site holds for the same skill, the same tests, the same model, the same judge model and the same setup (how each answer was recorded and which sides of the comparison ran) on different dates is listed on The same skill on different models and dates.