Debug Repro

エラー・不具合の原因を体系的に切り分けて修正へ導く。エラーログ・スタックトレース・「動かない」「例外が出る」「落ちる」「期待と違う結果になる」などの相談時に使用。再現 → 原因仮説 → 検証 → 修正の順で進め、当て推量の修正を避ける。

ntaksh42 721d2b5 2.1 KB Updated

File contents

debug-repro — 再現・原因切り分け・修正

不具合を「症状」から「根本原因」へ落とし込む。推測で直さず、再現と検証で確証を得る。

進め方

  1. 症状を正確に捉える
    • エラーメッセージ・スタックトレース・期待結果と実際の結果・発生条件を集める
    • 不足していれば AskUserQuestion で最小限を確認(再現手順・環境・直近の変更)
  2. 再現する
    • 最小の再現手順を確立する。可能なら test-author失敗する再現テストを書く
    • 再現できないなら、まず再現条件の特定を最優先にする
  3. 原因を仮説立てする
    • スタックトレースを起点に関係コードを読む。直近の差分(git log/git diff)を疑う
    • 仮説は 1〜3 個に絞り、それぞれ「もし真なら何が観測されるはず」を言語化する
  4. 検証する
    • ログ追加・条件の絞り込み・二分探索(git bisect 等)で仮説を潰す
    • 確証を得てから修正する。「たぶんこれ」で複数箇所を同時にいじらない
  5. 修正と確認
    • 根本原因に対する最小修正を行う。再現テストがパスすることを確認する
    • 同種の問題が他にないか(同じパターンの箇所)を 1 度だけ確認する

原則

  • 症状の抑制(握り潰し・リトライ追加)でなく根本原因を直す。やむを得ない暫定対応は明示する
  • 1 度に 1 変数。複数の変更を混ぜて「直った」を曖昧にしない
  • 分からないことを分かったふりしない。確証の度合いを正直に伝える
  • 修正は外科的に。ついでのリファクタを混ぜない(CLAUDE.md 準拠)

ntaksh42/agents/tree/main/claude/skills/debug-repro commit 721d2b5b3d

Frequently asked questions

npx skillmds@latest add ntaksh42/debug-repro