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
- op3616windows/skillstheir own version, first seen Nov 8, 2026
- nseney1/Soma-Governancetheir own version, first seen Nov 1, 2026
- nseney1/Aegis-Guardrailstheir own version, first seen Oct 25, 2026
- autsachi/codex-skillstheir own version, first seen Aug 11, 2026
- neronain/ClaudeSkills-Neronaintheir own version, first seen Aug 9, 2026
- Hassaan146/claude-skillstheir own version, first seen Jul 25, 2026
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.
thananonSkillmanagement-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
jpsweeney97Skillscrutinize
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
Other versions12 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 12
- thananon/9arm-skills★ 3.2ksame name
- Hassaan146/claude-skills★ 18same name
- carlkibler/agent-skills★ 6same name
- MarcoZorn/agencykit★ 6same name
- andreluizweb/my-claude-skills★ 4same name
- nseney1/Aegis-Guardrails★ 4same name
- nseney1/Soma-Governance★ 4same name
- neronain/ClaudeSkills-Neronain★ 3same name
- Hussain-Elfalah/Agentic-Skills★ 2same name
- mahiunfiltered/claude-code-skills★ 1same name
2 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository49 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- working-from-a-ticketSkill
- writing-specsSkill
- clarifying-intentSkill
- dispatching-parallel-agentsSkill
- handoffSkill
- mapping-the-codebaseSkill
- prototypingSkill
- using-git-worktreesSkill
- using-sdlc-skillsSkill
- viewing-artifactsSkill
- writing-skillsSkill
- yagniSkill
- finishing-a-branchSkill
- release-readinessSkill
- architecture-decisionsSkill
- coding-standardsSkill
- data-modelSkill
- migration-strategySkill
- reviewing-plansSkill
- system-architectureSkill
- ui-ux-designSkill
- writing-plansSkill
- adding-observabilitySkill
- changing-a-live-schemaSkill
- executing-plansSkill
- rollout-controlsSkill
- subagent-driven-developmentSkill
- test-driven-developmentSkill
- complexity-auditSkill
- containing-an-incidentSkill
- debuggingSkill
- deprecating-an-apiSkill
- diagnosing-a-sessionSkill
- eliminating-correctionsSkill
- large-scale-changesSkill
- refactor-architectureSkill
- brainstormingSkill
- define-goalsSkill
- feasibility-checkSkill
- scopingSkill
- receiving-code-reviewSkill
- requesting-code-reviewSkill
- reviewing-a-prSkill
- security-auditsSkill
- verification-before-completionSkill
- verification-strategySkill
- visual-ui-verificationSkill
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
- Very specific: line 76
Ask this and end the turn.
“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.
Files
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
- Open
assets/post-mortem-template.mdwhen starting the analysis. FillControl and evidence handlingfirst: readers, lifetime, redaction, expected reviewers, and approver rules. - Fill
Summary and impactandTimelinefrom artifacts, not from memory. Mark every timeobservedorestimated.
Step 2: Find the structural cause
- Fill
Root cause and contributing conditions: cite the technical cause fromdebuggingwhen 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. - 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. - Fill every bullet of
Risk-reduction claimfor each action. Never claim that recurrence is impossible. - Fill the
Corrective actionsrows, each mapped to a structural cause; receipts andExternal statestaypendingand live in the ledger. - Challenge the draft. Fill
assets/escape-path-challenger.mdbefore dispatching it read-only asdispatching-parallel-agentsStep 2 says. A serious incident without a challenger needs the omission theExpected reviewersfield requires. Record a decision on every finding; afindingsverdict blocks issuing the analysis until the corrected draft is challenged again. - 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
- Record each corrective action's
proposedstate in the ledger. 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-intentowns what closes it.- Move an action out of
proposedonly 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
- 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.
- 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.
- REQUIRED SUB-SKILL: invoke
verification-strategyfor any change to the battery itself (the set of checks the project runs). Add no duplicate check nobody owns. - At the date declared in advance, compare the baseline against the target
and confirm that the gate ran. Write
effective,ineffective, orinconclusive. If it isineffectiveorinconclusive, reopen, unless the exact approver rule accepts closure with the residual risk. - 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 claimof "prevent" with no baseline, target, or horizon can never be markedeffectiveorineffectiveat the review date, onlyinconclusive, 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.
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
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.

