postmortem
事故記錄。收集資訊、分析 root cause、記錄修復步驟、防止再發。當服務出事故後使用。
事故記錄(Postmortem)
目標
快速記錄事故,結構化分析 root cause,防止重複犯錯。
流程
Step 1: 收集資訊
詢問用戶(或從上下文取得):
- 什麼壞了?
- 什麼時候發現的?
- 影響範圍?(用戶數、持續時間、資料損失?)
Step 2: 分析 root cause
- 觸發的命令或操作
- 錯誤訊息
- 為什麼會走到這一步(5 Whys)
若有 repo,自動檢查:
git log --oneline -10看最近改動- 搜尋相關錯誤訊息
Step 3: 記錄修復步驟
- 怎麼修好的
- 花了多久
- 是否有 workaround 還是根本修復
Step 4: 寫入檔案
追加到當前專案的 logs/errors.md(沒有就建立),格式:
## YYYY-MM-DD: [簡述問題]
**影響**:[影響範圍和持續時間]
**觸發**:[什麼操作觸發的]
**錯誤**:[錯誤訊息]
**Root Cause**:[根本原因]
**修復**:[修復步驟]
**防止再發**:[應該怎麼避免]
**Timeline**:
- HH:MM 發現問題
- HH:MM 開始修復
- HH:MM 恢復正常
Step 5: 提出預防建議
- 如果這類問題之前發生過,指出來
- 建議加入自動化防護(CI check、monitoring、alert)
- 建議更新文件(CLAUDE.md、README、runbook)
Quality Gates
- Root cause 不是「設定錯誤」這種表面原因,要挖到為什麼會設定錯誤
- 修復步驟可重現(別人照做也能修)
- 防止再發有具體動作(不是「以後注意」)
- Timeline 完整(從發現到恢復)
Heuristics
- 事故後 24 小時內記錄,記憶最清楚
- Root cause 用 5 Whys:問五次「為什麼」才算到底
- 防止再發優先考慮自動化(人的注意力不可靠)
- Blameless:記錄事實和流程,不指責個人