agentleFS
bouobbouob/sysadmin-skills/skills/postmortem/SKILL.md

postmortem

Skill2 starsChanged 6 months agoMITView on GitHub

Use this skill when the user wants help writing up a resolved production incident, outage, or failure. This is the go-to skill for any request that involves turning "something broke and we fixed it" into a written document — whether the user calls it a postmortem, post-incident review, post-incident analysis, PIR, incident retrospective, blameless review, no-blame writeup, lessons learned, or just describes what broke (deploy, database, auth, payment, storage, backup, replication, service outage) along with details like severity, duration, users affected, or rollback, and asks for help documenting it. Also use when the user''s goal is team learning or capturing details before they''re forgotten from a past incident. Output is a blameless document with timeline, contributing factors, what went well, and action items. Do not use for active/ongoing incidents, sprint or agile retrospectives, code reviews, general project retros, problem records for recurring issues, change requests, or meeting agendas.

44 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use hypothesis-driven-debugging, status-report and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • Sturla22Skill

    hypothesis-driven-debugging

    Debug by ranking concrete hypotheses and running discriminating checks. Use when a bug is hard to localize, many plausible failure points exist, logs are noisy or misleading, a symptom appears intermittently, or trial-and-error edits haven't worked.

    Also in 3 projects that use this

  • AnthropicSkill

    status-report

    Generate a status report with KPIs, risks, and action items. Use when writing a weekly or monthly update for leadership, summarizing project health with green/yellow/red status, surfacing risks and decisions that need stakeholder attention, or turning a pile of project tracker activity into a readable narrative.

    Also in 3 projects that use this

  • seongjaeryuSkill

    organize

    Organize knowledge into Sets

    Also in 3 projects that use this

  • SaluteYBSkill

    skill-eval

    Evaluate, tune, and regression-check AgentSkills. Use when creating a new skill or improving an existing one and you need structured should-trigger, should-not-trigger, boundary-case, and execution-quality examples. Also use when auditing overlapping skills and sharpening trigger descriptions before release.

    Also in 3 projects that use this

  • neurofooSkill

    premortem

    Pre-mortem analysis that imagines a plan has failed, then works backward to identify causes and preventions. Use before launches, major decisions, or risky initiatives to surface hidden risks.

    Also in 3 projects that use this

  • AnthropicSkill

    incident-response

    Run an incident response workflow — triage, communicate, and write postmortem. Trigger with "we have an incident", "production is down", an alert that needs severity assessment, a status update mid-incident, or when writing a blameless postmortem after resolution.

    Also in 4 projects that use this

The file

We split this skill into the rules it gives an agent

9 rules. 0 are common, 7 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 40 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Default output directory: ./postmortems/.

    line 45
  2. Distinctive:

    All postmortem documents are written in English.

    line 47
  3. Distinctive:

    Before starting the postmortem, confirm the incident is fully resolved.

    line 67
  4. Very specific:

    If an incident report exists (from /incident skill), read it for the timeline, classification, and resolution details.

    line 69
  5. Distinctive:

    Use role labels (e.g., "On-call engineer", "Deployment automation") rather than individual names where possible.

    line 90
  6. Distinctive:

    MUST follow this exact structure:

    line 123
  7. Distinctive:

    Check that each action item is actionable and owned

    line 186
  8. Distinctive:

    After publishing, share with the team — transparency is a core principle of blameless culture

    line 188
  9. Distinctive:

    Do not start the postmortem while the incident is still active — active incidents need resolution focus, not learning focus

    line 194

“Common” is measured: kept by at least 6 in 10 of the 40 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Blameless Postmortem Workflow

Structured post-incident learning following Google SRE blameless postmortem culture. Produces a postmortem document that focuses on systemic contributing factors and actionable improvements — not individual blame.

Related Skills (auto-loaded)

  • itil — reads references/sre-integration.md for blameless culture principles and error budget context
  • done-ops — confirmation that the incident is fully resolved before starting the postmortem

Blameless Culture — Why It Matters

Traditional post-incident reviews can become blame-focused, which creates incentives to hide mistakes. Blameless postmortems assume:

Everyone involved was acting in good faith with the information and tools available to them at the time.

The goal is to find what made the failure possible at the system level — and fix those things. People don't fail; systems create conditions where failures become likely.

For full blameless culture guidance, read references/blameless-templates.md.


Output

File: {OUTPUT_DIR}/postmortem-{YYYY-MM-DD}-{slug}.md

  • slug: kebab-case summary of the incident, e.g. payment-api-timeout, auth-service-outage
  • Link to the incident report if one exists from the /incident skill

Default output directory: ./postmortems/. If a docs/postmortems/ directory exists, use that instead.

All postmortem documents are written in English. Preview for the user in their preferred language before writing.


When to Use Each Review Type

SituationUse
SEV-1 or SEV-2 incident, regardless of root cause/postmortem (mandatory)
SEV-3 with complex contributing factors/postmortem (recommended)
Root cause unknown, likely to recur/problem (for technical tracking) + /postmortem (for learning)
Formal compliance/regulatory PIR requiredTraditional ITIL PIR (can run alongside /postmortem)
Sprint retrospectiveUse team's agile retro format — not this skill

