agentleFS
avelikiyavelikiy/great_cto/skills/pre-mortem/SKILL.md

pre-mortem

Skill112 starsChanged 2 months agoMITView on GitHub

Imagine the project has already shipped and failed catastrophically — work backwards from the failure to identify the most likely causes BEFORE building. Forces concrete risk identification, not vague "what could go wrong" lists.

  • Deletes or force-pushes

30 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use brainstorm-experiments-existing, prioritize-assumptions and 9 more.

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

    brainstorm-experiments-existing

    Design experiments to test assumptions for an existing product — prototypes, A/B tests, spikes, and other low-effort validation methods. Use when validating assumptions, testing feature ideas cheaply, or planning product experiments.

    Also in 7 projects that use this

  • skytiger6724Skill

    prioritize-assumptions

    Prioritize assumptions using an Impact × Risk matrix and suggest experiments for each. Use when triaging a list of assumptions, deciding what to test first, or applying the assumption prioritization canvas.

    Also in 7 projects that use this

  • 45ckSkill

    pestle-analysis

    Also in 7 projects that use this

  • About-IntelligenceSkill

    positioning-ideas

    Brainstorm product positioning ideas differentiated from competitors.

    Also in 7 projects that use this

  • About-IntelligenceSkill

    product-name

    Brainstorm 5 unique, memorable product names with rationale aligned to brand values and target audience.

    Also in 6 projects that use this

  • nandanosqlSkill

    swot-analysis

    Conduct a structured SWOT analysis — Strengths, Weaknesses, Opportunities, Threats — that connects internal capabilities to external forces for strategic decision-making.

    Also in 9 projects that use this

  • +4 more from skytiger6724
  • +1 more from About-Intelligence

The file

We split this skill into the rules it gives an agent

6 rules. 0 are common, 6 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 23 edited versions we read keep these.

  • 6

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    After scoring, classify each risk into one of three types:

    line 63
  2. Distinctive:

    Should keep you awake at night

    line 67
  3. Distinctive:

    Launch-Blocking: Must be resolved before shipping (broken core feature, regulatory blocker, data integrity risk)

    line 70
  4. Distinctive:

    Fast-Follow: Must be resolved within 30 days post-launch (performance issues, secondary features)

    line 71
  5. Distinctive:

    Not worth significant resource investment

    line 76
  6. Distinctive:

    If a top-3 cause CANNOT be mitigated within the time/budget, escalate to the user: "This plan accepts the risk of X with no mitigation."

    line 93

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

Pre-mortem — fail-it-before-you-build-it

A retrospective for a project that hasn't happened yet. Surfaces real risks that "list every risk" prompts miss.

Originated in Gary Klein's research at MIT Sloan, now standard at AWS and other ops-mature orgs.

The 5-step pre-mortem

Step 1. Imagine you're 6 months in the future

The project shipped. It is a clear, public failure. There's a Reddit thread about it. The CEO is asking what went wrong.

Step 2. Write the post-mortem newspaper headline

One sentence. Concrete. Specific. Examples:

  • ❌ Bad: "We had some quality issues."
  • ✅ Good: "On 2026-09-12, the Stripe webhook handler deduplicated by raw body hash, so 30K customers were double-charged after Stripe retried delivery during a network blip."

The headline forces you to name the failure mode SPECIFICALLY.

Step 3. List every individual reason this exact failure happened

