thinking-pre-mortem — Claude Code skill: what it does, how to install
Assumes a plan or launch has already failed, traces concrete causes backward, and turns them into explicit gates, owners, and verification checkpoints.
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-pre-mortem -a claude-codeWhat thinking-pre-mortem does
The skill applies prospective hindsight rather than asking open-ended questions about what might fail. It sets the scenario strictly in the past tense with a specific date and failure mode, such as data loss, rollback, or missed SLAs. The agent then sweeps five failure areas: technical components, processes, hidden assumptions, external dependencies, and people.
Generic risks like scope creep get dropped immediately. The process scores issues by likelihood and impact to isolate the top 3–5 failure paths. For each path, the model extracts necessary conditions that enabled the failure, inverts them into mandatory prevention rules, and assigns an owner alongside a verification checkpoint.
A pre-mortem run that leaves the project plan untouched is an incomplete ritual. This routine is built strictly for pre-execution commits; running it during active incident firefighting or on small, cheap changes just wastes time.
What it helps with
- identify critical launch risks before writing code
- filter out generic failure warnings in favor of 3–5 concrete paths
- invert failure conditions into enforceable gate rules
- assign clear checkpoints and owners to prevent project derailment
- update technical roadmaps with explicit fallback spikes
Example prompts for the agent
- Run a pre-mortem on our database migration plan scheduled for next Tuesday
- Apply thinking-pre-mortem to the new authentication rollout plan
- Assume the launch failed due to an SLA breach and update our plan with prevention gates
How to install thinking-pre-mortem
1Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-pre-mortem -a claude-code2Manually: put the files in place
~/.claude/skills/thinking-pre-mortem/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/thinking-pre-mortem/
1Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-pre-mortem -a codex2Manually: put the files in place
.agents/skills/thinking-pre-mortem/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-pre-mortem -a cursor2Manually: put the files in place
.cursor/skills/thinking-pre-mortem/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install tjboudreaux/cc-thinking-skills thinking-pre-mortem2Manually: put the files in place
.github/skills/thinking-pre-mortem/SKILL.md1Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-pre-mortem -a gemini-cli2Platform CLI
gemini skills install https://github.com/tjboudreaux/cc-thinking-skills --path skills/thinking-pre-mortemManually: put the files in place
.devin/skills/thinking-pre-mortem/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-pre-mortem -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about thinking-pre-mortem
How to install thinking-pre-mortem in Claude Code?
Run npx skills add tjboudreaux/cc-thinking-skills --skill thinking-pre-mortem -a claude-code. The file will be placed in ~/.claude/skills/thinking-pre-mortem/SKILL.md.
What does thinking-pre-mortem do?
It models a past-tense project failure, isolates the conditions that enabled that disaster, and converts them into concrete plan gates and verification checks.
When should you avoid using this skill?
Skip it during live incident firefighting, on small reversible tasks, or when existing CI, rollback gates, and alerts already cover the failure paths.
Source text
SKILL.md · MIT
---
name: thinking-pre-mortem
description: Before committing to a plan or launch, assume it already failed and reason backward through concrete causes — convert failure paths into mitigations, gates, and stop checks.
disable-model-invocation: true
---
# Pre-Mortem Analysis
**Core rule:** Prospective hindsight beats "what could go wrong?" Assume the plan has already failed (past tense), generate concrete failure paths, reverse them into prevention requirements, and bind each top path to a verifiable plan change.
## When to Use
- Before kickoff, major technical commitment, high-risk sprint work, launch, or release.
- After a plan looks solid but before execution, especially when optimism or overconfidence is likely.
- When a decision is costly to reverse and risks are still implicit rather than enforced.
## When NOT to Use
- Work is small, local, and cheaply reversible — skip the ceremony.
- You are mid-incident under time pressure — act now (OODA / scientific method); pre-mortem is pre-execution.
- You would only emit generic risks ("scope creep", "requirements unclear") that do not bind to this plan.
- Risks are already enforced by live gates (CI, canary, rollback, alerts) with no residual unlisted path.
- A mature risk register already covers the same specific failure paths with owners and checks.
## Procedure
1. **Set the failure frame in past tense:** "It is [post-deadline date]. The plan failed: [rollback / data loss / no adoption / SLA breach]." Explaining a happened failure is required; predicting one is not enough.
2. **Generate failure reasons before filtering:** sweep technical, process, assumptions, dependencies/external, and people. Force a second pass: "What did the plan most need to be true that was not?" Collect breadth first (aim for many distinct reasons); do not rank mid-sweep.
3. **Prioritize:** group by theme; score likelihood × impact; keep the top 3–5 concrete risks (drop generics that do not bind).
4. **Failure-first reverse analysis (absorbed reverse path):** for each top risk, (a) restate the failed outcome in past tense, (b) list **necessary/enabling conditions** that had to be true for that failure, (c) **invert** each condition into a verifiable prevention requirement (avoid/require rule + check), (d) bind **owner, verification checkpoint, and ship/stage gate**.
5. **Mitigate and update the plan:** for each top risk, attach mitigation steps, spike/contingency if needed, and the reverse-analysis prevention requirements as explicit plan gates. A pre-mortem with no plan change is incomplete.
6. **Stop when** top risks each have a bound mitigation or prevention gate, or when further reasons are only generic restatements — then ship the updated plan, do not keep brainstorming.
## Output
1. **Failure scenario** — past-tense disaster frame with date and failed outcome.
2. **Failure reasons** — unfiltered list, then prioritized top 3–5 with likelihood × impact.
3. **Reverse paths** — for each top risk: necessary conditions → inverted prevention requirements.
4. **Mitigations** — owner, verification checkpoint, ship/stage gate per top risk.
5. **Plan deltas** — concrete tasks, spikes, contingencies, and gates added to the plan.
## Verification
- **Falsify/stop:** if no plan-specific failure path can be stated in past tense with necessary conditions, stop — you are generating theater, not risk. If a "mitigation" has no verification checkpoint, it is not done.
- **Over-application guard:** do not pre-mortem reversible chores, mid-incident firefighting, or systems that already enforce the same paths. Do not leave abstract risks as "mitigate later"; either invert them into gates or drop them as non-actionable.
© tjboudreaux · MIT · tjboudreaux/cc-thinking-skills