skills/sre-rca-methodology/SKILL.md
根因分析(RCA)方法論詳細指南。提供 5 Whys、Fishbone 圖、Fault Tree Analysis、變更分析等結構化 RCA 技術,以及認知偏誤防範清單。適用於「根因分析」、「RCA」、「5 Whys」、「魚骨圖」、「Fault Tree」、「原因分析方法論」、「變更分析」等事故原因分析任務。強化 root-cause-investigator 的分析能力。注意:時間軸重建與改善規劃不在此技能範圍內。
npx skillsauth add vincent119/ai-rules-kit sre-rca-methodologyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
系統性追溯事故根本原因的結構化分析技術集合。
sre-incident-postmortem 技能使用以下輸入會啟動此技能:
從表面症狀開始,重複問「為什麼」至少 5 次:
問題:付款服務中斷 30 分鐘
Why 1:為什麼付款服務中斷?
→ DB 連線池耗盡
Why 2:為什麼連線池耗盡?
→ 慢查詢長時間佔用連線
Why 3:為什麼出現慢查詢?
→ 缺少索引導致全表掃描
Why 4:為什麼沒有索引?
→ 新功能部署的 Migration 遺漏了索引新增
Why 5:為什麼遺漏未被偵測?
→ 部署 Pipeline 未包含查詢效能驗證步驟
根因:部署 Pipeline 缺少查詢效能驗證步驟
| 陷阱 | 說明 | 防範方式 | |------|------|---------| | 過早停止 | 在第 2-3 步就下結論 | 驗證:「修正這個能防止再次發生嗎?」 | | 導向歸咎 | 以「誰犯了錯」作結 | 聚焦系統/流程原因 | | 單一路徑 | 忽略複合原因 | 每個步驟都檢視是否有分支 | | 基於推測 | 假設未經證據驗證 | 以 Log/Metric 驗證每個答案 |
| 傳統 6M | 軟體應用 | 調查項目 | |---------|---------|---------| | Man(人) | People/Team | 培訓、溝通、On-call 結構 | | Method(方法) | Process | 部署程序、變更管理、審核流程 | | Machine(機器) | Technology/Infrastructure | 伺服器、DB、網路、程式碼 | | Material(材料) | Data/Input | 輸入資料、外部 API 回應 | | Measurement(量測) | Monitoring | 告警、Metric、Log、Tracing | | Environment(環境) | Environment | 設定、環境變數、相依服務 |
graph LR
ROOT[付款服務中斷]
ROOT --- P[People]
ROOT --- PR[Process]
ROOT --- T[Technology]
ROOT --- E[Environment]
ROOT --- M[Monitoring]
P --- P1[部署者培訓不足]
PR --- PR1[未執行 Canary 部署]
PR --- PR2[效能測試未納入 Pipeline]
T --- T1[缺少索引]
T --- T2[連線池大小不足]
E --- E1[Production 資料量未在 Staging 反映]
M --- M1[慢查詢告警未設定]
付款服務中斷(Top Event)
│
├─── OR ───┤
│ │
DB 故障 應用程式故障
│ │
OR AND
│ │ │
連線池耗盡 慢查詢 高流量
│
AND
│ │
缺少索引 大量資料
OR gate:P(A OR B) = 1 - (1-P(A)) × (1-P(B))
AND gate:P(A AND B) = P(A) × P(B)
範例:P(慢查詢)=0.3,P(高流量)=0.2
P(應用程式故障) = 0.3 × 0.2 = 0.06(6%)
| 層級 | 事件/條件 | 閘道類型 | 機率 | 證據等級 | |------|---------|---------|------|---------| | 0(TOP) | 服務中斷 | AND | — | Confirmed | | 1 | 有缺陷的程式碼部署 | Basic | — | Confirmed | | 1 | 自動偵測失敗 | Basic | — | Confirmed | | 2 | 缺少索引 | Basic | — | Confirmed | | 2 | 大量資料 | Basic | — | Estimated |
事故前後的變更往往是觸發原因。系統性檢查:
| 變更類型 | 檢查項目 | 時間窗口 | |---------|---------|---------| | 程式碼部署 | 哪個版本?哪個服務? | 事故前 24h | | 設定變更 | 環境變數、Feature Flag | 事故前 24h | | 基礎設施 | 擴縮容、網路變更 | 事故前 48h | | 外部依賴 | 第三方 API、資料庫版本 | 事故前 72h | | 流量模式 | 異常流量、促銷活動 | 事故前 1 週 |
| 偏誤 | 說明 | 防範方式 | |------|------|---------| | 後見之明偏誤 | 「這很明顯應該被發現」 | 從當時的資訊角度重新評估 | | 確認偏誤 | 只尋找支持既有假設的證據 | 主動尋找反駁證據 | | 歸因謬誤 | 將系統問題歸咎於個人 | 問「系統為何允許這件事發生」 | | 近因偏誤 | 過度關注最近的變更 | 系統性檢查所有可能原因 | | 單一原因謬誤 | 找到一個原因就停止分析 | 繼續問「還有其他原因嗎?」 |
| 等級 | 說明 | 範例 | |------|------|------| | Confirmed | 有直接證據支持 | Log 明確顯示錯誤訊息 | | Estimated | 有間接證據,合理推斷 | Metric 趨勢與假設一致 | | Unconfirmed | 假設,尚無證據 | 推測可能是環境因素 |
# 根因分析
## 分析摘要
- **直接原因**:直接觸發事故的原因
- **根本原因**:允許直接原因發生的系統性原因
- **貢獻因素**:加劇事故的額外因素
## 5 Whys 分析
1. **Why** 服務中斷?→ [答案]
2. **Why** [答案1] 發生?→ [答案]
3. **Why** [答案2] 發生?→ [答案]
4. **Why** [答案3] 發生?→ [答案]
5. **Why** [答案4] 發生?→ [根本原因]
## Fishbone 圖
[Mermaid 圖]
## Fault Tree
[表格]
## 貢獻因素
| 因素 | 影響 | 類別 | 證據等級 |
## 證據清單
| 證據 | 來源 | 支持假設 | 反駁假設 |
tools
基於 SLA/SLO 量化評估事故影響的計算模型與業務影響矩陣。適用於「SLA 影響」、「SLO 違反」、「影響評估」、「營收損失估算」、「Error Budget」、「可用性計算」、「事故成本評估」等量化事故業務影響的任務。強化 impact-assessor 的評估能力。注意:事故原因分析與改善規劃不在此技能範圍內。
testing
事故事後分析(Postmortem)完整流程。協調 7 個執行階段:資訊收集 → 時間軸重建 → 根因分析 → 影響評估 → 改善規劃 → 報告審查 → 整合報告,最終產出完整的 Postmortem 報告。適用於「寫事故報告」、「post-incident 分析」、「RCA 報告」、「事故時間軸整理」、「建立改善措施」等請求。注意:即時 Incident Response(on-call)、監控系統設定、告警配置不在此技能範圍內。
content-media
投影片版面模式庫。提供 20 種投影片類型的最佳版面配置、格線系統、色彩與字型設計 Token。適用於「投影片版面」、「Slide Layout」、「設計系統」、「格線」、「字型」、「色彩規範」等投影片視覺設計任務。強化 visual-designer 的設計能力。注意:PPT/Keynote 檔案直接輸出不在此技能範圍內。
content-media
簡報設計完整製作流程。協調 5 個製作階段:故事結構 → 資訊設計 → 視覺設計 → 講者備稿 → 品質審查,最終產出完整的簡報套件。適用於「製作簡報」、「Presentation 規劃」、「PPT 製作」、「Slide Deck 設計」、「簡報故事線」、「投影片設計」等請求。注意:PowerPoint/Keynote 檔案直接輸出、投影片動畫設定不在此技能範圍內。