- Home
- Skills
- DevOps & Cloud
- incident-postmortem-generator
Incident Postmortem Generator
Turn a 3am outage into a postmortem in 10 minutes. Slack/PagerDuty ingest, 5-Whys, blameless framing, action items. SEV1/2/3.
Free
Works with the AI tools you already use
incident-postmortem-generator
Example session with this skill installed
I have a Slack export and PD incident 442. Generate a SEV2 postmortem focusing on the DB outage and export action items to Jira.
- Read your context and instructions
- Compiled the incident-postmortem-generator
Postmortem: DB Connection Timeout - 2026-06-20
Severity: SEV2
RCA: Connection pool exhaustion via stale sessions.
6 Action Items exported to Jira (Project: SRE).
Blameless check: Passed.
Connects securely to your tools. The creator never sees your data.
About this skill
Incident Postmortem Generator
You just survived a 4-hour outage. Everyone's exhausted. The PM wants a writeup by EOD. The CEO wants root cause. Legal wants a timeline. This skill takes your chaos and produces a blameless postmortem in 10 minutes.
What it does
Ingests raw incident data and produces a complete postmortem:
- Timeline reconstruction — merges PagerDuty alerts, Slack messages, deploy events, status updates
- Root cause analysis — 5-Whys + fault tree + contributing factors
- Impact quantification — users affected, $ lost, SLA breach
- Action items — owner-assigned, prioritized, with due dates
- Blameless framing — flags blame-y language and rewrites it
- SEV1/2/3 templates — different depth for different severity
- Blameless review — focus on systems, not individuals
When to use it
- A SEV1 just happened and you need a postmortem by EOD
- Your on-call team is burned out and skipping writeups
- Incident reviews drag on for 2 hours because the timeline is wrong
- Action items from past postmortems never get done (no owner)
- You're scaling your incident response process
- An auditor is asking "show me your postmortem process"
Why it's better than ad-hoc prompting
Most "write a postmortem" prompts give generic templates. This skill is different:
- Ingests your data — Slack export, PagerDuty timeline, deploy log
- Auto-reconstructs — doesn't make you re-type the timeline
- Blameless-aware — actively flags and rewrites blame language
- Action items with owners — not "we should..." but "@alice owns X by date Y"
- Severity-aware — SEV1 has 12 sections, SEV3 has 4
Architecture
┌─────────────────────────────────────────────────────────┐
│ Agent (Claude/Cursor) │
│ - Points at Slack export / PagerDuty log / timeline │
│ - Calls generator │
│ - Reviews for blame, action items │
└───────────────┬─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ skills/incident-postmortem-generator/ │
│ scripts/ │
│ ├── ingest_slack.py # Parse Slack export │
│ ├── ingest_pagerduty.py # Parse PD timeline │
│ ├── ingest_deploys.py # Parse deploy log │
│ ├── build_timeline.py # Merge all sources │
│ ├── generate.py # Render postmortem MD │
│ ├── check_blameless.py # Flag blame language │
│ └── action_tracker.py # Export to Linear/Jira │
│ references/ │
│ ├── blameless-guide.md # How to write blameless │
│ ├── 5-whys.md # RCA technique │
│ ├── fault-tree.md # RCA technique │
│ ├── sev-templates.md # SEV1/2/3 templates │
│ └── action-items-guide.md │
│ templates/ │
│ ├── sev1.md.tmpl │
│ ├── sev2.md.tmpl │
│ └── sev3.md.tmpl │
└─────────────────────────────────────────────────────────┘
Quick start
# 1. Install
pip install python-dateutil
# 2. Ingest from various sources
python scripts/ingest_slack.py --export slack-export-2026-06-20.json
python scripts/ingest_pagerduty.py --incident PD-12345
python scripts/ingest_deploys.py --log deploys.log
# 3. Merge into one timeline
python scripts/build_timeline.py --out timeline.json
# 4. Generate postmortem
python scripts/generate.py --timeline timeline.json --sev 1 --out postmortem-2026-06-20.md
# 5. Check for blame language
python scripts/check_blameless.py postmortem-2026-06-20.md
# 6. Export action items to Jira
python scripts/action_tracker.py postmortem-2026-06-20.md --tracker jira
Sample output (excerpt)
# Postmortem: API Gateway Outage — 2026-06-20
**Severity**: SEV1
**Duration**: 4h 12m (14:32 UTC → 18:44 UTC)
**Status**: Resolved
**Customer impact**: ~23,000 users, 1.2M failed requests, est. $14k revenue loss
**SLA**: 99.9% breached by 0.04% for the month
## Timeline (UTC)
| Time | Event | Source |
|------|-------|--------|
| 14:32 | @alice on-call paged: "5xx rate 8%" | PagerDuty |
| 14:35 | @alice acks, opens #inc-2026-06-20 | Slack |
| 14:41 | Identified: API gateway OOMKilled | Slack |
| 14:48 | @bob: "Scaled gateway from 4 to 8 pods" | Slack |
| 15:10 | 5xx back to 0.3%, but elevated | Slack |
| 15:30 | Root cause: memory leak in new auth middleware (deployed 14:28) | Slack |
| 15:45 | @bob: "Rolled back deploy auth-middleware v2.3.1 → v2.3.0" | Deploy log |
| 16:00 | 5xx back to 0.05% (normal) | Slack |
| 16:30 | @alice: "Monitoring for 2h before closing" | Slack |
| 18:44 | Incident closed | PagerDuty |
## Root cause
A memory leak was introduced in `auth-middleware` v2.3.1 (deployed 14:28 UTC).
The leak caused the API gateway pods to OOMKilled within 4 minutes of receiving
traffic, cycling faster than the load balancer could route around.
### 5 Whys
1. **Why did the API fail?** Pods were OOMKilled
2. **Why were pods OOMKilled?** Memory leak in auth-middleware
3. **Why was there a memory leak?** New code didn't release session cache
4. **Why didn't we catch it?** Load test didn't include 24h soak test
5. **Why didn't we have a 24h soak test?** Our CI pipeline only does 5min load tests
### Contributing factors
- No memory limits set on the new auth-middleware container
- Canary deploy was 5% — too small to detect a slow leak
- No automated rollback on memory growth rate
- The deployment was 4 minutes before the incident — no time to detect pre-pager
## Impact
- **Users affected**: ~23,000 (12% of daily active)
- **Failed requests**: 1.2M
- **Revenue lost**: ~$14,000 (subscription churn + transaction failures)
- **SLA breach**: 99.9% monthly → 99.86% (over 24h, partial month)
## Action items
| # | Action | Owner | Priority | Due | Status |
|---|--------|-------|----------|-----|--------|
| 1 | Add memory limit to all middleware containers | @bob | P0 | 2026-06-25 | Open |
| 2 | Add 24h soak test to CI pipeline | @carol | P0 | 2026-07-05 | Open |
| 3 | Increase canary deploy to 20% | @bob | P1 | 2026-07-10 | Open |
| 4 | Auto-rollback on memory growth > 20%/h | @dave | P1 | 2026-07-15 | Open |
| 5 | Add memory-leak detector to pre-commit hooks | @alice | P2 | 2026-07-30 | Open |
| 6 | Document postmortem process in runbook | @alice | P2 | 2026-08-01 | Open |
## What went well
- Fast ack time (3 min from page to incident channel)
- Quick identification of root cause
- Clean rollback, no data loss
## What went poorly
- Memory limit missing on new container
- Canary too small to detect slow leak
- No automated rollback on memory anomalies
Pricing
Single-purchase, lifetime access. $8.50.
Includes:
- 7 Python scripts (4 ingest + 1 generate + 1 check + 1 tracker)
- 5 reference docs (blameless, 5-whys, fault tree, SEV templates, actions)
- 3 SEV templates (SEV1/2/3)
- Slack/PagerDuty/Jira integration code
- Future updates for the same major version
Example usage
"We had a 4-hour SEV1 yesterday. Here's the Slack export and PagerDuty incident ID. Generate the postmortem."
The skill will:
- Parse Slack and PagerDuty data
- Reconstruct timeline
- Run 5-Whys + fault tree
- Generate postmortem with action items
- Flag any blame language
- Export action items to your tracker
Compatibility
Works with any agent that supports the SKILL.md standard and can execute Python: Claude Code, OpenClaw, Codex CLI, Cursor, Gemini CLI, Cline, Windsurf, Aider. Slack export: free. PagerDuty: API token. Jira/Linear: API token. Tested on Linux, macOS, Windows.
Tags
sre, incident-response, postmortem, devops, on-call, monitoring, reliability
How to install
Works the same in every agent - Claude, Cursor, Codex, Copilot and 20+ more.
- 1
Download the ZIP
Free skills download straight away. Paid skills unlock right after purchase.
- 2
Unzip into your skills folder
Every agent reads skills from one folder on your machine. Drop the unzipped folder in there.
- 3
Ask your agent to use it
Restart the agent if it was already running. It picks the skill up automatically - no config needed.
Skills folder by agent
Click the path to copy it. Create the folder if it does not exist yet.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill passes our trust checks below.
Security scanned
Passed our 8-point scan before listing
1 install
Downloaded by developers to date
Free forever
No account required to browse
Trust & safety
Security scanned
Verified clean 3 months ago
- Free to download with an account