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