principle-fix-root-causes について
Fix Root Causes は、症状が現れた箇所ではなく、その原因となった障害を特定して修正するためのデバッグ原則です。調査手順を示し、不正な状態や繰り返す欠陥を隠す回避策に注意を促します。
主な機能
- 01変更前に障害を再現
- 02因果関係をたどって誤った判断を特定
- 03実際のエラーと状態を確認
- 04正当な状態と異常な状態を区別
- 05繰り返す障害パターンを調査
- 06診断が難しい場合の観測シグナル改善
活用シーン
- 01下流で表面化する不具合の診断
- 02再起動後に起きる障害の調査
- 03欠陥を隠すガードやリトライの見直し
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ cursor/ plugins --skill principle-fix-root-causesインストール後、Claude Code で/principle-fix-root-causesを入力して読み込まれたか確認します。
詳細
根本原因を修正する
デバッグするときは、問題が表面化した場所ではなく、障害の原因を修正します。症状が現れた場所は、誤った状態が見えるようになった場所です。根本原因は、システムが本来すべきでない処理を最初に行った場所、または処理すべき状態を処理できなかった場所です。
理由: 症状への対処は証拠を隠し、障害が別の場所で再び表面化する余地を残します。こうした対処を重ねるたびに、誰も名前を付けていないバグへの回避策がコードに残り、システムの動きを理解しにくくなります。
手順:
- まず再現します。
- 各段階で「なぜ」と問い、答えが先行する処理の結果ではなく、コード内の誤った判断にたどり着くまで続けます。
- 行き詰まったら、計測を追加します。実際のエラーと実際の状態を確認します。推測してはいけません。
- 症状を引き起こした状態が正当なものかどうかを確認します。システムがその状態になり得るなら、その状態で動作しなかったコードが根本原因であり、その場で状態を処理することが修正になります。その状態が決して発生してはならないなら、問題が起きた場所にチェックを追加してもバグを隠すだけです。その状態を生み出した原因を見つけます。ガード、再試行、エラーの握りつぶし、値の上限・下限への丸め、状態の破棄は、バグを隠すよくある手段です。
- 再起動後にだけ問題が起きる場合は、まず永続化された状態を疑います。設定ファイル、キャッシュ、ロックファイル、シリアライズされた状態などです。
- 個別の事例だけでなく、パターンを確認します。同じ障害がある場所をすべて見つけ、すべて修正します。
- 回避策を正当化するために長い段落のコメントが必要なら、コードに問題があります。コメントではなくコードを修正します。
- 判断の決め手となる事実を見つけるのに深く調査する必要があった場合は、最初に見ただけで気づける、手軽で常時有効なシグナルを提案します。
コメント
Markdown 対応