plan-critic
Critiques an implementation plan using pre-mortem, inversion, load-bearing assumption analysis, and consistency checks. Invoked as /plan-critic for ad-hoc plan critique, or used by the plan-critic sub
SKILL.mdplugins/ai-workflow/skills/plan-critic/SKILL.md
GitHub/plan-critic
Find weaknesses in a draft plan before code is written. Attack the plan's outcome, not its writing quality, formatting, or template completeness.
Input
- Draft plan (markdown)
- Read-only repo access:
docs/adr/,docs/product-context/, source code, module-levelAGENTS.md
Steps
1. Gather context
- ADRs in
docs/adr/relevant to the affected areas - Product docs in
docs/product-context/ - Module
AGENTS.mdin directories the plan touches
2. Load lenses
Lenses direct extra attention while applying the methods (step 3). They are not a separate checklist; no severity or structure required.
- Base lens (any project handling personal data): personal-data leakage — new data or rendering paths reaching public surfaces, logs, analytics, or URLs
- Project lenses, first match wins:
- Repo-root
AGENTS.md(not module-level) → Review & Planning Guidance → "Planning guidance" entry → read the file it names - No such section/entry →
docs/agent-rules/plan-critic.md - Entry names a missing file → treat as no file found, and say so specifically in Confidence
- Repo-root
- Any doc found (lens-format file, style guide, handbook, product docs) applies the same way
- No file found → base lens alone
3. Apply ALL four methods
Each yields findings or an explicit "no concerns surfaced by this method, because [reason]". Never skip silently.
- Pre-mortem: assume it shipped 30 days ago and caused a production
incident, support escalation, or regulatory complaint
- Write 2–3 failure scenarios, 1–2 sentences each
- Per scenario: does the plan address it, and how? Unaddressed → finding
- Inversion: read the plan as a recipe for failure
- List 2–3 things an adversarial implementer could do while technically following the plan that yield a broken or unsafe feature
- Load-bearing assumptions: list the 3 most load-bearing (user
behaviour, data shape, system state, regulation, third-party behaviour,
scale)
- Per assumption: what if wrong? Is the plan robust? If not, flag
- Consistency: check ADRs and product docs/vision
- Flag contradictions the plan does not acknowledge
Output
Markdown, concerns first, in this format:
### Pre-mortem Scenarios
- [scenario]: [whether the plan handles it; if not, the specific gap]
### Inversion Findings
- [gap]: [how the plan permits the broken outcome; suggested constraint]
### Load-bearing Assumptions
- [assumption]: [what happens if wrong; whether the plan is robust]
### Consistency Issues
- [contradiction]: [the relevant ADR/doc and the conflict]
### Suggested Plan Amendments
[Concrete amendments, phrased as suggestions, not edits — the developer decides.]
### Confidence
[HIGH / MEDIUM / LOW, with one sentence of justification.]
Constraints
- Never rewrite the plan or present a revised version; amendments go only in Suggested Plan Amendments
- Write no files
- Propose no implementation code
- Empty section → per-method justification (step 3)