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