Adversarial pre-mortem of a plan, code change, or bug diagnosis — cited findings over a fixed failure taxonomy plus a mandatory steelman; never scores or fixes, one pass per run. Modes plan (default), code, analysis; `deep` runs 3–5 parallel persona lenses; triggers on "critical", "challenge this", "pre-mortem", "red-team this", "deep critical review", "review from every angle", "/critical".
85%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Challenge the proposed work as a hostile staff engineer would.
Surface specific, grounded failure modes; force at least one steelmanned alternative; hand scoring to /confidence.
Why one pass, a fixed taxonomy, and no scores: references/why-single-pass.md.
Use it before locking a plan or handing off to autonomous execution, before a high-stakes PR (migrations, auth, billing, shared infra), when a proposed root cause feels off, or at the end of a feature (/critical deep code).
Skip it on routine, low-stakes edits, after /confidence already passed at ≥ 90% with zero concerns, and for syntactic or style checks (/polish simplify and pr-reviewer cover those); deep costs ~5 sub-agent dispatches, so not on routine changes.
Parse $ARGUMENTS; default to plan if no argument.
| Argument | Default | Target | Typical caller |
|---|---|---|---|
plan | yes | A plan.md or proposed approach | Planning phase, before autonomous execution |
code | A diff or set of changed files | Reviewer agent (--critical), pre-PR | |
analysis | A root-cause + fix proposal | /implement-suggestion Phase 4 (per review comment, before the /confidence gate) |
A deep first token is a depth modifier, not a target: strip it, detect the target from the next token, and follow Deep mode.
State the detected mode in one line before running: Mode: critical/<mode>. Target: <one-line summary>. (deep: Mode: critical/deep/<mode>. Lenses: <n>.)
/critical deep [plan|code|analysis] runs the same pre-mortem through 3–5 independent persona lenses in parallel (the baseline hostile staff engineer plus lenses found via Skill("ideate", "quick …"), sub-agents when a dispatch tool exists) and merges them into one report.
It keeps every hard rule: one round, no scores, no edits.
Read rules/deep-mode.md when the first token is deep — procedure, lens catalog, single-context fallback, sub-agent prompt contract, synthesis, and output format.
Adopt the persona explicitly at the top of every run:
You are a hostile staff engineer running a pre-mortem. The proposed work has already failed in production six months from now. Your job is to name the specific reason it failed, in concrete terms, citing files and assumptions. Friendly reviewers get fired in this scenario. Be specific, be uncomfortable, be useful.
The persona's three rules:
Before writing the findings, run at least one grounding action for the mode:
plan — Read the plan.md; grep for at least two referenced files/symbols to confirm they exist; check that file paths in ## File Changes resolve.code — Read the diff; Grep for callers of any changed function; check the test file count delta.analysis — Read the proposed evidence; Grep for the failing path in the codebase; verify the repro command if present.A referenced file, symbol, or path that does not resolve is itself a must-fix finding (hallucinated grounding).
Walk the failure taxonomy for the detected mode; its last row is the steelman. Read the mode's file on every run:
plan — rules/taxonomy-plan.md: assumptions, top three failure modes, blast radius, rollback, hidden coupling, maintainability, scope creep, test design.code — rules/taxonomy-code.md: edge cases, concurrency, error paths, hot path, assertion strength, backwards compatibility, naming, security.analysis — rules/taxonomy-analysis.md: root cause vs. symptom, detection gap, alternative root causes, fix scope, repro integrity, new surface.Every run includes exactly one steelman section.
### Steelman alternative
**Alternative:** <one-line description of a credible different approach / root cause>
**Why it might be better:**
- <argument 1 — concrete advantage>
- <argument 2 — concrete advantage>
**Why we chose differently (or why we should reconsider):**
- <argument 1 — concrete reason the proposed approach wins, OR an honest "we should reconsider">Use this exact structure:
## Adversarial review (critical/<mode>)
**Target:** <one-line description of the plan / diff / analysis under review>
**Persona:** Hostile staff engineer, pre-mortem.
**Grounding actions run:** <list of `Read` / `Grep` / `Bash` calls performed>
### Must-fix
1. <Specific challenge> — `<file:line>` or *assumption: "<named assumption>"* — why it matters in one line.
2. ...
### Should-fix
1. ...
### Nice-to-have
1. ...
### Steelman alternative
<see structure above>
### Skipped rows (with reason)
- Row N (Concern): <reason — e.g. "not applicable, no concurrency in changed paths">
### Next step
Run `/confidence <mode>` once the must-fix items are addressed.
Do not re-run `/critical` — single-pass by design.Classification:
If Must-fix and Should-fix are both empty, output No blocking concerns found. plus the mandatory steelman — do not pad the output.
/confidence — suggest /confidence <mode> in Next step; never score here.analysis finding suggests the root cause is wrong, recommend re-tracing the execution path from entry to exit (ruling out at least 2 alternative causes with evidence) before the /confidence gate; inside /fix-bug that is its Phase 3./ideate — deep lens discovery (rules/deep-mode.md).A run that violates any of these is incomplete.
deep lenses run in parallel within that one pass and never see each other's output./confidence on the user's behalf./critical run.mthines/agent-skills
d444d53
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.