先決定你現在是要學,還是要在專案裡做
網站負責解釋與分發工作包;真正的 Repository 掃描、缺口判斷與文件產出交給 Coding Agent。
SDLC 實作課 · 交付物練習
先理解這份文件替你消除什麼不確定
把『誰的錯』改寫成『系統的哪個缺口』
Postmortem 的目的是讓系統變強,不是讓人變慘。Blameless 不是不負責,是讓改善焦點放在可重複的流程、工具、訓練缺口上。
誰負責、交給誰
主責: Incident Commander 主持,服務 owner 撰寫
協作: 所有事故參與者、Architect 評估設計缺口
下游收件: backlog 改善項、Runbook 更新、訓練計畫
何時值得做
必要時機: SEV-1/2、重複 SEV-3、近錯(near miss)有教學價值
不需要時: 已知預期事件、無改善空間
常見誤用: 寫成檢討個人;行動項無 owner、無 due date
- 01讀大綱
- 02看案例
- 03填素材
- 04貼提示詞
- 05對照驗收
Anatomy · 文件解剖
輕量版先回答 6 個核心章節
章節名稱可以因團隊調整,但每一段要求的判斷不能被省略。先讀問題,再看格式。
- 01
Executive Summary
範本必要章節
3-5 行 blameless 摘要,給高層 30 秒讀完。不含人名,只談「哪個系統缺口導致什麼影響、改了什麼」
- 02
Root Cause(5 Whys)
範本必要章節
5 層 why 必須往「系統 / 流程 / 訓練」收斂,不能停在「人沒做 X」
- 03
What Went Well / Wrong
範本必要章節
各列至少 2 條,附 source;不寫「某人做得好/不好」,寫流程或工具的訊號
- 05
Action Items(≤ 3 條)
範本必要章節
每條必含 owner + due + severity + 驗收條件 + category;無 owner 寫 _TODO: 待 EM 指派_ 不留空
- 10
Decision Log(key 1-2 條)
範本必要章節
每條必含 chosen + 至少 1 個 rejected + 拒絕原因
- 12
Confidence & Sources & TODO
範本必要章節
把已確認的內容、判斷依據與仍待補充的資訊清楚分開。
Study · 對照學習
同一份交付物,先練核心,再看完整深度
輕量範本適合第一次練習與 MVP;完整範本保留跨職能交棒需要的細節。兩者都要求未知事項保持可見。
30 分鐘內先完成核心章節。
---
doc_type: "postmortem"
variant: "light"
status: "draft"
owner: "<IC-or-service-owner>"
last_updated: "YYYY-MM-DD"
upstream:
required: ["incident-report"]
optional: ["chat-log", "metric-snapshot"]
---
# Postmortem: <INC-NNN · short-title>
**Status:** Draft v0.X · **Owner:** <service owner> · **IC:** <name> · **Last updated:** YYYY-MM-DD
> [!IMPORTANT]
> **AI 填寫規則:** 本範本 6 段(編號 1, 2, 3, 5, 10, 12),全部必填——刻意沿用完整版的章節編號讓兩版可對照。每結論行內加 `(依據:incident-report §XXX / chat-log §YYY)`;每量化欄位 `[H]/[M]/[L]` confidence badge;缺資料寫 `_TODO: 需要 XXX_` 不編造;**Blameless:不寫人名作為根因**,個人錯誤一律歸因為「系統未保護該操作」;action item 必須有 owner + due + 驗收條件。
---
## 1. Executive Summary
<!-- ai-fill: 3-5 行 blameless 摘要,給高層 30 秒讀完。不含人名,只談「哪個系統缺口導致什麼影響、改了什麼」 -->
<3-5 行 blameless 說明>
> **TL;DR:** <一句話:根因類別 + 影響範圍 + 最重要的改善>
| Field | Value |
|---|---|
| **Incident ref** | INC-NNN |
| **Severity** | SEV-1 / SEV-2 / SEV-3 |
| **Duration** | <e.g. 2024-XX-XX 14:32 ~ 15:48 UTC, 76 min> |
| **Impact** | <受影響使用者 / 業務功能> |
| **Error budget burn** | <% of 28d budget> |
---
## 2. Root Cause(5 Whys)
<!-- ai-rule: 5 層 why 必須往「系統 / 流程 / 訓練」收斂,不能停在「人沒做 X」 -->
| Layer | Question | Answer | Confidence |
|---|---|---|---|
| Why 1 | What did users observe? | <observed symptom> | **[H]** |
| Why 2 | Why did the symptom appear? | <cause of symptom> | **[H]** |
| Why 3 | Why did that cause exist? | <cause of cause> | **[M]** |
| Why 4 | Why was the system vulnerable? | <systemic gap> | **[M]** |
| Why 5 | Why did the org allow that gap? | <process / training / design 缺口> | **[L]** |
> **Primary cause category:** code / config / capacity / dependency / process / training / monitoring — <choose 1>
---
## 3. What Went Well / Wrong
<!-- ai-rule: 各列至少 2 條,附 source;不寫「某人做得好/不好」,寫流程或工具的訊號 -->
### What went well
- [YES] <signal 1> — incident-report §XX
- [YES] <signal 2> — chat-log §YY
### What went wrong
- [NO] <signal 1> — incident-report §XX
- [NO] <signal 2> — chat-log §YY
---
## 5. Action Items(≤ 3 條)
<!-- ai-rule: 每條必含 owner + due + severity + 驗收條件 + category;無 owner 寫 `_TODO: 待 EM 指派_` 不留空 -->
| ID | Action | Owner | Due | Severity | Category | Success criteria | Confidence |
|---|---|---|---|---|---|---|---|
| AI-001 | <e.g. 加 rollback gate 到 deploy pipeline> | <team> | YYYY-MM-DD | P0 | prevention | <how we know it's done> | **[H]** |
| AI-002 | ... | ... | ... | P1 | detection | ... | **[M]** |
---
## 10. Decision Log(key 1-2 條)
<!-- ai-rule: 每條必含 chosen + 至少 1 個 rejected + 拒絕原因 -->
| Date | Decision | Options | Chosen | Rejected why | Confidence |
|---|---|---|---|---|---|
| YYYY-MM-DD | 根因歸類 | capacity / config / dependency | capacity | config (改動點不在本次發布)、dependency (上游無異常) | **[H]** |
---
## 12. Confidence & Sources & TODO
- **整份文件最低 confidence 欄位:** <列出所有 [L] 與 [M]>
- **Fabricated assumptions(推測但 input 未明說):**
- <假設 1>
- **Highest-value next input:** <下一份最該補的:deploy log / DB slow-query log / chat-log 全文>
### TODO(缺資料)
- _TODO: 需要 deploy log 校準 Why 3 的時序歸因_
---
> [!CAUTION]
> **輸出前 AI 自檢:**
> - [ ] 6 段 H2 章節齊全(編號 1, 2, 3, 5, 10, 12,刻意不連號)
> - [ ] 5 Whys 收斂到系統 / 流程 / 訓練(不停在「人沒做 X」)
> - [ ] **全文 0 個人名作為根因**(blameless)
> - [ ] What went well / wrong 各 ≥ 2 條,附 source
> - [ ] Action items ≤ 3 條,每條有 owner + due + severity + 驗收
> - [ ] Decision Log ≥ 1 條,每條有 rejected reason
> - [ ] 無 YAML / JSON schema 輸出(postmortem 是給人讀的 markdown)Practice · 換你試做
先用自己的話交代素材,不需要先學會工程術語
確定的就寫,不確定的留白。下一步要做的是請 Agent 找缺口,不是讓它替你猜一套合理答案。
可以先留白;複製提示詞後再到 Coding Agent 裡補充。
AI Practice · 手動三步
先問、再寫、最後審,不把整條流程鎖死
每一步都是獨立工作包。你可以停下補資料、修改限制或重做某一步,不需要服從固定的 Agent 接力流程。
只找阻擋文件成立的未知
先補會改變範圍、判斷或驗收結果的資訊,不急著寫文件。
我要製作「Postmortem · 事後回顧」。先不要產出文件。
請根據我的素材,找出會影響這份文件正確性或可執行性的未知事項,一次最多問 5 題。
每題請包含:
1. 問題
2. 為什麼現在必須知道
3. 它會影響哪個章節或決定
已經回答的事不要重問;可以延後的事標成「待決策」;不要替我猜答案。
本文件的核心章節:Executive Summary、Root Cause(5 Whys)、What Went Well / Wrong、Action Items(≤ 3 條)、Decision Log(key 1-2 條)、Confidence & Sources & TODO複製後,請在標示位置貼上自己的素材。
Review · 自己驗收
文件存在,不代表下一個角色真的能使用
逐條檢查 Agent 的輸出。人類負責需求、限制與驗收,也必須能說明重要結論從哪裡來。
帶著這份文件,繼續到「Observability Spec · 可觀測規格」
下一張卡會接住新的決策問題;不用一次把整條 SDLC 全做完。
