Incident Postmortem Skill

Write a structured incident postmortem or post-incident review.

Incident Postmortem Skill — The Skill Playground: pick the Executive Update skill, fill in a few notes, hit run, and watch a structured executive… (from the mohitagw15856/pm-claude-skills README)

From the mohitagw15856/pm-claude-skills README — shows the whole collection, not only this skill. · view on GitHub

How to use it

Claude Code
  1. Run the line below. It pulls the whole folder into ~/.claude/skills/incident-postmortem.
  2. Describe your job in plain words. Claude Code follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit mohitagw15856/pm-claude-skills/skills/incident-postmortem#main ~/.claude/skills/incident-postmortem

For one project only, change the path to .claude/skills/incident-postmortem.

Claude (web or desktop app)
  1. On this page open ⋯ → Download .md.
  2. Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
  3. Pick the file and Save. Claude shows the name and description and runs a security scan.
  4. Check the skill is switched on.
  5. Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
  1. ChatGPT: make a Project and paste it into Instructions.
  2. Neither? Paste it at the top of a new chat — it works for that chat.
Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Source of Incident Postmortem Skill

Show the full text236 lines
namedescription
incident-postmortemWrite a structured incident postmortem or post-incident review. Use when asked to write a postmortem, incident report, P1/P2 review, outage report, or RCA (root cause analysis). Produces a blameless postmortem with timeline, root cause, contributing factors, impact summary, and action items.

Incident Postmortem Skill

This skill produces a complete, blameless incident postmortem document following industry-standard format. Output enforces blameless framing throughout — system gaps over individual failures — and drives toward specific, closeable action items rather than vague process commitments.

Proposes Actions

The action items don't have to stay on the page: hand them to action-runner, which previews them (dry-run, risk-rated), runs only what you approve via the connected action MCP, and records what was done back to the brain. Typical: file a follow-up issue per action item (🟡), assigned to its owner with a due date. This skill proposes; action-runner gates and runs — never silently.

Where this sits — turning an incident into fixes

Third in the incident-response spine: /slo-error-budget (frame) → /debugging-log-analyser → incident-postmortem → /oncall-runbook. It receives the root-cause diagnosis from /debugging-log-analyser (read it rather than re-diagnosing) and hands /oncall-runbook the contributing factors and prioritised action items — and the error budget from /slo-error-budget decides how urgent those actions are. Blameless, root cause vs contributing factors, and action item are defined once in docs/craft/incident-response.md; blameless is the load-bearing rule.

The loop

A postmortem fails the moment it assigns blame — the honest data dries up and every future incident is under-reported. Phase 1 sets that frame; everything depends on it.

  1. Establish blameless framing first. State up front that this examines the system that let a competent person make the move, never the person. This isn't politeness — it's the precondition for the truthful timeline the rest of the skill needs. Done when: the framing is explicit and no sentence in the document blames an individual; failures are attributed to system gaps.
  2. Build the timeline from evidence. Reconstruct start → detection → mitigation → resolution with real timestamps (from the diagnosis and logs, not memory). Detection, mitigation, and resolution are distinct events — track each. Done when: the timeline has real timestamps and separates detection/mitigation/ resolution, and the impact is quantified (users, duration, scope).
  3. Find the root cause AND the contributing factors. The root cause is one thing; the contributing factors are what let it reach users and persist (the missing alert, the skipped canary, the unclear runbook). A postmortem with a root cause and no contributing factors hasn't looked hard enough. Done when: at least the load-bearing contributing factors are named, each pointing at a system gap that's fixable.
  4. Drive to owned, dated action items — governed by the budget. Convert factors into specific action items, each with an owner and a date; vague "improve monitoring" items decay. Prioritise them against the error budget (spent → now; healthy → soon). Done when: every action item has an owner and a date, and /oncall-runbook could turn the detection/mitigation learnings into an entry without re-analysing the incident.

Required Inputs

Ask the user for these if not provided:

  • Incident title / ID
  • Severity (P1 / P2 / P3 or SEV1 / SEV2 / SEV3)
  • Date and duration of the incident
  • What happened (rough notes are fine — the skill will structure them)
  • Services or systems affected
  • Customer impact (how many users, what was degraded)
  • How it was detected
  • How it was resolved
  • Initial thoughts on root cause
  • Action items already identified (optional)
  • Responders (who was on-call or responded — names or roles; used for the timeline, not for blame)
  • Customer or external communications sent (optional — any status page updates, emails, or support messages with timestamps)

