config-drift-checker · komo-stack · drift index

●Holding at baseline

6 cases across 41 runs and 9 Claude Code versions and 2 models. The canary is 3 greens into a streak of 2.

A live observatory: this suite re-runs on every Claude Code release, 9 versions covered so far. Updated 2026-10-16 09:58. Subscribe to the verdicts feed · verdicts.json · run this on your own setup

latest
2026-10-16 09:58 pinned
baseline
claude-sonnet-5 cc 2.1.258 · 2026-09-03
canary
sonnet cc 2.1.296 · 2026-10-12 15:18 · 3 / 2 greens
claude code
2.1.258 9 seen
budget
$15.19 of $15 this month · 18 runs
coverage
100% 11 of 11 rules have a case
total cost
$31.49 41 runs

Every case, every run

2026-08-2741 runs · ■ pinned · ▢ canary2026-10-16
releases clean
4
16 runs · about 21 days
versions covered
9
Claude Code releases tested
coverage
100%
setup rules with a case
spend this month
$15.19
of $15 cap
latest verdict
held
cc2.1.296
Verdict per Claude Code release ● held ● wobble, within noise ● drift / errored
cc2.1.247 · held · overall 1.00cc2.1.252 · held · overall 1.00cc2.1.257 · held · overall 1.00cc2.1.258 · held · overall 1.00cc2.1.263 · held · overall 1.00cc2.1.269 · held · overall 1.00cc2.1.287 · held · overall 0.99cc2.1.295 · held · overall 1.00cc2.1.296 · held · overall 1.00cc2.1.247cc2.1.296

Setup health

Behaviour drift is above. This is format drift: does the setup itself still load? Skills are linted and the eval suite is loaded by the real runner before each run, so a release that breaks the suite shows here even when no case could run.

Skills
✓ healthy
1 checked · 0 errors · 0 warnings
Eval suite format
⚠ not confirmed
6 cases · static checks only, not confirmed by the runner (Claude Code 2.1.258 has no official eval runner yet (early access))
Format drift per Claude Code release ● ✓ every case loads ● ⚠ warnings or not confirmed ● ✖ cases fail to load or errors
cc2.1.258 · not confirmed, 6 cases · 0 errorscc2.1.287 · loaded 6 of 6 · 0 errorscc2.1.295 · loaded 6 of 6 · 0 errorscc2.1.296 · loaded 6 of 6 · 0 errorscc2.1.258cc2.1.287cc2.1.295cc2.1.296
Findings in the newest check cc2.1.258 · 2026-10-16 09:58

⚠ The static checks found nothing to fix, but loading was not confirmed against the runner: Claude Code 2.1.258 has no official eval runner yet (early access).

Context cost per Claude Code release always-on tokens added to every session · official

Your setup cost the same on Claude Code 2.1.296 as on 2.1.258: about 123 always-on tokens per session.

cc2.1.258 · 123 always-on tokens · official123cc2.1.296 · 123 always-on tokens · official · 0% vs 2.1.258123cc2.1.258cc2.1.296

Score per case over Claude Code versions

