Incident Postmortem
SkillCloud & infraAssembling a blameless postmortem grounded in systems of record: timeline reconstruction merging the incident tool's event log with correlated observability anomalies (Sentry error spikes, Datadog/Grafana metric anomalies, including precursor signal that predates formal detection) and deploy history from connected platform connectors, all normalized to one stated timezone; the root-cause versus contributing-factor distinction and the test for telling them apart; and how to label a root cause that is still only a hypothesis.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Incident Postmortem skill
What this skill tells your AI
The instructions your AI receives, as published by wyre-ai/msp-claude-plugins in msp-claude-plugins/devops-pack/skills/incident-postmortem/SKILL.md and read by ahel’s review.
Overview
A postmortem is a reconstruction exercise, not a summary of memory. The value of a blameless postmortem comes entirely from how well it's grounded in actual system records — timestamps from the incident tool, error spikes from the observability stack, and the deploy that shipped twenty minutes before things went wrong. A postmortem built from what the on-call engineer remembers is faster to write and far less useful: it misses precursor signals, gets timestamps wrong across timezones, and tends to converge on whatever explanation feels intuitive rather than what the evidence actually shows.
This skill assembles that reconstruction from the systems of record, and structures the analysis so contributing factors don't get collapsed into a single "root cause" that oversimplifies what actually happened.
Anti-triggers
- Creating or editing a postmortem record in the vendor — templates,
action-item tracking, and Rootly's automatic timeline import are its own
surface; use
rootly-postmortems. This skill reconstructs the timeline from every connected system, including tools the incident record never saw. - The incident record itself while it is still live — use
rootly-incidents,pagerduty-incidents, orbetterstack-incidents.
Discovering available tools first
This pack is cross-vendor. Before pulling any incident or observability data:
- Call
conduit__search_toolsto discover which incident-management connector is live (e.g.rootly__get_incident,pagerduty__list_incidents,betterstack__list_incidents) and pull the specific incident's record — by ID if given, or by resolving the most significant incident within a given time window if not. - Discover which observability connectors are live (Sentry, Datadog, Grafana) and which platform/deploy connectors are live (GitHub, Vercel, Netlify, Cloudflare, Supabase, Neon) — these are optional but each one that's connected sharpens the timeline.
- Only call the concrete tools that discovery returns. Do not assume, for example, that Sentry is connected just because it's a common pairing — confirm it via discovery first.
If discovery returns no incident-management connector at all, say so plainly — there is no incident record to build a postmortem from. If observability/deploy connectors aren't connected, proceed with what the incident tool alone provides and note the gap explicitly (see Error Handling).
Key Concepts
Timeline reconstruction
Build the timeline from multiple sources, merged and normalized to one timezone, not from a single source treated as complete:
- Incident tool event log — the backbone: detection/trigger time, acknowledgment, escalations, status transitions, and any notes or action items logged during the incident. This is the response timeline.
- Observability anomalies — error-rate spikes (Sentry), metric anomalies (Datadog/Grafana) in the window surrounding the incident, including any that predate the formal detection time — precursor signal is often the most valuable part of a postmortem timeline, because it shows how much earlier the problem was detectable versus when it was actually detected.
- Deploy history — GitHub (or the relevant platform connector — Vercel, Netlify, Cloudflare, Supabase, Neon) deploy/release events in the window. A deploy landing shortly before onset is not proof of causation by itself, but it is one of the highest-value correlations to surface explicitly.
Normalize every timestamp to a single stated timezone (state the choice explicitly at the top of the report) — incident tools, observability platforms, and CI/deploy systems very often log in different timezones (UTC vs. local), and silently mixing them corrupts the sequence.
Root cause vs. contributing factors
These are not the same thing, and collapsing them into one produces a postmortem that either oversimplifies ("the root cause was a bad deploy") or scatters blame without a clear technical throughline.
- Root cause — the proximate technical failure: the specific thing that broke. A null check missing on a new code path. A connection pool sized below actual concurrent load. A DNS record that didn't propagate before cutover.
- Contributing factors — conditions that made the root cause possible, or that extended its impact or detection time. These are usually process or system properties, not the bug itself: no alerting on the metric that would have caught it earlier, no canary/staged rollout so the bad deploy hit 100% of traffic at once, no automated rollback on error-rate spike, a runbook that didn't exist for this failure mode.
A useful test: if you fixed only the root cause and changed nothing else, would a structurally similar incident still be likely later? If yes, the contributing factors are where the durable prevention work lives — the root cause fix stops this specific incident from recurring, the contributing-factor fixes stop the next one like it.
Hypothesis structure when root cause isn't fully confirmed
Not every incident resolves with a confirmed root cause at postmortem time. When the evidence supports a strong hypothesis but not full confirmation, say so explicitly — label it "Root Cause (hypothesis, unconfirmed)" rather than presenting a guess with the same confidence as a confirmed finding. State what evidence would confirm or rule it out, so the postmortem stays honest about its own certainty and leaves a clear next step if confirmation matters (e.g., for a recurring pattern or a client-facing report).
Common Workflows
Draft a postmortem for a known incident
- Discover tools via
conduit__search_tools. - Pull the incident record by ID: title, severity, status, all available lifecycle timestamps, affected service(s).
- Pull the incident tool's event/action log for the full response timeline.
- Discover and pull correlated observability data (error spikes, metric anomalies) for a padded window around the incident (start well before the earliest known signal, through resolution).
- Discover and pull deploy/release history for the same window from any connected platform connector.
- Normalize all timestamps to one stated timezone and merge into a single chronological sequence, tagged by source and type (evidence vs. response).
- Draft the root cause (confirmed or hypothesis) and separately list contributing factors.
- Draft action items tied specifically to contributing factors, not just the root cause fix.
Draft a postmortem for an unspecified recent incident (time window given)
- Discover the incident-management connector and pull incidents within the
given window (default
24hif none given). - If more than one incident falls in the window, pick the most significant by severity/duration and say which one was selected and why; ask if ambiguous between two similarly significant incidents.
- Proceed with the known-incident workflow above.
Error Handling
No incident-management connector discovered
Say so explicitly: "No incident-management connector is available through the gateway, so there's no incident record to build a postmortem from." Do not fabricate an incident.
Incident found, but no observability or deploy connector
Proceed with a response-timeline-only postmortem built from the incident tool's own event log, and note explicitly in the report that no correlated observability or deploy evidence was available — this narrows what the timeline can show about precursor signals or deploy correlation, and the report should say so rather than presenting a thinner timeline as complete.
Ambiguous incident (no ID given, multiple candidates in window)
Ask which incident to draft, or state clearly which one was selected by default (highest severity / longest duration) and why.
Related Skills
- On-Call Handoff — often the source of the incident being postmortemed; a postmortem can also feed the "last-shift history" section of the next handoff
- Error Budget Tracking — whether this incident represents meaningful error-budget burn worth escalating beyond the individual postmortem
Signals
- GitHub stars
- 45
- Forks
- 24
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
incident-postmortem-wyre-ai- Source
- github.com/wyre-ai/msp-claude-plugins