root-cause-guardraillisted
Install: claude install-skill Robbits-CO-LTD/sprint-coder
# Root Cause Guardrail
## 目的
bug/fix では「たぶんここ」を直さない。
原因が確認できるまでは **RCA Mode: Hypothesis only** として扱い、実装修正は止める。
実装に進めるのは **Root Cause Confirmed** になった後だけ。
---
## 適用条件
次のどれかに当てはまるときは、この Gate を最上位の hard gate として使う。
- bug 修正
- fix 指示
- regression / 再発修正
- E2E FAIL / テストFAIL修正
- 「直っていない」「まだ失敗する」「再現する」という報告
- 修正済みのはずの症状が残っているとき
新機能の通常設計だけなら、通常の設計レビューに進む。
ただし、途中で不具合や失敗症状を見つけたら、この Gate に戻る。
---
## RCA Mode: Hypothesis only / Root Cause Confirmed
### Hypothesis only
原因はまだ仮説。
この状態では、調査はできるが、修正実装はできない。
**許可する操作**
- 失敗症状の再現
- ログ、スクショ、テスト出力、network trace、DB状態の収集
- 関連コードの読み取り、grep、型定義確認
- 呼び出し経路とデータ経路の整理
- 代替原因の列挙と除外
- 調査用の一時ログ追加(修正と混ぜない。最終差分に残すなら理由を書く)
**禁止する操作**
- 原因未確定のまま実装修正に入る
- 「ついで」のリファクタや広範囲整理を始める
- 症状だけ���消す暫定対応を入れる
- 同じ仮説で実装リトライを繰り返す
- 関係が未確認のファイルを広く変更する
- Root Cause Confirmed と言わずに完了報告する
- **外形症状だけで内部機構を断定する**(検索の空振り・UIの見た目・`git diff` の ± 記号などから、現物のコード/データ/ログを読む前に原因を断定形で書く)。初回診断は「〜の可能性」と仮説形にとどめ、現物確認後に断定へ昇格させる
### Root Cause Confirmed
A/B/C のうち **2カテゴリ以上** が YES、かつ D が YES の状態。
D は D1〜D4 の全項目が YES のときだけ YES とする。
Root Cause Confirmed になったら、原因箇所と原因経路に直接対応する **最小修正** に進む。
---
## Root Cause Confirmed YES/NOチェック
### A. 症状再現
- [ ] A1. 失敗症状を1文で説明
- [ ] A2. 再現手順または再現コマンドを記録
- [ ] A3. 修正前の失敗ログ/スクショ/テスト出力/network trace のいずれかを保存
- [ ] A4. 再現できない場合はその理由と代替証拠を明記
**AカテゴリYES:** A1 があり、A2+A3 または A4 が埋まっている。
### B. 原因箇所
- [ ] B1. 原因として扱うファイル:行番号を特定
- [ ] B2. 入力呼び出し経路原因行までのコードパスを説明
- [ ] B3. 同種の別経路類似実装を検索し関係/非関係を仕分け
**BカテゴリYES:** B1〜B3 が埋まっている。
### C. 独立した証拠
- [ ] C1. 実