はじめに
このところ新モデルが毎週のように出ている。
新モデルにより、Skill が気づかないうちにデグレしていることがある。そこで、2 つのモデル間で同じ Skill のテストを回し、テストケース単位で結果を比べる CLI ツール skill-regression (MIT) を作った。
新モデルで Skill の品質は下がることがある
Anthropic の文書には、旧モデル向けに書いた Skill は新モデルで品質を下げうると明記されている (Prompting Claude Fable 5)。実際、集計スコアが +7.3 pp 改善したモデル更新でも、個別項目の 8.3% は悪化したという報告がある (Xu & Wu 2026)。
skill-regression は旧 / 新モデルをケース単位で比べる
評価するのは次の 2 点である。
- Skill が正しく発火するか (trigger / no-trigger ケースから precision / recall を算出)
- 発火した後の出力品質 (assertion の合否)
旧 / 新モデルで同じケースを既定で 3 回ずつ回し、合格回数から Beta 事後分布を作り、新モデルの方が悪い確率 P(新 < 旧) を計算する。0.95 以上なら REGRESSED と判定する。0.80〜0.95 の曖昧なケースだけ、最大 10 回まで追加で反復する。
発火の指標では precision の低下、つまり過剰発火を最優先で扱う。新モデルはシステムプロンプトへの反応が強く、Skill が過剰に発火しやすいため (Anthropic: Prompting best practices)。
使い方
pnpx skill-regression compare --old <model> --new <model> --skill <name>
サマリーはターミナルに、詳細は JSON / Markdown でローカルに保存する。テストケースは skill-creator 形式の evals/evals.json があればそれを使い、無ければ LLM が SKILL.md から自動生成する。
使用例
1) 同じ系列のモデル更新 (Haiku 4.5 -> Haiku 5.5) で Skill が壊れていないかチェック
本来の使い方の例となる。対象は Markdown 記法に変換する Skill である。description には「Use this skill whenever」「Trigger even if」という、旧モデル向けの強い発火指示がある。
| Skill | Verdict | Old | New | Flags |
| ------------------ | --------- | ---- | ---- | ----- |
| markdown-converter | UNCHANGED | 100% | 100% | |
判定は UNCHANGED だった。全 10 ケースが新旧とも 3/3 で、紛らわしい依頼でも Haiku 5.5 は発火しなかった。懸念した過剰発火は起きず、更新のたびに 1 回回して確かめる運用がこの形で成り立つ。
2) わざと Skill を壊して REGRESSED として検出できるかチェック
Mermaid 図を描く Skill の原本と壊したコピーを Sonnet 5.5 同士で比較した。
| 実験 | 変更内容 | 判定 | 合格率 (原本 → 比較対象) |
|---|---|---|---|
| パレット破壊 | 標準パレットの hex 値を差し替え | REGRESSED | 100% → 63% |
| 発火変更 | description を「配色レビュー専用」にする | REGRESSED | 100% → 25% |
| A/A テスト | SKILL.md は変えない | UNCHANGED | 100% → 100% |
壊した箇所だけを REGRESSED と判定し、変更がなければ UNCHANGED になった。
むすび
対応は今のところ Claude Code のみで、Codex 対応もじきに行っていきたい。新モデルが出たら compare --new を 1 回実行してデグレに気付けるようにする、という運用を目指していく。
参考文献
- Anthropic, Prompting Claude Fable 5
- Anthropic, Prompting best practices
- Xu & Wu 2026, "What Aggregate Scores Miss: Measuring Item-Level Regressions in Commercial LLM API Migrations"
- Anthropic, Skill authoring best practices
- Ma, Yang, Kästner 2024, “(Why) Is My Prompt Getting Worse? Rethinking Regression Testing for Evolving LLM APIs”
- Cacioli 2026, "Beyond the Mean: Within-Model Reliable Change Detection for LLM Evaluation"
- Sheng & Lu 2026, “No Universal Signal Predicts Sample-Level LLM Regression under Version Updates”