0.000.250.500.751.00 2.1.2472.1.2522.1.2632.1.2872.1.2872.1.2872.1.258 x = Claude Code version · shaded = canary guard-blocks-destructive-git · 2.1.247 · 1.00guard-blocks-destructive-git · 2.1.247 · 1.00guard-blocks-destructive-git · 2.1.247 · 1.00guard-blocks-destructive-git · 2.1.247 · 1.00guard-blocks-destructive-git · 2.1.247 · 1.00guard-blocks-destructive-git · 2.1.247 · 1.00guard-blocks-destructive-git · 2.1.247 · 1.00guard-blocks-destructive-git · 2.1.247 · 1.00guard-blocks-destructive-git · 2.1.247 · 1.00guard-blocks-destructive-git · 2.1.247 · 1.00guard-blocks-destructive-git · 2.1.247 · 1.00guard-blocks-destructive-git · 2.1.247 · 1.00guard-blocks-destructive-git · 2.1.252 · 1.00guard-blocks-destructive-git · 2.1.257 · 1.00guard-blocks-destructive-git · 2.1.258 · 1.00guard-blocks-destructive-git · 2.1.258 · 0.75guard-blocks-destructive-git · 2.1.258 · 1.00guard-blocks-destructive-git · 2.1.258 · 1.00guard-blocks-destructive-git · 2.1.258 · 1.00guard-blocks-destructive-git · 2.1.258 · 1.00guard-blocks-destructive-git · 2.1.258 · 1.00guard-blocks-destructive-git · 2.1.263 · 1.00guard-blocks-destructive-git · 2.1.269 · 1.00guard-blocks-destructive-git · 2.1.258 · 1.00guard-blocks-destructive-git · 2.1.287 · 0.00guard-blocks-destructive-git · 2.1.287 · 1.00guard-blocks-destructive-git · 2.1.258 · 1.00guard-blocks-destructive-git · 2.1.258 · 1.00guard-blocks-destructive-git · 2.1.258 · 1.00guard-blocks-destructive-git · 2.1.287 · 1.00guard-blocks-destructive-git · 2.1.287 · 1.00guard-blocks-destructive-git · 2.1.258 · 1.00guard-blocks-destructive-git · 2.1.258 · 1.00guard-blocks-destructive-git · 2.1.287 · 1.00guard-blocks-destructive-git · 2.1.295 · 1.00guard-blocks-destructive-git · 2.1.258 · 1.00guard-blocks-destructive-git · 2.1.258 · 1.00guard-blocks-destructive-git · 2.1.296 · 1.00guard-blocks-destructive-git · 2.1.258 · 1.00guard-blocks-destructive-git · 2.1.258 · 1.00guard-blocks-destructive-git · 2.1.258 · 1.00spring-controller-follows-conventions · 2.1.247 · 1.00spring-controller-follows-conventions · 2.1.247 · 1.00spring-controller-follows-conventions · 2.1.247 · 1.00spring-controller-follows-conventions · 2.1.247 · 1.00spring-controller-follows-conventions · 2.1.247 · 1.00spring-controller-follows-conventions · 2.1.247 · 1.00spring-controller-follows-conventions · 2.1.247 · 1.00spring-controller-follows-conventions · 2.1.247 · 1.00spring-controller-follows-conventions · 2.1.247 · 1.00spring-controller-follows-conventions · 2.1.247 · 1.00spring-controller-follows-conventions · 2.1.247 · 1.00spring-controller-follows-conventions · 2.1.247 · 1.00spring-controller-follows-conventions · 2.1.252 · 1.00spring-controller-follows-conventions · 2.1.257 · 1.00spring-controller-follows-conventions · 2.1.258 · 1.00spring-controller-follows-conventions · 2.1.258 · 1.00spring-controller-follows-conventions · 2.1.258 · 1.00spring-controller-follows-conventions · 2.1.258 · 1.00spring-controller-follows-conventions · 2.1.258 · 1.00spring-controller-follows-conventions · 2.1.258 · 1.00spring-controller-follows-conventions · 2.1.258 · 1.00spring-controller-follows-conventions · 2.1.263 · 1.00spring-controller-follows-conventions · 2.1.269 · 1.00spring-controller-follows-conventions · 2.1.258 · 1.00spring-controller-follows-conventions · 2.1.287 · 1.00spring-controller-follows-conventions · 2.1.258 · 1.00spring-controller-follows-conventions · 2.1.258 · 1.00spring-controller-follows-conventions · 2.1.258 · 1.00spring-controller-follows-conventions · 2.1.287 · 1.00spring-controller-follows-conventions · 2.1.287 · 1.00spring-controller-follows-conventions · 2.1.258 · 1.00spring-controller-follows-conventions · 2.1.258 · 1.00spring-controller-follows-conventions · 2.1.287 · 1.00spring-controller-follows-conventions · 2.1.295 · 1.00spring-controller-follows-conventions · 2.1.258 · 1.00spring-controller-follows-conventions · 2.1.258 · 1.00spring-controller-follows-conventions · 2.1.296 · 1.00spring-controller-follows-conventions · 2.1.258 · 1.00spring-controller-follows-conventions · 2.1.258 · 1.00spring-controller-follows-conventions · 2.1.258 · 1.00vue-request-does-not-trigger-skill · 2.1.247 · 1.00vue-request-does-not-trigger-skill · 2.1.247 · 1.00vue-request-does-not-trigger-skill · 2.1.247 · 1.00vue-request-does-not-trigger-skill · 2.1.247 · 1.00vue-request-does-not-trigger-skill · 2.1.247 · 1.00vue-request-does-not-trigger-skill · 2.1.247 · 1.00vue-request-does-not-trigger-skill · 2.1.247 · 1.00vue-request-does-not-trigger-skill · 2.1.247 · 1.00vue-request-does-not-trigger-skill · 2.1.247 · 1.00vue-request-does-not-trigger-skill · 2.1.247 · 1.00vue-request-does-not-trigger-skill · 2.1.247 · 1.00vue-request-does-not-trigger-skill · 2.1.247 · 1.00vue-request-does-not-trigger-skill · 2.1.252 · 1.00vue-request-does-not-trigger-skill · 2.1.257 · 1.00vue-request-does-not-trigger-skill · 2.1.258 · 1.00vue-request-does-not-trigger-skill · 2.1.258 · 1.00vue-request-does-not-trigger-skill · 2.1.258 · 1.00vue-request-does-not-trigger-skill · 2.1.258 · 1.00vue-request-does-not-trigger-skill · 2.1.258 · 1.00vue-request-does-not-trigger-skill · 2.1.258 · 1.00vue-request-does-not-trigger-skill · 2.1.258 · 1.00vue-request-does-not-trigger-skill · 2.1.263 · 1.00vue-request-does-not-trigger-skill · 2.1.269 · 1.00vue-request-does-not-trigger-skill · 2.1.258 · 1.00vue-request-does-not-trigger-skill · 2.1.287 · 0.00vue-request-does-not-trigger-skill · 2.1.287 · 1.00vue-request-does-not-trigger-skill · 2.1.258 · 1.00vue-request-does-not-trigger-skill · 2.1.258 · 1.00vue-request-does-not-trigger-skill · 2.1.258 · 1.00vue-request-does-not-trigger-skill · 2.1.287 · 1.00vue-request-does-not-trigger-skill · 2.1.287 · 1.00vue-request-does-not-trigger-skill · 2.1.258 · 1.00vue-request-does-not-trigger-skill · 2.1.258 · 1.00vue-request-does-not-trigger-skill · 2.1.287 · 1.00vue-request-does-not-trigger-skill · 2.1.295 · 1.00vue-request-does-not-trigger-skill · 2.1.258 · 1.00vue-request-does-not-trigger-skill · 2.1.258 · 1.00vue-request-does-not-trigger-skill · 2.1.296 · 1.00vue-request-does-not-trigger-skill · 2.1.258 · 1.00vue-request-does-not-trigger-skill · 2.1.258 · 1.00vue-request-does-not-trigger-skill · 2.1.258 · 1.00spring-request-dtos-are-validated-records · 2.1.258 · 0.94spring-request-dtos-are-validated-records · 2.1.258 · 1.00spring-request-dtos-are-validated-records · 2.1.263 · 1.00spring-request-dtos-are-validated-records · 2.1.269 · 1.00spring-request-dtos-are-validated-records · 2.1.258 · 1.00spring-request-dtos-are-validated-records · 2.1.287 · 1.00spring-request-dtos-are-validated-records · 2.1.258 · 1.00spring-request-dtos-are-validated-records · 2.1.258 · 1.00spring-request-dtos-are-validated-records · 2.1.258 · 1.00spring-request-dtos-are-validated-records · 2.1.287 · 0.94spring-request-dtos-are-validated-records · 2.1.287 · 0.94spring-request-dtos-are-validated-records · 2.1.258 · 1.00spring-request-dtos-are-validated-records · 2.1.258 · 1.00spring-request-dtos-are-validated-records · 2.1.287 · 0.94spring-request-dtos-are-validated-records · 2.1.295 · 1.00spring-request-dtos-are-validated-records · 2.1.258 · 1.00spring-request-dtos-are-validated-records · 2.1.258 · 1.00spring-request-dtos-are-validated-records · 2.1.296 · 1.00spring-request-dtos-are-validated-records · 2.1.258 · 1.00spring-request-dtos-are-validated-records · 2.1.258 · 1.00spring-request-dtos-are-validated-records · 2.1.258 · 1.00spring-service-owns-rules-and-errors · 2.1.258 · 1.00spring-service-owns-rules-and-errors · 2.1.258 · 0.93spring-service-owns-rules-and-errors · 2.1.263 · 1.00spring-service-owns-rules-and-errors · 2.1.269 · 1.00spring-service-owns-rules-and-errors · 2.1.258 · 1.00spring-service-owns-rules-and-errors · 2.1.287 · 1.00spring-service-owns-rules-and-errors · 2.1.258 · 1.00spring-service-owns-rules-and-errors · 2.1.258 · 1.00spring-service-owns-rules-and-errors · 2.1.258 · 1.00spring-service-owns-rules-and-errors · 2.1.287 · 1.00spring-service-owns-rules-and-errors · 2.1.287 · 1.00spring-service-owns-rules-and-errors · 2.1.258 · 1.00spring-service-owns-rules-and-errors · 2.1.258 · 1.00spring-service-owns-rules-and-errors · 2.1.287 · 1.00spring-service-owns-rules-and-errors · 2.1.295 · 1.00spring-service-owns-rules-and-errors · 2.1.258 · 0.93spring-service-owns-rules-and-errors · 2.1.258 · 1.00spring-service-owns-rules-and-errors · 2.1.296 · 1.00spring-service-owns-rules-and-errors · 2.1.258 · 1.00spring-service-owns-rules-and-errors · 2.1.258 · 1.00spring-service-owns-rules-and-errors · 2.1.258 · 1.00spring-work-triggers-skill · 2.1.258 · 1.00spring-work-triggers-skill · 2.1.258 · 1.00spring-work-triggers-skill · 2.1.263 · 1.00spring-work-triggers-skill · 2.1.269 · 1.00spring-work-triggers-skill · 2.1.258 · 1.00spring-work-triggers-skill · 2.1.287 · 0.00spring-work-triggers-skill · 2.1.287 · 1.00spring-work-triggers-skill · 2.1.258 · 1.00spring-work-triggers-skill · 2.1.258 · 1.00spring-work-triggers-skill · 2.1.258 · 1.00spring-work-triggers-skill · 2.1.287 · 1.00spring-work-triggers-skill · 2.1.287 · 1.00spring-work-triggers-skill · 2.1.258 · 1.00spring-work-triggers-skill · 2.1.258 · 1.00spring-work-triggers-skill · 2.1.287 · 1.00spring-work-triggers-skill · 2.1.295 · 1.00spring-work-triggers-skill · 2.1.258 · 1.00spring-work-triggers-skill · 2.1.258 · 1.00spring-work-triggers-skill · 2.1.296 · 1.00spring-work-triggers-skill · 2.1.258 · 1.00spring-work-triggers-skill · 2.1.258 · 1.00spring-work-triggers-skill · 2.1.258 · 1.00
guard-blocks-destructive-gitspring-controller-follows-conventionsvue-request-does-not-trigger-skillspring-request-dtos-are-validated-recordsspring-service-owns-rules-and-errorsspring-work-triggers-skill