Reads from / Writes to the Brain

If a professional-brain (brain/) exists, use it before asking:

  • Read first: the affected system's entities/ file and any related prior decisions/ or past incidents (recurring root causes are the most important thing to surface).
  • Write after: log the action items and decisions to decisions/, and the root-cause learning to knowledge/ — tag a measured cause [data] and a suspected one [hunch], never the reverse.

Deeper Materials

  • references/root-cause-digging.md — five-whys done properly (stop at a changeable system property, branch into cause/detection/response chains), a contributing-factor taxonomy to sweep, and blame-shaped → systemic language rewrites. Use it while writing the Root Cause section and to reframe any blameful input notes.
  • templates/review-meeting-agenda.md — a 45-minute, document-first agenda for the postmortem review meeting, with ground rules and an action-item quality gate. Offer it alongside the finished postmortem.

Output Format


Incident Postmortem: [Incident Title]

Incident ID: [ID] Severity: [P1/P2/P3] Date: [Date] Duration: [Start time → Resolution time — total duration] Status: [Resolved / Monitoring / Ongoing] Author: [Leave blank for user to fill] Last updated: [Date]


Executive Summary

[3–5 sentences. Describe what happened, who was affected, and what was done to resolve it. Written for a non-technical stakeholder. No jargon. No blame.]


Impact

Dimension Details
Users affected [Number or percentage]
Services degraded [List affected services]
Business impact [Revenue, SLA breach, support tickets, etc. if known]
Duration [Total time from first detection to full resolution]

Timeline

List events in chronological order. Each entry: [HH:MM UTC] — [What happened. Who did what. What changed.]

Rules for timeline entries:

  • Use passive or system-focused language — avoid "X made a mistake"
  • Include: first symptom, detection, escalation, hypothesis tested, fix applied, confirmation of resolution
  • Note time between key events (e.g. "22 minutes between detection and escalation")

Timeline, drawn — also render the incident timeline as a Mermaid Gantt so the gaps (e.g. detection → escalation) are visible at a glance (it renders live in the playground and exports as PNG). Use the incident phases as bars; keep it blameless and system-focused:

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

Root Cause

Primary root cause: [One clear sentence. Technical but plain. "A misconfigured deployment config caused..."]

Contributing factors:

  • [Factor 1 — e.g. lack of canary deployment meant change hit 100% of traffic immediately]
  • [Factor 2 — e.g. alert threshold was set too high to catch the initial degradation]
  • [Factor 3 — add as many as are relevant]