Workflow

Step 1: Confirm Incident is Resolved

Before starting the postmortem, confirm the incident is fully resolved. If not, stop — do not start the postmortem while the incident is still active. Ask the user to confirm.

If an incident report exists (from /incident skill), read it for the timeline, classification, and resolution details.

Step 2: Gather Facts

Collect the following (use AskUserQuestion for missing items):

FieldRequiredExample
Incident summaryYes"Payment API returned 500s for 23 minutes affecting checkout"
When it started and endedYes"09:47 – 10:10 UTC"
Detection methodYes"Customer complaint, then monitoring alert at 09:52"
ImpactYes"~2,400 failed transactions, 12% of users during the window"
What was done to fix itYes"Rolled back deploy v2.1.4 to v2.1.3"
Who was involvedNoRoles only, not names in the document

Important: Record facts, not interpretations. "The deploy pipeline did not run smoke tests" — not "the team skipped testing."

Step 3: Build the Timeline

Construct a neutral, fact-based timeline. Each entry states what happened, not who did what wrong.

Use role labels (e.g., "On-call engineer", "Deployment automation") rather than individual names where possible. Names are acceptable but should be used only to attribute observations, not to assign fault.

| Time (UTC) | Event |
|---|---|
| 09:47      | Deploy v2.1.4 completed via CI/CD pipeline |
| 09:52      | Monitoring alert: payment API error rate > 5% |
| 09:55      | On-call acknowledged alert, began investigation |
| 10:03      | Root cause identified: breaking DB schema change in v2.1.4 |
| 10:07      | Rollback initiated |
| 10:10      | Error rate returned to baseline, incident resolved |

Step 4: Contributing Factors

Identify what made this failure possible. This is not "root cause" — it is a multi-factor analysis. Multiple factors contributed; removing any single one might have prevented the incident.

Format each factor as a system condition, not a personal action:

Contributing factors:
- The CI/CD pipeline did not include an integration test for schema migrations
- The staging environment schema was out of sync with production at the time of the deploy
- The deploy monitoring threshold for error rate was set to 5% — lower than the actual impact threshold for user-facing failures
- No automatic rollback was configured for deploy error spikes

Avoid: "Alice didn't test", "Bob forgot", "the team was careless"

For factor analysis techniques, read references/blameless-templates.md.

Step 5: Create the Postmortem Document

MUST follow this exact structure:

# Postmortem: {INCIDENT TITLE}

| Field | Value |
|---|---|
| Date | {YYYY-MM-DD} |
| Duration | {HH:MM} – {HH:MM} ({TZ}) — {total minutes} |
| Severity | SEV-{1/2/3} |
| Incident ID | {INC-ID or "N/A"} |
| Services Affected | {List} |
| User Impact | {Estimated users / transactions affected} |
| Status | Draft / Published |

## Summary

{2–3 sentence summary: what happened, for how long, what was the impact. Written for an audience unfamiliar with the incident.}

## Timeline

| Time (UTC) | Event |
|---|---|
| {HH:MM} | {Neutral event description} |

## Contributing Factors

{Bulleted list of system/process conditions that made this failure possible. No blame language.}

## What Went Well

{Things that worked as intended and helped limit impact or speed recovery. Be genuine — this is not a formality.}

## What Could Be Improved

{Areas where systems, processes, or tools could have detected, prevented, or limited the incident.}

## Action Items

| Action | Owner (Role) | Due Date | Status |
|---|---|---|---|
| {Specific, measurable action} | {Role title} | {YYYY-MM-DD} | Open |

## Appendix

{Optional: relevant logs, screenshots, graphs, or additional technical detail for reference.}

Step 6: Action Items

Action items are the most important output of a postmortem. Each one must be:

  • Specific: "Add integration test for DB schema migrations to CI pipeline" — not "improve testing"
  • Measurable: the outcome must be verifiable (test exists, threshold changed, runbook updated)
  • Owned: assign to a role or team, not an individual by name
  • Time-bounded: a realistic due date
  • Tracked: link to an issue tracker ticket where possible

For action item patterns and prioritization guidance, read references/action-item-patterns.md.

Step 7: Review and Publish

  1. Review the draft with the user — does the language remain blameless throughout?
  2. Check that each action item is actionable and owned
  3. Present for user confirmation before writing to file
  4. After publishing, share with the team — transparency is a core principle of blameless culture

Gotchas

  • Do not start the postmortem while the incident is still active — active incidents need resolution focus, not learning focus
  • "What went well" is not filler — genuine acknowledgment of what worked builds trust and reinforces good practices
  • Action items without owners and due dates will not get done — every item needs both
  • The postmortem is not a punishment document — if it reads like a trial transcript, rewrite it
  • For recurring incidents, the postmortem action items should link to a Problem record (/problem) for long-term tracking
  • Postmortems should be published internally — the learning only compounds if others can read and contribute
  • Senior leaders should not be identified as the "cause" — if a leader's decision contributed, frame it as a process gap (e.g., "the approval process did not surface the risk before the decision")

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.