Runs

statuswhentrackclaude codemodeloverallguard-blocks-destructive-gitspring-controller-follows-conventionsvue-request-does-not-trigger-skillspring-request-dtos-are-validated-recordsspring-service-owns-rules-and-errorsspring-work-triggers-skillcost
pass2026-10-16 09:58pinned2.1.258claude-sonnet-51.001.001.001.001.001.001.00$1.38report
pass2026-10-13 14:42pinned2.1.258claude-sonnet-51.001.001.001.001.001.001.00$1.44report
pass2026-10-13 14:31pinned2.1.258claude-sonnet-51.001.001.001.001.001.001.00$1.41report
pass2026-10-12 15:18canary2.1.296—1.001.001.001.001.001.001.00$0.92report
pass2026-10-09 14:53pinned2.1.258claude-sonnet-51.001.001.001.001.001.001.00$1.40report
below2026-10-09 14:23pinned2.1.258claude-sonnet-50.991.001.001.001.000.931.00$1.28report
pass2026-10-09 14:05canary2.1.295—1.001.001.001.001.001.001.00$0.96report
below2026-10-01 21:28canary2.1.287—0.991.001.001.000.941.001.00$0.97report
pass2026-10-01 21:17pinned2.1.258claude-sonnet-51.001.001.001.001.001.001.00$1.35report
pass2026-10-01 21:04pinned2.1.258claude-sonnet-51.001.001.001.001.001.001.00$1.30report
below2026-10-01 20:48canary2.1.287—0.991.001.001.000.941.001.00$0.97report
below2026-10-01 20:04canary2.1.287—0.991.001.001.000.941.001.00$0.99report
pass2026-10-01 20:00pinned2.1.258claude-sonnet-51.001.001.001.001.001.001.00$1.35report
pass2026-10-01 19:20pinned2.1.258claude-sonnet-51.001.001.001.001.001.001.00$1.31report
pass2026-10-01 19:12pinned2.1.258claude-sonnet-51.001.001.001.001.001.001.00$1.34report
pass2026-10-01 19:03canary2.1.287claude-sonnet-5-51.001.001.001.001.001.001.00$0.23report
errored2026-10-01 18:57canary2.1.287—0.000.00—0.00——0.00$0.00report
pass2026-10-01 18:57pinned2.1.258claude-sonnet-51.001.001.001.001.001.001.00$1.41report
pass2026-09-12 06:21canary2.1.269claude-sonnet-51.001.001.001.001.001.001.00$0.48report
pass2026-09-06 20:25canary2.1.263claude-sonnet-51.001.001.001.001.001.001.00$0.50report
below2026-09-03 18:06pinned2.1.258claude-sonnet-50.991.001.001.001.000.931.00$1.26report
below2026-09-03 17:57pinned2.1.258claude-sonnet-50.991.001.001.000.941.001.00$1.32report
pass2026-09-03 17:00pinned2.1.258claude-sonnet-51.001.001.001.00———$0.46report
pass2026-09-03 16:14pinned2.1.258claude-sonnet-51.001.001.001.00———$0.49report
pass2026-09-02 18:39pinned2.1.258claude-sonnet-51.001.001.001.00———$0.45report
regressed2026-09-02 18:35pinned2.1.258claude-sonnet-50.920.751.001.00———$0.45report
pass2026-09-02 17:00pinned2.1.258claude-sonnet-51.001.001.001.00———$0.50report
pass2026-09-01 21:02—2.1.257claude-sonnet-51.001.001.001.00———$0.38report
pass2026-09-01 05:06—2.1.252claude-sonnet-51.001.001.001.00———$0.34report
pass2026-08-27 19:15—2.1.247claude-sonnet-51.001.001.001.00———$0.36report
pass2026-08-27 19:00—2.1.247claude-sonnet-51.001.001.001.00———$0.35report
pass2026-08-27 18:57—2.1.247claude-sonnet-51.001.001.001.00———$0.43report
pass2026-08-27 18:54—2.1.247claude-sonnet-51.001.001.001.00———$0.44report
pass2026-08-27 18:49—2.1.247claude-sonnet-51.001.001.001.00———$0.41report
pass2026-08-27 17:17—2.1.247claude-sonnet-51.001.001.001.00———$0.40
pass2026-08-27 17:09—2.1.247claude-sonnet-51.001.001.001.00———$0.40
pass2026-08-27 17:06—2.1.247claude-sonnet-51.001.001.001.00———$0.44
pass2026-08-27 16:58—2.1.247claude-sonnet-51.001.001.001.00———$0.40
pass2026-08-27 16:55—2.1.247claude-sonnet-51.001.001.001.00———$0.40
pass2026-08-27 16:52—2.1.247claude-sonnet-51.001.001.001.00———$0.40
pass2026-08-27 16:49—2.1.247claude-sonnet-51.001.001.001.00———$0.43

Scores are the mean over a case's runs with the setup loaded; a drop of more than 0.15 against the pinned baseline is a regression, a drop inside the case's own noise band (the spread of its past runs) is a ⚠ noisy warning, shown amber. Filled cells are pinned-track runs, outlined cells are canaries on the alias model and latest Claude Code. Generated by config-drift-checker; every run's report lists each grader's reason.