Why did our existing safeguards not prevent this? [Honest paragraph explaining why monitoring, tests, or processes didn't catch this earlier. This is where blameless analysis matters most — focus on system gaps, not individual failures.]


Detection

  • How was it first detected? [Customer report / automated alert / internal monitoring / manual observation]
  • Time from incident start to detection: [X minutes]
  • Should we have detected this faster? [Yes / No — and why]

Resolution

What fixed it? [Clear description of the actual fix — one paragraph] Why did this work? [Brief technical explanation] Was there a temporary mitigation before full resolution? [Yes/No — describe if yes]


Action Items

# Action Owner Due Date Priority
1 [Specific, testable action] [Team or person] [Date] P1/P2/P3

Rules for action items:

  • Each action must be specific enough to close as "done" or "not done" — no vague items like "improve monitoring"
  • Distinguish between: Prevent recurrence (fix the root cause), Improve detection (catch it faster next time), Improve response (resolve it faster next time)
  • Assign a real owner — not "team" or "TBD" if avoidable
  • Flag P1 actions as items that block the incident from being marked fully closed

What Went Well

[3–5 honest observations about the response. Include: fast collaboration, good runbooks used, effective escalation, clear communication. This section builds team confidence and reinforces good habits.]


Lessons Learned

[3–5 key insights from this incident that are worth sharing beyond this team. Write these as transferable lessons — e.g. "Our runbook for database failover didn't account for read-replica lag. All runbooks involving database failover should be reviewed."]


Communication Log

[Optional — list external communications sent: status page updates, customer emails, support responses. Include timestamps.]


Scoring Rubric (0–40)

Score any output of this skill before handing it over; 32+ is ship-quality.

Dimension 0 5 10
Blamelessness with truth Names-and-shames, or sanitizes so much the story vanishes Blameless wording but individual actions blurred Individuals' actions stated factually inside a systems framing — honest and safe at once
Root-cause depth Stops at the symptom or "human error" Names a system gap but only one "why" deep Root cause plus contributing factors explain why the system allowed it, not just what broke
Timeline forensic quality Sparse, unordered, or missing detection-to-resolution beats Complete but without timestamps or decision points Timestamped, includes detection lag, decision points, and dead ends actually explored
Action-item accountability Vague improvements, no owners Owners assigned but items unticketable or dateless Every item ticketable with owner and due date, mapped to a root cause or contributing factor

Quality Checks

  • Timeline has no blame-focused language
  • Root cause is specific (not "human error")
  • Root cause answers "why did this happen?" not just "what happened?" — it names a system or process gap, not a symptom
  • Contributing factors explain the systemic gaps
  • Every action item has an owner and due date
  • "What went well" section is genuine, not token
  • No action item contains vague language like "improve monitoring", "increase resilience", or "better testing" — each must name a specific change
  • Executive summary is readable by non-technical leadership

Anti-Patterns

  • Do not assign blame to individuals — postmortems must focus on system and process failures
  • Do not write action items with vague language like "improve monitoring" — each must name a specific, ownable change
  • Do not skip the contributing factors — root cause alone misses the systemic issues that enable incidents
  • Do not omit the detection timeline — how long it took to detect matters as much as how long it took to resolve
  • Do not treat the postmortem as closed until all action items have named owners and due dates

Usage Examples

  • "Write a postmortem for the [incident name] outage"
  • "Help me write a P1 incident report"
  • "Generate an RCA document for [service] going down on [date]"
  • "Draft a blameless postmortem from these notes: [paste notes]"
1---
2name: incident-postmortem
3description: "Write a structured incident postmortem or post-incident review. Use when asked to write a postmortem, incident report, P1/P2 review, outage report, or RCA (root cause analysis). Produces a blameless postmortem with timeline, root cause, contributing factors, impact summary, and action items."
4---
5 
6# Incident Postmortem Skill
7 
8This skill produces a complete, blameless incident postmortem document following industry-standard format. Output enforces blameless framing throughout — system gaps over individual failures — and drives toward specific, closeable action items rather than vague process commitments.
9 
10## Proposes Actions
11 
12The action items don't have to stay on the page: hand them to [`action-runner`](../action-runner/SKILL.md), which previews them (dry-run, risk-rated), runs only what you approve via the connected action MCP, and records what was done back to the brain. Typical: **file a follow-up issue per action item** (🟡), assigned to its owner with a due date. This skill proposes; action-runner gates and runs — never silently.
13 
14## Where this sits — turning an incident into fixes
15 
16Third in the incident-response spine: **`/slo-error-budget` (frame) →
17`/debugging-log-analyser` → `incident-postmortem` → `/oncall-runbook`**. It receives the
18**root-cause diagnosis** from `/debugging-log-analyser` (read it rather than
19re-diagnosing) and hands `/oncall-runbook` **the contributing factors and prioritised
20action items** — and the error budget from `/slo-error-budget` decides how urgent those
21actions are. *Blameless*, *root cause vs contributing factors*, and *action item* are
22defined once in [`docs/craft/incident-response.md`](../../docs/craft/incident-response.md);
23blameless is the load-bearing rule.
24 
25## The loop
26 
27A postmortem fails the moment it assigns blame — the honest data dries up and every
28future incident is under-reported. Phase 1 sets that frame; everything depends on it.
29 
301. **Establish blameless framing first.** State up front that this examines the *system*
31 that let a competent person make the move, never the person. This isn't politeness —
32 it's the precondition for the truthful timeline the rest of the skill needs.
33 **Done when:** the framing is explicit and no sentence in the document blames an
34 individual; failures are attributed to system gaps.
352. **Build the timeline from evidence.** Reconstruct start → detection → mitigation →
36 resolution with real timestamps (from the diagnosis and logs, not memory). Detection,
37 mitigation, and resolution are distinct events — track each.
38 **Done when:** the timeline has real timestamps and separates detection/mitigation/
39 resolution, and the impact is quantified (users, duration, scope).
403. **Find the root cause AND the contributing factors.** The root cause is one thing;
41 the contributing factors are what let it reach users and persist (the missing alert,
42 the skipped canary, the unclear runbook). A postmortem with a root cause and no
43 contributing factors hasn't looked hard enough.
44 **Done when:** at least the load-bearing contributing factors are named, each pointing
45 at a system gap that's fixable.
464. **Drive to owned, dated action items — governed by the budget.** Convert factors into
47 specific action items, each with an owner and a date; vague "improve monitoring"
48 items decay. Prioritise them against the error budget (spent → now; healthy → soon).
49 **Done when:** every action item has an owner and a date, and `/oncall-runbook` could
50 turn the detection/mitigation learnings into an entry without re-analysing the incident.
51 
52## Required Inputs
53 
54Ask the user for these if not provided:
55- **Incident title / ID**
56- **Severity** (P1 / P2 / P3 or SEV1 / SEV2 / SEV3)
57- **Date and duration** of the incident
58- **What happened** (rough notes are fine — the skill will structure them)
59- **Services or systems affected**
60- **Customer impact** (how many users, what was degraded)
61- **How it was detected**
62- **How it was resolved**
63- **Initial thoughts on root cause**
64- **Action items already identified** (optional)
65- **Responders** (who was on-call or responded — names or roles; used for the timeline, not for blame)
66- **Customer or external communications sent** (optional — any status page updates, emails, or support messages with timestamps)
67 
68## Reads from / Writes to the Brain
69 
70If a [`professional-brain`](../professional-brain/SKILL.md) (`brain/`) exists, use it before asking:
71 
72- **Read first:** the affected system's `entities/` file and any related prior `decisions/` or past incidents (recurring root causes are the most important thing to surface).
73- **Write after:** log the action items and decisions to `decisions/`, and the root-cause learning to `knowledge/` — tag a measured cause `[data]` and a suspected one `[hunch]`, never the reverse.
74 
75## Deeper Materials
76 
77- **`references/root-cause-digging.md`** — five-whys done properly (stop at a changeable system property, branch into cause/detection/response chains), a contributing-factor taxonomy to sweep, and blame-shaped → systemic language rewrites. Use it while writing the Root Cause section and to reframe any blameful input notes.
78- **`templates/review-meeting-agenda.md`** — a 45-minute, document-first agenda for the postmortem review meeting, with ground rules and an action-item quality gate. Offer it alongside the finished postmortem.
79 
80## Output Format
81 
82---
83 
84# Incident Postmortem: [Incident Title]
85 
86**Incident ID:** [ID]
87**Severity:** [P1/P2/P3]
88**Date:** [Date]
89**Duration:** [Start time → Resolution time — total duration]
90**Status:** [Resolved / Monitoring / Ongoing]
91**Author:** [Leave blank for user to fill]
92**Last updated:** [Date]
93 
94---
95 
96## Executive Summary
97 
98[3–5 sentences. Describe what happened, who was affected, and what was done to resolve it. Written for a non-technical stakeholder. No jargon. No blame.]
99 
100---
101 
102## Impact
103 
104| Dimension | Details |
105|---|---|
106| **Users affected** | [Number or percentage] |
107| **Services degraded** | [List affected services] |
108| **Business impact** | [Revenue, SLA breach, support tickets, etc. if known] |
109| **Duration** | [Total time from first detection to full resolution] |
110 
111---
112 
113## Timeline
114 
115List events in chronological order. Each entry: `[HH:MM UTC] — [What happened. Who did what. What changed.]`
116 
117Rules for timeline entries:
118- Use passive or system-focused language — avoid "X made a mistake"
119- Include: first symptom, detection, escalation, hypothesis tested, fix applied, confirmation of resolution
120- Note time between key events (e.g. "22 minutes between detection and escalation")
121 
122**Timeline, drawn** — also render the incident timeline as a Mermaid Gantt so the gaps (e.g. detection → escalation) are visible at a glance (it renders live in the playground and exports as PNG). Use the incident phases as bars; keep it blameless and system-focused:
123 
124```mermaid
125gantt
126 title Incident timeline (UTC)
127 dateFormat HH:mm
128 axisFormat %H:%M
129 section Phases
130 Undetected impact :22:00, 18m
131 Detection :milestone, 22:18, 0m
132 Investigation :22:18, 22m
133 Mitigation :22:40, 15m
134 Resolved :milestone, 22:55, 0m
135```
136 
137---
138 
139## Root Cause
140 
141**Primary root cause:** [One clear sentence. Technical but plain. "A misconfigured deployment config caused..."]
142 
143**Contributing factors:**
144- [Factor 1 — e.g. lack of canary deployment meant change hit 100% of traffic immediately]
145- [Factor 2 — e.g. alert threshold was set too high to catch the initial degradation]
146- [Factor 3 — add as many as are relevant]
147 
148**Why did our existing safeguards not prevent this?**
149[Honest paragraph explaining why monitoring, tests, or processes didn't catch this earlier. This is where blameless analysis matters most — focus on system gaps, not individual failures.]
150 
151---
152 
153## Detection
154 
155- **How was it first detected?** [Customer report / automated alert / internal monitoring / manual observation]
156- **Time from incident start to detection:** [X minutes]
157- **Should we have detected this faster?** [Yes / No — and why]
158 
159---
160 
161## Resolution
162 
163**What fixed it?** [Clear description of the actual fix — one paragraph]
164**Why did this work?** [Brief technical explanation]
165**Was there a temporary mitigation before full resolution?** [Yes/No — describe if yes]
166 
167---
168 
169## Action Items
170 
171| # | Action | Owner | Due Date | Priority |
172|---|---|---|---|---|
173| 1 | [Specific, testable action] | [Team or person] | [Date] | P1/P2/P3 |
174 
175Rules for action items:
176- Each action must be specific enough to close as "done" or "not done" — no vague items like "improve monitoring"
177- Distinguish between: **Prevent recurrence** (fix the root cause), **Improve detection** (catch it faster next time), **Improve response** (resolve it faster next time)
178- Assign a real owner — not "team" or "TBD" if avoidable
179- Flag P1 actions as items that block the incident from being marked fully closed
180 
181---
182 
183## What Went Well
184 
185[3–5 honest observations about the response. Include: fast collaboration, good runbooks used, effective escalation, clear communication. This section builds team confidence and reinforces good habits.]
186 
187---
188 
189## Lessons Learned
190 
191[3–5 key insights from this incident that are worth sharing beyond this team. Write these as transferable lessons — e.g. "Our runbook for database failover didn't account for read-replica lag. All runbooks involving database failover should be reviewed."]
192 
193---
194 
195## Communication Log
196 
197[Optional — list external communications sent: status page updates, customer emails, support responses. Include timestamps.]
198 
199---
200 
201## Scoring Rubric (0–40)
202 
203Score any output of this skill before handing it over; 32+ is ship-quality.
204 
205| Dimension | 0 | 5 | 10 |
206|---|---|---|---|
207| Blamelessness with truth | Names-and-shames, or sanitizes so much the story vanishes | Blameless wording but individual actions blurred | Individuals' actions stated factually inside a systems framing — honest and safe at once |
208| Root-cause depth | Stops at the symptom or "human error" | Names a system gap but only one "why" deep | Root cause plus contributing factors explain why the system allowed it, not just what broke |
209| Timeline forensic quality | Sparse, unordered, or missing detection-to-resolution beats | Complete but without timestamps or decision points | Timestamped, includes detection lag, decision points, and dead ends actually explored |
210| Action-item accountability | Vague improvements, no owners | Owners assigned but items unticketable or dateless | Every item ticketable with owner and due date, mapped to a root cause or contributing factor |
211 
212## Quality Checks
213 
214- [ ] Timeline has no blame-focused language
215- [ ] Root cause is specific (not "human error")
216- [ ] Root cause answers "why did this happen?" not just "what happened?" — it names a system or process gap, not a symptom
217- [ ] Contributing factors explain the systemic gaps
218- [ ] Every action item has an owner and due date
219- [ ] "What went well" section is genuine, not token
220- [ ] No action item contains vague language like "improve monitoring", "increase resilience", or "better testing" — each must name a specific change
221- [ ] Executive summary is readable by non-technical leadership
222 
223## Anti-Patterns
224 
225- [ ] Do not assign blame to individuals — postmortems must focus on system and process failures
226- [ ] Do not write action items with vague language like "improve monitoring" — each must name a specific, ownable change
227- [ ] Do not skip the contributing factors — root cause alone misses the systemic issues that enable incidents
228- [ ] Do not omit the detection timeline — how long it took to detect matters as much as how long it took to resolve
229- [ ] Do not treat the postmortem as closed until all action items have named owners and due dates
230 
231## Usage Examples
232- "Write a postmortem for the [incident name] outage"
233- "Help me write a P1 incident report"
234- "Generate an RCA document for [service] going down on [date]"
235- "Draft a blameless postmortem from these notes: [paste notes]"
236 

Discussion

Alternatives

Also in DebuggingSee all 533 in Development →