parallel-debugging について
競合仮説分析(ACH)とエージェントによる並行調査を組み合わせた、複雑な問題向けのデバッグフレームワークです。証拠に基づく根本原因分析、確信度の評価、修正の検証を支援します。
主な機能
- 016 種類の障害要因から仮説を生成
- 02証拠を強さ別に分類
- 03ファイルと行番号の引用を要求
- 04確信度に基づく仮説評価
- 05結果を裁定して根本原因を特定
- 06修正と関連テストを検証
活用シーン
- 01複数の原因が考えられるバグの調査
- 02モジュールやコンポーネントをまたぐ問題の分析
- 03デバッグ時の確証バイアスの抑制
- 04証拠に基づく修正結果の検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ wshobson/ agents --skill parallel-debuggingインストール後、Claude Code で/parallel-debuggingを入力して読み込まれたか確認します。
同梱ファイルreferences/hypothesis-testing.md
詳細
並列デバッグ
競合仮説分析(ACH)手法を用いて、並列エージェント調査で複雑な問題をデバッグするためのフレームワークです。
このスキルを使用する場面
- バグに複数のもっともらしい根本原因がある
- 最初のデバッグ試行で問題を特定できていない
- 問題が複数のモジュールやコンポーネントにまたがっている
- 証拠に基づいた体系的な根本原因分析が必要
- デバッグにおける確証バイアスを避けたい
仮説生成フレームワーク
6つの障害モードカテゴリにわたって仮説を生成します。
1. ロジックエラー
- 不正確な条件分岐ロジック(誤った演算子、欠落したケース)
- ループや配列アクセスにおけるオフバイワンエラー
- エッジケースの処理漏れ
- 不正確なアルゴリズム実装
2. データの問題
- 不正または想定外の入力データ
- 型の不一致または型強制エラー
- 値が期待される箇所での Null/undefined/None
- エンコーディングまたはシリアライズの問題
- データの切り捨てまたはオーバーフロー
3. 状態の問題
- 並行操作間の競合状態
- 古いデータを返す陳腐化したキャッシュ
- 不正確な初期化またはデフォルト値
- 共有状態の意図しない変更
- ステートマシンの遷移エラー
4. 統合の失敗
- API コントラクトの違反(リクエスト/レスポンスの不一致)
- コンポーネント間のバージョン非互換性
- 環境間の設定の不一致
- 環境変数の欠落または誤り
- ネットワークタイムアウトまたは接続失敗
5. リソースの問題
- メモリリークによる段階的な性能劣化
- コネクションプールの枯渇
- ファイルディスクリプタまたはハンドルのリーク
- ディスク容量またはクォータの超過
- 非効率な処理による CPU 飽和
6. 環境
- 実行時依存関係の欠落
- 誤ったライブラリまたはフレームワークのバージョン
- プラットフォーム固有の動作差異
- 権限またはアクセス制御の問題
- タイムゾーンまたはロケールに関連する動作
証拠収集の基準
証拠として何が該当するか
| 証拠の種類 | 強度 | 例 |
|---|---|---|
| 直接証拠 | 強 | file.ts:42 のコードが if (x > 0) であるべきところを if (x >= 0) と示している |
| 相関証拠 | 中 | コミット abc123 の後にエラー率が増加した |
| 証言 | 弱 | 「私のマシンでは動作します」 |
| 不在 | 可変 | コードパスに null チェックが見つからない |
引用形式
常に file:line 参照を付けて証拠を引用します。
**Evidence**: The validation function at `src/validators/user.ts:87`
does not check for empty strings, only null/undefined. This allows
empty email addresses to pass validation.
信頼度レベル
| レベル | 基準 |
|---|---|
| 高(>80%) | 複数の直接証拠、明確な因果連鎖、矛盾する証拠がない |
| 中(50-80%) | いくつかの直接証拠、もっともらしい因果連鎖、軽微な曖昧さ |
| 低(<50%) | 主に相関証拠、不完全な因果連鎖、矛盾する証拠がいくつかある |
結果の裁定プロトコル
すべての調査者が報告した後:
ステップ 1: 結果を分類する
- 確認済み: 高い信頼度、強力な証拠、明確な因果連鎖
- もっともらしい: 中程度の信頼度、いくつかの証拠、合理的な因果連鎖
- 反証済み: 証拠が仮説と矛盾している
- 結論不能: 確認または反証するには証拠が不十分
ステップ 2: 確認済みの仮説を比較する
複数の仮説が確認された場合、次の順で順位付けします。
- 信頼度レベル
- 裏付けとなる証拠の数
- 因果連鎖の強さ
- 矛盾する証拠の不在
ステップ 3: 根本原因を特定する
- 1つの仮説が明確に優勢な場合: 根本原因として宣言します
- 複数の仮説が同等に可能性が高い場合: 複合的な問題(複数の寄与する原因)である可能性があります
- どの仮説も確認されない場合: 収集した証拠に基づいて新しい仮説を生成します
ステップ 4: 修正を検証する
バグを修正済みと宣言する前に:
- 修正が特定された根本原因に対処している
- 修正が新たな問題を引き起こしていない
- 元の再現ケースがもはや失敗しない
- 関連するエッジケースがカバーされている
- 関連するテストが追加または更新されている
コメント
Markdown 対応