executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
incident-postmortem撰寫結構化的故障覆盤或事後回顧。當被要求寫故障覆盤、故障報告、P1 / P2 回顧、宕機報告或根因分析(RCA)時使用。產出不指責個人的覆盤文件:時間線、根本原因、促成因素、影響摘要和行動項。專案或活動的覆盤請使用 cn-fupan。
Independent GitHub snapshot · Automated classification · Original documentation governs
incident-postmortem 的繁體中文翻譯,英文版本為規範版本。
這個技能按行業標準格式,產出一份完整、不指責個人的故障覆盤文件。產出始終堅持不指責的框架(關注系統缺口而不是個人失誤),並推動形成具體、可關閉的行動項,而不是含糊的流程承諾。
行動項不必只停留在紙面上:把它們交給 action-runner,它會先預覽(試執行、標註風險),只透過已連線的操作類 MCP 執行你批准的內容,並把做過的事記回大腦。典型做法:為每個行動項建一個跟進任務(🟡),分配給負責人並設截止日期。這個技能只提議;由 action-runner 把關並執行,絕不悄悄進行。
故障響應主線的第三步:/slo-error-budget(框定)→ /debugging-log-analyser → incident-postmortem → /oncall-runbook。它從 /debugging-log-analyser 接收根因診斷(讀它,而不是重新診斷),並把促成因素和按優先順序排列的行動項交給 /oncall-runbook;/slo-error-budget 的錯誤預算決定這些行動有多緊急。不指責、根本原因與促成因素和行動項統一定義在 docs/craft/incident-response.md;不指責是承重的規則。
覆盤一旦開始指責,就失敗了:真實的資料會枯竭,以後的每次故障都會被少報。第一階段確立這個框架;其餘一切都依賴它。
/oncall-runbook 無需重新分析故障就能把發現和緩解的經驗寫成條目。如未提供,請向使用者詢問:
如果存在 professional-brain(brain/),先用它再提問:
entities/ 檔案,以及相關的以往 decisions/ 或歷史故障(反覆出現的根本原因是最需要指出的)。decisions/,把根因經驗記入 knowledge/:測量得到的原因標為 [data],懷疑的原因標為 [hunch],絕不反過來。references/root-cause-digging.md:正確使用五個為什麼(停在一個可以改變的系統屬性上,分成原因、發現、響應三條鏈)、需要逐項排查的促成因素分類,以及把指責式語言改寫為系統性語言的示例。寫根本原因部分時使用,也用來改寫帶有指責的輸入筆記。templates/review-meeting-agenda.md:45 分鐘、以文件為先的覆盤評審會議程,附基本規則和行動項品質關卡。與完成的覆盤一起提供。故障編號: [編號] 嚴重級別: [P1/P2/P3] 日期: [日期] 持續時間: [開始時間 → 解決時間,總時長] 狀態: [已解決 / 觀察中 / 進行中] 作者: [留空由使用者填寫] 最後更新: [日期]
[3 到 5 句。描述發生了什麼、誰受到影響、做了什麼來解決。寫給非技術的干係人。不用術語。不指責。]
| 維度 | 詳情 |
|---|---|
| 受影響使用者 | [數量或百分比] |
| 降級的服務 | [列出受影響的服務] |
| 業務影響 | [收入、違反 SLA、客服工單等,如知道] |
| 持續時間 | [從首次發現到完全解決的總時間] |
按時間順序列出事件。每條:[HH:MM UTC]:[發生了什麼。誰做了什麼。什麼發生了變化。]
時間線條目的規則:
畫出來的時間線:同時用 Mermaid 甘特圖畫出故障時間線,讓間隔(例如發現 → 升級)一目瞭然(它在 Playground 中實時渲染,並可匯出為 PNG)。用故障階段作為條形;保持不指責、以系統為中心:
gantt
title Incident timeline (UTC)
dateFormat HH:mm
axisFormat %H:%M
section Phases
Undetected impact :22:00, 18m
Detection :milestone, 22:18, 0m
Investigation :22:18, 22m
Mitigation :22:40, 15m
Resolved :milestone, 22:55, 0m
主要根本原因: [一句清楚的話。技術性但通俗。"一個配置錯誤的部署配置導致了……"]
促成因素:
為什麼現有的防護沒能阻止它? [誠實的一段話,解釋為什麼監控、測試或流程沒有更早發現。這是不指責分析最重要的地方:關注系統缺口,而不是個人失誤。]
是什麼修復了它? [對實際修復的清楚描述,一段] 為什麼有效? [簡短的技術解釋] 完全解決之前有臨時緩解措施嗎? [是 / 否,如是請描述]
| # | 行動 | 負責人 | 截止日期 | 優先順序 |
|---|---|---|---|---|
| 1 | [具體、可驗證的行動] | [團隊或個人] | [日期] | P1/P2/P3 |
行動項的規則:
[關於響應的 3 到 5 條真誠觀察。包括:快速協作、用上了好的運維手冊、有效的升級、清楚的溝通。這一部分建立團隊信心,強化好習慣。]
[這次故障中值得分享給本團隊以外的 3 到 5 條關鍵洞察。寫成可遷移的經驗,例如"我們的資料庫故障切換手冊沒有考慮只讀副本延遲。所有涉及資料庫故障切換的手冊都應複查。"]
[可選:列出已發出的對外溝通:狀態頁更新、客戶郵件、客服回覆。附時間戳。]
交付前給這個技能的任何產出打分;32 分以上才算可以交付。
| 維度 | 0 | 5 | 10 |
|---|---|---|---|
| 不指責且真實 | 點名批評,或粉飾到故事消失 | 措辭不指責,但個人的行為被模糊了 | 在系統框架內如實寫出個人的行為:既誠實又安全 |
| 根因深度 | 停在症狀或"人為失誤" | 點出了系統缺口,但只問了一層"為什麼" | 根本原因加促成因素,解釋了系統為什麼允許它發生,而不只是什麼壞了 |
| 時間線的取證品質 | 稀疏、無序,或缺少從發現到解決的關鍵節點 | 完整但沒有時間戳或決策點 | 有時間戳,包括髮現延遲、決策點和實際排查過的死衚衕 |
| 行動項問責 | 含糊的改進,沒有負責人 | 分配了負責人,但事項無法建任務或沒有日期 | 每個事項都可以建任務,有負責人和截止日期,並對應到一個根本原因或促成因素 |