# Postmortem Maker

> Turn resolved-incident fragments into a traceable postmortem that separates fragment-cited facts from hypotheses, blocks publication while unknowns remain, and keeps the comms send behind a human gate.

- Skill: `runxhq/postmortem-maker` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add runxhq/postmortem-maker`
- Raw SKILL.md: https://api.skillmd.com/api/skills/runxhq/postmortem-maker/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: runxhq (https://skillmd.com/u/runxhq)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/runxhq/postmortem-maker

---


# Postmortem Maker

Produce a postmortem that never pretends unknowns are facts. The supplied
incident fragments are the only evidence; the drafting agent separates what
happened from what is suspected, and deterministic code verifies every claimed
fact against the fragments. Publication is a gated proposal, never an effect
of this skill.

## Procedure

1. Native `data.digest` binds the exact fragment set.
2. The drafting agent assembles a summary, an evidence-cited timeline, a root
   cause with a status of `known`, `suspected`, or `unknown`, open unknowns,
   and owned action items.
3. Deterministic enforcement checks every timeline entry and any non-unknown
   root cause: the cited fragment must exist and the quote must appear
   verbatim in that fragment's text. An invented citation refuses the whole
   run. Action items must carry an action and an owner.
4. The verdict separates completeness from honesty: a fully cited postmortem
   with a supported root cause and no open unknowns is `publishable` and
   carries a publish proposal gated on a human approver through `send-as`; a
   grounded but incomplete one seals `needs_more_evidence` and publishes
   nothing.

To build the fragment set from live systems, compose `web-fetch` or
`data-store` reads upstream; the digest binds whatever evidence was supplied.
`incident-commander` owns running the incident; this skill owns explaining it
afterward.

## Output

`postmortem` (`runx.postmortem.v1`) carries `decision` (`publishable`,
`needs_more_evidence`, `refused`), `summary`, the cited `timeline`,
`root_cause`, `unknowns`, `action_items`, the gated `publish_proposal` or
null, `validation`, and the fragments digest. `publish_performed` is always
false.

Inputs are `incident_ref` and `incident_fragments`.

## Agent task contracts

### `postmortem-maker-draft`

Read `incident_ref` and `incident_fragments` from step inputs. Return
`postmortem_draft` with `summary`, `timeline` entries (each `entry`,
`fragment_id`, `quote`), `root_cause` (`status`, and for known or suspected a
`statement`, `fragment_id`, and `quote`), `unknowns`, and `action_items`
(each `action`, `owner`). Quote fragments verbatim, mark anything the
fragments do not support as unknown rather than asserting it, and never
invent fragments, quotes, owners, or deadlines.

