kaizen:why について
問題を調査し根本原因を特定するための、Five Whys 分析スキルです。問題の明確化から原因の検証までを導き、根本原因に対処する解決策を提案します。
主な機能
- 01Five Whys による反復分析
- 02分析の深さの調整
- 03根本原因の逆向き検証
- 04複数原因を分岐して分析
- 05根本原因に焦点を当てた解決策の提案
活用シーン
- 01繰り返す本番エラーの調査
- 02断続的な CI/CD 障害の追跡
- 03複数要因による遅延の分析
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ neolabhq/ context-engineering-kit --skill kaizen:whyインストール後、Claude Code で/kaizen:whyを入力して読み込まれたか確認します。
詳細
ファイブ・ホワイ分析
「なぜ?」を繰り返し問いかけ、症状から根本原因へと掘り下げて問題を調査する根本原因分析を適用します。
説明
表面的な症状から根本的な原因へと進むため、「なぜ?」を繰り返し問いかけます。応急処置ではなく、システム上の問題を特定します。
使い方
/why [issue_description]
変数
- ISSUE:分析する問題または症状(デフォルト:入力を促す)
- DEPTH:「なぜ?」を繰り返す回数(デフォルト:5、必要に応じて調整)
手順
- 問題を明確に述べます
- 「なぜこれが起きたのか?」と問いかけ、回答を記録します
- その回答に対して、もう一度「なぜ?」と問いかけます
- 根本原因にたどり着くまで続けます(通常は5回です)
- 逆方向にたどって検証します:根本原因 → 症状
- 複数の原因が見つかった場合は、分岐を掘り下げます
- 症状ではなく、根本原因に対処する解決策を提案します
例
例 1:本番環境のバグ
Problem: Users see 500 error on checkout
Why 1: Payment service throws exception
Why 2: Request timeout after 30 seconds
Why 3: Database query takes 45 seconds
Why 4: Missing index on transactions table
Why 5: Index creation wasn't in migration scripts
Root Cause: Migration review process doesn't check query performance
Solution: Add query performance checks to migration PR template
例 2:CI/CD パイプラインの失敗
Problem: E2E tests fail intermittently
Why 1: Race condition in async test setup
Why 2: Test doesn't wait for database seed completion
Why 3: Seed function doesn't return promise
Why 4: TypeScript didn't catch missing return type
Why 5: strict mode not enabled in test config
Root Cause: Inconsistent TypeScript config between src and tests
Solution: Unify TypeScript config, enable strict mode everywhere
例 3:複数分岐の分析
Problem: Feature deployment takes 2 hours
Branch A (Build):
Why 1: Docker build takes 90 minutes
Why 2: No layer caching
Why 3: Dependencies reinstalled every time
Why 4: Cache invalidated by timestamp in Dockerfile
Root Cause A: Dockerfile uses current timestamp for versioning
Branch B (Tests):
Why 1: Test suite takes 30 minutes
Why 2: Integration tests run sequentially
Why 3: Test runner config has maxWorkers: 1
Why 4: Previous developer disabled parallelism due to flaky tests
Root Cause B: Flaky tests masked by disabling parallelism
Solutions:
A) Remove timestamp from Dockerfile, use git SHA
B) Fix flaky tests, re-enable parallel test execution
注意事項
- 症状だけで止めず、システム上の問題を掘り下げます
- 根本原因が複数ある場合があります。別の分岐も掘り下げます
- 後で参照できるよう、「なぜ?」を一つずつ記録します
- 技術的な原因とプロセスに関する原因の両方を考慮します
- 大切なのは「なぜ?」を厳密に5回問うことではありません。真の根本原因にたどり着いたら止めます
- 技術的な詳細だけでなく、システムやプロセス上の問題にたどり着いたら止めます
- 根本原因が複数あることはよくあります。分岐を個別に掘り下げます
- 「ヒューマンエラー」が見つかった場合は、さらに掘り下げます。なぜエラーが起こり得たのでしょうか?
- 後で参照できるよう、「なぜ?」をすべて記録します
- 根本原因には通常、検証の不足、ドキュメントの不足、不明確なプロセス、または自動化の不足が関係します
- 解決策をテストします:実装 → 症状が解消したことを検証 → 再発を監視
コメント
Markdown 対応