Brainstorm 10-15 reasons. Be specific. Each item should reference:

  • A real component / file
  • A real failure mode (race condition, schema mismatch, expired credential)
  • A real human factor (oncall didn't see alert, runbook was outdated)

Reject hand-waves like "testing was insufficient." Replace with "we didn't write a property-based test for the dedup-key collision case."

Step 4. Rank by likelihood × severity

For each cause, score:

  • Likelihood: 1-5 (1=once-in-a-decade, 5=monthly)
  • Severity: 1-5 (1=cosmetic, 5=data loss / regulatory breach)
  • Risk score: likelihood × severity

Top 3 by risk score → these are your highest-priority mitigations.

Step 4b. Classify risks — Tigers / Paper Tigers / Elephants

After scoring, classify each risk into one of three types:

🐯 Tigers — Real problems you personally believe could derail the project

  • Based on evidence, past experience, or clear logic
  • Should keep you awake at night
  • Require concrete action
  • Classify each Tiger by urgency:
    • Launch-Blocking: Must be resolved before shipping (broken core feature, regulatory blocker, data integrity risk)
    • Fast-Follow: Must be resolved within 30 days post-launch (performance issues, secondary features)
    • Track: Monitor post-launch, fix if it becomes an issue (edge cases, nice-to-haves)

📄 Paper Tigers — Concerns others might raise that you don't believe are real risks

  • Valid-sounding on the surface but unlikely or overblown
  • Not worth significant resource investment
  • Worth documenting to align stakeholders and avoid repeated debates
  • For each: explain WHY you don't believe it's a real risk

🐘 Elephants — Things the team knows about but isn't discussing openly

  • Uncomfortable concerns: technical debt, team tension, unrealistic timeline, design that nobody likes
  • Uncertain — you're not sure if it's a problem, but nobody is investigating
  • Deserve explicit surfacing before launch — silent elephants become Tigers post-launch

Step 5. For each top-3 cause, write a guardrail in the plan

Each guardrail is a concrete change to the plan:

  • A test that would have caught it
  • A circuit breaker / feature flag
  • A runbook entry
  • A monitoring alert with specific SLO

If a top-3 cause CANNOT be mitigated within the time/budget, escalate to the user: "This plan accepts the risk of X with no mitigation."

Template — add to PLAN-*.md

## Pre-mortem

Six months from now, this project failed. Headline:

> <one-sentence failure headline>

### Top reasons (likelihood × severity)

| Cause | L | S | Risk | Mitigation in plan |
|---|---|---|---|---|
| <specific cause> | 4 | 5 | 20 | <Task #N: write idempotency test> |
| ... | | | | |

### 🐯 Tigers (real risks — require action)

| Tiger | Classification | Mitigation | Owner | Due |
|-------|---------------|-----------|-------|-----|
| <risk> | Launch-Blocking | <concrete action> | <team/person> | <date> |
| <risk> | Fast-Follow | <concrete action> | <team/person> | <date> |
| <risk> | Track | <monitoring approach> | <owner> | post-launch |

### 📄 Paper Tigers (overblown — document to align stakeholders)

- **<concern>**: Not a real risk because <reason>. If <condition> changes, revisit.

### 🐘 Elephants (unspoken — needs open discussion)

- **<concern>**: Nobody is talking about this. Suggested conversation: "<how to raise it>".

### Accepted risks (no mitigation)

- <risk> — accepted because <budget/scope reason>. Owner: <name>.

Common failure modes by archetype

Quick start — most-common pre-mortem causes per archetype:

ArchetypeCommon failure
fintech / commerceIdempotency-key collision; double-charge during retry storm
healthcarePHI leak via debug log; BAA not signed with vendor
web3Oracle staleness; flash-loan exploit on bonding curve
mlopsTraining/serving skew; model drift undetected
iot-embeddedOTA bricks devices in a region with no recovery path
data-platformLate-arriving data overwrites correct values
ai-system / agent-productPrompt injection exfiltrates other users' data
enterprise-saasCross-tenant data leak via RLS gap
cli-toolDestructive flag with no confirmation (rm -rf equivalent)
libraryBreaking change in minor version bump

Anti-patterns in pre-mortems

❌ Vague risks. "Performance might be a problem." Be specific: which operation, at what load, what's the SLO.

❌ Cosmic risks. "AWS could go down." Yes, but that's not actionable. Focus on what you can mitigate.

❌ Defensive list. Listing risks you've already mitigated to look thorough. Only list risks the current plan does NOT yet address.

❌ Skip the headline. Without the headline, the team won't believe the failure scenario is real.

When to skip

  • nano project_size — pre-mortem is overhead.
  • Pure refactor with full test coverage — guardrails already exist.
  • Bug-fix with one-line repro — risk is well-bounded.

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.