Postmortem

August 18, 2026 · View on GitHub

What it does

Writes a backward-looking failure record — what broke, the mechanism, why every safety net missed it, and the concrete guardrails added so the same class of bug fails loudly next time.

The defining constraint: a postmortem is retrospective and failure-specific. It is not an incident log, not a blame report, and not a decision record.

When to reach for it

  • Invocation mode. Model-invoked: after a hard incident or regression, or when deciding whether a failure retrospection is owed.
  • Trigger boundary. Use it when a failure needs a durable lesson. For a forward-looking design decision (and its alternatives), use decision-records instead — the two complement each other.

When one is owed

Write one when a bug is subtle (non-obvious mechanism), systemic (the reason it escaped every safety net is structural), and costly to rediscover (it cost real debugging time and would again). A trivial fix with an obvious cause does not earn one.

Structure

Open with an executive summary a busy reader absorbs in thirty seconds — what broke, root cause in plain terms, why it escaped, durable lesson. Then: Summary → Timeline → Root cause → Guardrails. The interesting part is why the process let it through, not the one-line fix.

Common questions

Is this an ADR? No. A postmortem records a failure that already happened; a decision record records a choice you are making now. If the postmortem motivates a future choice, record that separately and cross-link.

Does every bug need one? No. Only subtle, systemic, costly-to-rediscover failures. The rest get a fix, not a postmortem.

It's working if

  • It opens with an executive summary absorbable in thirty seconds.
  • Root cause states the mechanism, not the nearest symptom.
  • Guardrails are concrete and each links to the artifact that enforces it.
  • It is retrospective, not an incident log or a decision record.

Where it fits

The retrospective half of the process category, complementing decision-records (the forward-looking half). Its debugging counterpart is systematic debugging (reproduce → hypothesize → locate); this skill captures the durable lesson after the fact.