Incidents / REFERENCE BLUEPRINT

Postmortem Drafter

The best postmortems are written while memory is fresh — which is exactly when nobody has energy to write them. This loop drafts the document within minutes of resolution, from the actual timeline, and leaves the judgment calls to the humans who were there.

DESIGN INTENT

This is documentation for a proposed implementation. No automation runs from this page. Commands, configuration, output and timing are illustrative; package availability and measured performance have not been verified here.

THE LOOP / 5 STEPS

From the first signal to the final action.

  1. 01

    TRIGGER

    PagerDuty: incident → resolved

  2. 02

    GATHER

    war-room Slack thread, alert timeline, deploy log ±2h

  3. 03

    REASON · AI

    reconstruct blameless timeline, draft impact & contributing factors

  4. 04

    FLAG

    uncertain claims marked [VERIFY] — never stated as fact

  5. 05

    ACT

    draft doc in /postmortems + link to incident channel

01 / USAGE

How the intended workflow fits together

  1. 01

    Fires on PagerDuty resolution. It reads the war-room thread, the alert timeline, and every deploy in the ±2h window.

  2. 02

    The draft follows your blameless template: timeline, impact, contributing factors, action items — with names replaced by roles.

  3. 03

    Anything the AI can't verify from the record is tagged [VERIFY] inline. The incident commander reviews, edits, and publishes.

02 / CONFIGURATION

Read the configuration contract

Map your services to their war-room channels and deploy pipelines. The template is yours to edit.

Illustrative configuration. Adapt only after verifying the implementation, schema and service permissions.

# drafter.yaml
trigger:
  pagerduty: incident.resolved
gather:
  slack_channel: from_incident   # war-room
  deploys: github-actions ±2h
  metrics: [error_rate, p99]
draft:
  template: blameless-v2.md
  unverified_marker: '[VERIFY]'
act:
  repo: acme/postmortems
  notify: incident_channel

03 / EVIDENCE

What an output could look like

This authored example describes the intended result format. It is not evidence that a live run occurred.

$ pm-drafter last
[Jul 05 23:12] INC-4471 resolved (SEV-2, 34m)
  gathered: 212 slack msgs · 3 deploys · 2 alerts
  draft: postmortems/2026-07-05-checkout-latency.md
  flagged: 2 × [VERIFY]
  → posted to #inc-4471 for review

04 / IMPLEMENTATION REFERENCE

Review the setup sketch

The original command sketch is preserved for design context. It is not a verified installation recipe. Confirm that the package or repository exists and review its implementation before running anything.

Show illustrative setup commands
brew install supraj/tap/pm-drafter
pm-drafter init --pagerduty $PD_TOKEN --slack $SLACK_TOKEN