用途:追查已经发生的缺陷或事故,按触发→传播→检测→修复的顺序重建全过程,并留下无指责、带证据引用的事后分析。事故仍在发生时不属于本技能范围,应先处理现场。
主要能力:从 git log/git blame、CI 运行、日志、issue 与 PR 讨论、告警历史等记录重建带时间戳的时间线;用 5-Whys 链追根因,至少深入三层,停在系统性问题(缺失防护、缺少测试、流程或设计缺口)而非个人;按模板生成事后分析,含 Summary、Impact、Timeline、Root cause、Contributing factors、Fix、Prevention、Links;用随附脚本做结构检查并修复,直到输出 POSTMORTEM_LINT: PASS。
使用方式:先解析本技能的基础目录 SKILL_DIR,例如 SKILL_DIR="<this skill's base directory>" 或用 SKILL_DIR 命令查找。命令默认以 python3 编写,需 3.10 及以上;若设置了 $SKILL_PYTHON 则使用它,否则在 python3、python、py -3 中选择第一个满足 <interpreter> -c 'import sys; sys.exit(sys.version_info < (3, 10))' 退出码为 0 的解释器,并在所有命令中替换 python3。运行检查:python3 "$SKILL_DIR/assets/postmortem_lint.py" <file>。将文档写为 <subject>/postmortem.md(概念类型 Postmortem),放入 feynman-walkthrough 维护的知识包(如 docs/knowledge/),从该主题 index.md 链接,向 log.md 追加带日期条目,并重新固定来源指纹(可用 feynman-walkthrough/assets/okf.py pin,或按包内既有布局手工处理)。
适用场景:已结束的缺陷与事故复盘;需要可审计、可追踪到文件行、提交 sha、CI 运行或日志时间戳的记录;需要区分证据与推断(推断必须标 (inference));需要把预防项写成带负责人和完成检查的勾选项。
限制:不用于实时调试和值班分诊;理解健壮系统用 feynman-walkthrough;核对代码库主张用 base-in-reality。证据缺失时只能标注推断,不能用 evidence: none、n/a、TBD 或未填占位符充当证据。报告与说明建议以约 80% ASD-STE100 简化技术英语撰写,短句、常见词、主动语态、每步一个动作。会话重开时可检查知识包新鲜度,复发同类缺陷时先读旧的 Prevention 勾选项;代码变动后引用旧 postmortem 的 file:line 前应提示并刷新;同一主题的新复盘应追加为新概念并交叉链接,不覆盖旧文。