Claude Code でバグを直すとき、こんな一言を足していませんか。
「エッジケースも全部考えて」
「先にテストを書いて」
あるいは effort を high に上げる。私もそうでした。そこで本当に効くのか、504回動かして測りました。
結論:お金が増えただけでした。
- Haiku 5.5:「エッジケース」+「既存テストを先に読め」で1回あたりのコストが +134%
- Opus 5.5:「エッジケース」の一文だけで +60%
- effort high:Haiku +60%、Opus +22%
- バグ報告に書かれていないケースの通過率:どの条件も 4ポイント以上は動かず。effort high は両モデルともむしろ少し下がりました。
測り方
2026年8〜10月に実際に修正された OSS のバグ21件(cachetools、zod、marked、js-yaml、anyio、undici、fastify など12プロジェクト)。Claude Code 2.1.295 のヘッドレスモードで Haiku 5.5 と Opus 5.5 に、4条件×3回ずつ直させました。21×2×4×3=504回です。
| 条件 | 変えたこと |
|---|---|
| 基本 | 症状・再現・期待結果だけ残したバグ報告 |
| effort high | 同じ報告、effort だけ high |
| エッジケース | 「直す前に、報告に書かれていないが一緒に扱うべき入力と変形を挙げ、そのテストを先に書いてから直せ」を追加 |
| エッジケース+テスト読み | さらに「変更するコードの既存テストを先に読め」 |
採点はそのバグを直したメンテナーのテストで行いました。テストケースごとに「報告に出てくるケース」と「出てこないケース」を最初の実行前に分け、sha256 付きで GitHub に事前登録しています。結果を見てから基準を動かせないようにするためです。効果と認める基準は20ポイント以上の差です。
結果
報告に書かれていないケースの通過率(バグごとの平均):
| 条件 | Haiku 5.5 | Opus 5.5 |
|---|---|---|
| 基本 | 84% | 88% |
| effort high | 82% | 86% |
| エッジケース | 84% | 91% |
| エッジケース+テスト読み | 86% | 84% |
1回あたりの API コスト:
| 条件 | Haiku | Opus |
|---|---|---|
| 基本 | US$0.050 | US$0.51 |
| effort high | US$0.081(+60%) | US$0.62(+22%) |
| エッジケース | US$0.10(+108%) | US$0.82(+60%) |
| エッジケース+テスト読み | US$0.12(+134%) | US$0.81(+58%) |
1回の所要時間の中央値も Haiku 121秒→299秒、Opus 120秒→271秒に延びました。指示どおりケースを列挙してテストも書いていますが、それが修正の質につながっていません。
なぜ効かなかったか:決めたのはプロンプトではなくバグ
- 簡単なバグは言われなくても対応していた。 21件中12件は、どの条件でも両モデルが全ケース通過。伸びしろがありませんでした。
- 難しいバグは言われても対応できなかった。 js-yaml の「ストリーム内の各ドキュメントの先頭に BOM がある」ケースは 504回中0回。「書かれていない変形を挙げよ」と言っても、その変形を思いつきませんでした。
- テスト読みが逆効果のことも。 Python-Markdown のバッククォートのバグで、Opus は基本条件で3回中2回通過したのに、「テストを先に読め」を足すと3回とも失敗しました。
代わりにどうするか
- 「エッジケース」ではなく、漏れそうなケースを具体的に書く。 報告に出てくるケースは両モデルとも94%以上通過しました。モデルは指示に従えないのではなく、書かれていないものを思いつけないのです。
- バグ修正では effort はデフォルトのまま。 今回 high はコストを上げただけでした。
- 基本は Haiku。 各252回の平均で1回あたり Haiku 0.088ドル、Opus 0.69ドル。約87%安い。Opus のほうが数ポイント上で、他のテストを壊す回数も少なかったので、大きなコードベースの難しいバグでは Opus に価値があります。
限界
バグ21件、各条件3回です。20ポイントの効果は否定できますが、数ポイントの小さな効果までは否定できません。プロンプトの文面も条件ごとに1つだけです。
データ
504回の実行ごとの点数・コスト・時間を CSV で公開しています(CC BY 4.0)。事前登録文書と採点コードもあります。
- データ(DOI):https://doi.org/10.5281/zenodo.23796306
- 事前登録:https://github.com/johnisking/token-cost-by-language/blob/main/claude-report-edge-cases/PREREG.md
皆さんが Claude に付けている「効いた一言」があればコメントで教えてください。次の実測で試します。
