# Root Cause Tracing

> Root cause analysis using 5 Whys, fault tree, and dependency tracing. Find the real source of problems.

- Skill: `modbender/root-cause-tracing` (Agent Skill)
- Install (CLI): `npx skillmds@latest add modbender/root-cause-tracing`
- Raw SKILL.md: https://api.skillmd.com/api/skills/modbender/root-cause-tracing/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: modbender (https://skillmd.com/u/modbender)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/modbender/root-cause-tracing

---


# Root Cause Tracing Skill

根本原因追跡スキル。5 Whys、フォールトツリー、依存関係追跡で真の原因を特定。

---

## 分析手法

### 1. 5 Whys分析

```yaml
手法:
  「なぜ？」を5回繰り返して根本原因に到達

例:
  問題: APIがタイムアウトする

  Why 1: なぜタイムアウト？
    → データベースクエリが遅い

  Why 2: なぜクエリが遅い？
    → フルテーブルスキャンしている

  Why 3: なぜフルスキャン？
    → インデックスがない

  Why 4: なぜインデックスがない？
    → マイグレーションで追加し忘れた

  Why 5: なぜ追加し忘れた？
    → レビューチェックリストになかった

  根本原因: レビュープロセスの欠陥
  対策: チェックリストにインデックス確認を追加
```

### 2. フォールトツリー分析

```yaml
手法:
  問題をトップダウンで分解し、可能な原因を網羅的に列挙

記法:
  [TOP] 問題
    ├── [OR] 原因A または
    │   ├── [AND] A-1 かつ
    │   └── [AND] A-2
    └── [OR] 原因B または
        └── 原因B-1

例:
  [TOP] ログインできない
    ├── [OR] 認証失敗
    │   ├── [AND] パスワード間違い
    │   └── [AND] ユーザー存在しない
    ├── [OR] ネットワーク問題
    │   └── APIサーバーダウン
    └── [OR] クライアント問題
        └── Cookie無効
```

### 3. 依存関係追跡

```yaml
手法:
  エラーの発生箇所から依存関係を遡る

フロー:
  エラー発生箇所
      ↓
  呼び出し元を特定
      ↓
  その呼び出し元を特定
      ↓
  ...
      ↓
  根本原因に到達

ツール:
  - スタックトレース分析
  - コールグラフ生成
  - ログのタイムライン分析
```

---

## 追跡プロセス

```
問題発生
    ↓
1. 症状の記録
   - エラーメッセージ
   - 発生条件
   - 発生頻度
    ↓
2. 仮説生成
   - 5 Whys で深掘り
   - フォールトツリーで網羅
    ↓
3. 証拠収集
   - ログ分析
   - コード追跡
   - 依存関係確認
    ↓
4. 仮説検証
   - 再現テスト
   - 修正→再テスト
    ↓
5. 根本原因確定
   - 文書化
   - 再発防止策
```

---

## ログ分析テクニック

### タイムライン分析

```yaml
手順:
  1. エラー発生時刻を特定
  2. その前後のログを収集
  3. 時系列で並べて異常を発見

コマンド例:
  # エラー前後30行
  grep -B30 -A10 "ERROR" app.log

  # 特定時刻のログ
  grep "2026-02-02 12:3" app.log
```

### 相関分析

```yaml
手順:
  1. 複数のログソースを収集
  2. 同一タイムスタンプでマッチング
  3. 因果関係を特定

対象:
  - アプリケーションログ
  - システムログ
  - ネットワークログ
  - データベースログ
```

---

## コード追跡テクニック

### スタックトレース分析

```yaml
読み方:
  1. 最下部 = 直接の原因
  2. 上に遡る = 呼び出し元
  3. 境界を見る = 外部ライブラリ/自コード

注目点:
  - 自分のコードで最初に現れる行
  - 例外がthrowされた箇所
  - 予期しない値が渡された箇所
```

### Git Bisect

```yaml
手法:
  動作していたコミットと壊れたコミットの間を二分探索

コマンド:
  git bisect start
  git bisect bad HEAD
  git bisect good <動作していたコミット>
  # テスト → good/bad を繰り返し
  git bisect reset
```

---

## {AGENT_NAME}固有の追跡

### API関連

```yaml
追跡ポイント:
  - Cloudflare Workersのログ
  - AI Gatewayのログ
  - ブラウザコンテナのログ

よくある原因:
  - CF Access認証失敗
  - APIキー期限切れ
  - レート制限
```

### 暗号資産関連

```yaml
追跡ポイント:
  - トランザクションハッシュ
  - ブロックチェーンエクスプローラー
  - ガス代の状態

よくある原因:
  - 残高不足
  - ガス代不足
  - Nonce競合
  - コントラクトリバート
```

---

## 出力フォーマット

```yaml
根本原因分析レポート:

問題:
  [問題の簡潔な説明]

症状:
  - [症状1]
  - [症状2]

5 Whys分析:
  1. なぜ？ → [回答1]
  2. なぜ？ → [回答2]
  3. なぜ？ → [回答3]
  4. なぜ？ → [回答4]
  5. なぜ？ → [回答5]

根本原因:
  [特定された根本原因]

証拠:
  - [証拠1: ログ/コード/テスト結果]
  - [証拠2]

対策:
  即時: [すぐに行う修正]
  恒久: [再発防止策]
```

---

## 使用例

```
「なぜエラーが出る？」→ 5 Whys分析開始
「原因を追跡して」→ 依存関係追跡
「どこから問題が？」→ フォールトツリー分析
```

---

## 連携スキル

| スキル | 連携内容 |
|--------|----------|
| `systematic-debug` | 原因特定後の修正 |
| `auto-fix` | 簡単な修正の自動化 |
| `failure-analyzer` | 失敗パターンの学習 |

---

## 更新履歴

```
[2026-02-02] 初期作成
```

