Use when reviewing or stress-testing a proposed technical approach, implementation plan, or architecture decision. Triggers when asked to review a plan, play devil's advocate, poke holes, or validate an approach before implementation begins.
Stress-test a proposed plan before implementation begins. Extract assumptions, verify claims against actual code, classify concerns by severity, and run a pre-mortem. The goal is to find plan-blocking issues before they become implementation-blocking issues.
This skill answers: "Will this plan actually work, and what could go wrong?"
/challenge-plan [proposed plan, implementation outline, or design decision]
/challenge-plan --scope .work/dev/5096/
--scope <path>: When provided, read plan.md from the given directory as the plan to challenge, and read goals.md from the same directory for context (success criteria, verified claims, constraints). Use the goals document to evaluate whether the plan actually delivers what was scoped. When is absent, the skill works exactly as it does today (interactive, prompt-driven).--scopedeep-planning formulates the best approachchallenge-plan stress-tests the chosen approachanalyze evaluates code paths and edge cases during/after implementationYou MUST create a task for each of these items and complete them in order:
digraph challenge_plan {
"Extract assumptions" [shape=box];
"Verify claims against code" [shape=box];
"Run pre-mortem" [shape=box];
"Categorize concerns" [shape=box];
"Classify severity" [shape=box];
"Any blocking concerns?" [shape=diamond];
"Propose fixes/alternatives" [shape=box];
"Render verdict" [shape=doublecircle];
"Extract assumptions" -> "Verify claims against code";
"Verify claims against code" -> "Run pre-mortem";
"Run pre-mortem" -> "Categorize concerns";
"Categorize concerns" -> "Classify severity";
"Classify severity" -> "Any blocking concerns?";
"Any blocking concerns?" -> "Propose fixes/alternatives" [label="yes"];
"Any blocking concerns?" -> "Render verdict" [label="no"];
"Propose fixes/alternatives" -> "Render verdict";
}
Before attacking the plan, explicitly list what it assumes. Every plan has hidden assumptions — about the codebase, the runtime, the users, the constraints. These are your primary attack surface.
Examples of hidden assumptions:
For EVERY factual claim in the plan, read the actual code. Plans frequently contain:
Do NOT take claims at face value. If the plan says "X works this way," verify it.
Record the evidence you used for each verified or disputed claim. Prefer concrete file paths, code paths, or command output over generic statements like "checked the code."
Imagine the plan was implemented and deployed, and it failed. Generate 3-5 specific failure scenarios:
This is different from listing concerns — it's narrative scenario thinking that surfaces risks pure analysis misses.
Not all concerns are equal. For each concern:
This classification is critical — a plan with 10 "minor" concerns is fine. A plan with 1 "blocking" concern is not.
## Plan Challenge: [Plan Name]
### Assumptions (attack surface)
1. [Assumption] — Verified: [yes/no/partially]. Evidence: [file:line, code path, or command output]
2. ...
### Pre-Mortem Scenarios
1. **[Scenario name]**: [What happens, why, impact]
2. ...
### Concerns
| # | Category | Severity | Concern | Evidence | Fix |
| --- | ------------ | ----------- | ------- | ------------------------------------ | -------------- |
| 1 | Correctness | Blocking | [issue] | [file:line or code path] | [proposed fix] |
| 2 | Completeness | Significant | [issue] | [file:line or code path] | [proposed fix] |
| 3 | Performance | Minor | [issue] | [benchmark, call path, or rationale] | — |
### Verdict
[Ready / Needs Revision / Reconsider]
[2-3 sentence summary: what's the biggest risk, what must change, is the direction right?]
If you found no blocking or significant concerns, say so explicitly and summarize what you verified plus the residual risks.
| Thought | Reality |
|---|---|
| "The plan looks reasonable" | You haven't extracted assumptions yet. Do that first. |
| "I found 10 concerns, that's thorough" | Did you classify severity? 10 minors ≠ 1 blocker. |
| "The plan says X, so X is true" | Did you verify against actual code? Plans lie. |
| "I listed the problems" | Did you propose fixes? Problems without solutions aren't useful. |
| "This is a long review, it must be thorough" | Length ≠ thoroughness. Use the table. Prioritize blockers. |