agentleFS
augments-labsaugments-labs/sdlc-skills/skills/maintenance/post-mortem/SKILL.md

post-mortem

Skill1 starsChanged 3 months agoMITView on GitHub

Explains why safeguards missed a production escape, incident, loss, or failed work cycle, or why its impact grew, and what prevents it happening again. Use when a production escape, incident, material loss, or failed work cycle has been contained, or when the user asks how this reached production or what prevents another failed handoff. Establish any technical cause and immediate containment first; a process-only failure needs its event evidence. Skip ordinary bugs and ongoing uncontained impact.

12 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use management-talk and scrutinize.

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.
  • thananonSkill

    management-talk

    Rewrite engineer-to-engineer content for engineering-org leadership (VPs, directors, PMs, release managers, execs in an engineering-savvy company) and shape it for the channel it is going to — JIRA comment, Slack post, async standup line, email, or meeting talking-points. Trigger when the user asks to write/rewrite for management / exec / VP / director / PM / release manager, asks for an "executive summary / leadership update / status update", says "make this less technical / less jargony", or asks for a slack / email / standup / meeting version of work originally written engineer-to-engineer.

    Also in 3 projects that use this

  • jpsweeney97Skill

    scrutinize

    Use when the user explicitly wants a harsher-than-normal critical review of a plan, design, draft, argument, decision, or code artifact. Trigger on requests like "scrutinize this", "be brutal", "tear this apart", "assume this is wrong", "reject until proven otherwise", or "review this with maximum scrutiny". Challenge the premise first, then run two passes that search for flaws, omissions, weak assumptions, second-order effects, edge cases, and hidden dependencies. Do not use for routine code review, collaborative editing, or balanced feedback when the user did not ask for an adversarial stance.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

1 rule. 0 are common, 0 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 11 edited versions we read keep these.

  • 0

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

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

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

    Ask this and end the turn.

    line 76

“Common” is measured: kept by at least 6 in 10 of the 11 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

Post-Mortem

Explain why the failure escaped or grew, then measure whether each corrective control reduces recurrence, detection, or impact risk. Take the code-level cause from debugging; do not work it out again. Close on controls that are deployed and falsified, never on reflection. For a process-only failure, use the observed trail of events and decisions; do not invent a code defect to enter this skill.

When to use

  • A failure reached users or production, escaped far downstream, caused real loss, or exposed a process failure worth correcting.
  • Skip an ordinary reproduced bug. For a technical incident, establish the technical cause and immediate containment first; if the technical cause is unknown, invoke debugging.

Step 1: Control the record

  1. Open assets/post-mortem-template.md when starting the analysis. Fill Control and evidence handling first: readers, lifetime, redaction, expected reviewers, and approver rules.
  2. Fill Summary and impact and Timeline from artifacts, not from memory. Mark every time observed or estimated.

Step 2: Find the structural cause

  1. Fill Root cause and contributing conditions: cite the technical cause from debugging when applicable, or the evidence of the process failure, then each condition that made the introduction or the impact more likely. Name conditions, never a person. When there are several conditions, keep them separate.
  2. Fill Escape-path audit: freeze the inventory of gates and surfaces with the hash of its source, then fill every column for each entry, and for each omission record a decision that someone is accountable for.
  3. Fill every bullet of Risk-reduction claim for each action. Never claim that recurrence is impossible.
  4. Fill the Corrective actions rows, each mapped to a structural cause; receipts and External state stay pending and live in the ledger.
  5. Challenge the draft. Fill assets/escape-path-challenger.md before dispatching it read-only as dispatching-parallel-agents Step 2 says. A serious incident without a challenger needs the omission the Expected reviewers field requires. Record a decision on every finding; a findings verdict blocks issuing the analysis until the corrected draft is challenged again.
  6. Issue the analysis, which is never edited after issue, with its External lifecycle ledger (the ledger: add to it, never rewrite it; it sits outside the issued analysis), to the user-set path or the template's path, under the storage authority held now, and record its identity as the template says. If the record is in the repository, it is a new state under check.

Step 3: Propose and get the actions accepted

  1. Record each corrective action's proposed state in the ledger.
  2. Present:

    Post-mortem {{identity}} — {{path}}
    Impact: {{one line}}  Structural cause: {{one line}}  Escaped gate: {{one line}}
    Actions: {{each with owner and date}}
    
    1. Accept the actions
    2. Request changes
    3. Reject the analysis
    4. Cancel
    
    Recommendation: {{the answer the evidence and ownership support}} — {{one sentence}}.

    Ask this and end the turn; clarifying-intent owns what closes it.

  3. Move an action out of proposed only on a complete trusted receipt (proof, from a trusted source outside the state under check, that an action or decision really happened) for the exact scope and dates. Record a rejection, cancellation, or supersession with its residual risk and replacement.

Step 4: Prove and track the controls

  1. Falsify every corrective gate you implement. Record the targeted fail-then-pass proof in the ledger as raw evidence, never in the issued analysis: it fails on the captured incident or a representative bad case, it passes on the good control, and the version before the fix did not catch it.
  2. Track each control to a receipt bound to an identity, from the surface that enforces it: CI, runtime, review, release, alerting, recovery. Never infer from a summary.
  3. REQUIRED SUB-SKILL: invoke verification-strategy for any change to the battery itself (the set of checks the project runs). Add no duplicate check nobody owns.
  4. At the date declared in advance, compare the baseline against the target and confirm that the gate ran. Write effective, ineffective, or inconclusive. If it is ineffective or inconclusive, reopen, unless the exact approver rule accepts closure with the residual risk.
  5. Append every action state, proof, rollout result, and effectiveness verdict to the ledger; never edit the issued analysis.

Action states

Record in the external ledger, outside the issued analysis, each action's move from proposed to one of {owner-accepted | rejected | cancelled | superseded}, and, for an accepted action, from there through implemented, falsified, deployed/enforced, effectiveness reviewed, then effective or ineffective or inconclusive, and closed, in that order; an ineffective or inconclusive action closes only as Step 4.4 allows, else it is reopened. Let no prose, merge, or local green skip a state.

Gotchas

  • An escape-path audit taken from today's list of gates instead of the frozen inventory pinned to its source hash can end up describing the battery after the fix already landed, which makes every gate look fine and the audit worthless.
  • A Risk-reduction claim of "prevent" with no baseline, target, or horizon can never be marked effective or ineffective at the review date, only inconclusive, permanently.

Common mistakes

  • “Human error” or “reviewer missed it” instead of the conditions and the absent gate that let the action escape.
  • Publishing sensitive incident artifacts without access and retention controls.

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.