code-debugging について
実験コードのエラーを体系的に診断し、対象を絞った修正方法を選ぶスキルです。エラーの分類と原因の追跡に加え、修正後の検証や再発防止も案内します。
主な機能
- 01種類と深刻度によるエラー分類
- 02エラー出力から原因を追跡
- 03種類別の修正方針
- 04修正の検証と再発防止
- 05試行回数とエラー履歴の管理
活用シーン
- 01トレースバックやstderrの診断
- 02形状やデバイスの不一致の調査
- 03実験結果の誤りの修正
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ lingzhi227/ agent-research-skills --skill code-debuggingインストール後、Claude Code で/code-debuggingを入力して読み込まれたか確認します。
同梱ファイルreferences/debug-patterns.md
詳細
コードのデバッグ
構造化されたエラー分類と修正戦略を用いて、実験コードを体系的にデバッグします。
入力
$0— エラーメッセージ、stderr の出力、または問題のあるコードファイル$1— 任意:エラーを発生させたコード
参考資料
- デバッグパターンと状態機械:
~/.claude/skills/code-debugging/references/debug-patterns.md
ワークフロー
ステップ 1:エラーを分類する
| カテゴリ | 例 | 深刻度 |
|---|---|---|
| SyntaxError | 無効な構文、インデント | 低 |
| ImportError | モジュールが見つからない、名前が間違っている | 低 |
| RuntimeError | ゼロ除算、形状の不一致 | 中 |
| TimeoutError | 無限ループ、処理が遅すぎる | 中 |
| OutputError | ファイルがない、形式が間違っている | 中 |
| LogicError | 結果が間違っている、精度が 0% | 高 |
ステップ 2:根本原因を分析する
- エラーのトレースバックを読みます(切り詰められている場合は末尾の 1500 文字)
- エラーの原因となっている行と変数を特定します
- よくあるパターンを確認します:
- デバイスの不一致(CPU と GPU のテンソル)
- 行列演算での形状の不一致
- データの正規化漏れ
- インデックス指定のオフバイワンエラー
- タスクの種類に対して不適切な損失関数
ステップ 3:修正戦略を適用する
構文/インポートエラーの場合:直接修正し、1 回だけ試行します
ランタイムエラーの場合:修正して再実行し、最大 4 回まで再試行します
ロジックエラーの場合:アプローチを見直し、代替手法を検討します
タイムアウトの場合:データセットのサイズを縮小し、ボトルネックを最適化して、早期停止を追加します
ステップ 4:振り返りと予防
修正後:
- エラーが発生した理由を説明します
- 原因となった行を特定します
- 修正内容を行ごとに説明します
- 今後のコードで避けるべきパターンを記録します
修正戦略の状態機械
Stage 0 (first attempt) → repost code as fresh
Stage 1 (second attempt) → repost or leave depending on severity
Stage 2 (third attempt) → regenerate from scratch if still failing
ルール
- 全面的な書き換えより、対象を絞った最小限の編集を優先します
- アプローチを変更する前の修正試行は最大 4~5 回です
- 長いエラー出力は必ず末尾の 1500 文字に切り詰めます
- 修正後、新たなエラーが発生しないことを確認します
- 同じ間違いを繰り返さないよう、エラー履歴を保持します
- 精度が 0% の場合:まず精度の計算を確認し、次にデータパイプラインを確認します
関連スキル
- 上流: experiment-code
- こちらも参照: paper-to-code、data-analysis
コメント
Markdown 対応