Pre-implementation plan audit stress-testing scope, assumptions, risks, and failure modes before code is written. Triggers on: "review this plan", "is this plan solid", "what am I missing", "challenge my assumptions", "stress-test this", "/plan-review".
Scanned 5/27/2026
Install via CLI
openskills install Mathews-Tom/armory---
name: plan-review
description: 'Pre-implementation plan audit stress-testing scope, assumptions, risks, and failure modes before code is written. Triggers on: "review this plan", "is this plan solid", "what am I missing", "challenge my assumptions", "stress-test this", "/plan-review".'
metadata:
version: 1.0.1
category: review
tags: [plan-audit, scope, risk-assessment, assumptions]
difficulty: intermediate
---
# Plan Review Skill
## Purpose
Execute a structured pre-implementation audit of a technical plan, proposal,
or design document. The goal is to surface risks, bad assumptions, missing
pieces, and scope problems _before_ any code is written — when course
corrections are cheapest.
This skill is read-only. It never modifies code. It produces a
severity-tagged review document with a final ship/rethink/reject verdict.
## Step 0 — Mode Selection
Ask the user a single question via `AskUserQuestion`:
> Which review lens? (1) Product — scope, user impact, business alignment.
> (2) Engineering — architecture, failure modes, test strategy, performance.
> (3) Combined (default) — both lenses integrated.
Accept the answer and proceed. Do not ask follow-up configuration questions.
Also assess scope size from the plan:
- **Small change** (single file, ~100 lines or fewer): deliver a compressed
4-section review — Scope, Risks, Missing, Verdict. Skip the full
multi-section template.
- **Standard change**: execute the full review sequence below.
## Full Review Sequence
### 1. Plan Comprehension
Read the plan end-to-end. Produce a 2–3 sentence summary confirming
understanding. Explicitly list:
- **Stated goals** — what the plan claims to achieve.
- **Non-goals** — what is explicitly out of scope.
- **Constraints** — budget, timeline, compatibility, team size, or
technology constraints mentioned or implied.
If the summary is wrong, the user corrects it here before the rest of the
review proceeds on a false foundation.
### 2. Assumption Challenge
Extract every implicit assumption. For each one:
| Assumption | If wrong? | Supporting evidence | What falsifies it? |
| ---------- | --------- | ------------------- | ------------------ |
Common assumption categories to probe:
- Data availability and shape
- Third-party API stability and rate limits
- Team familiarity with chosen tools
- Performance characteristics of dependencies
- Backward compatibility requirements
- Deployment environment capabilities
### 3. Risk & Failure Mapping
For each component or subsystem in the plan, fill a failure mode table:
| Component | Failure Mode | Blast Radius | Recovery Strategy |
| --------- | ------------ | ------------ | ----------------- |
Additionally identify **data flow shadow paths** — side effects, async
callbacks, event propagation, or cache invalidation chains that are not on
the happy path but will execute in production.
Use ASCII diagrams to illustrate non-obvious data flow or failure
propagation where the plan involves three or more interacting components.
### 4. Component-by-Component Review (Engineering Lens)
For each major component, assess:
- **Error handling strategy** — Are errors classified and routed through a
registry, or silently swallowed by catch-all handlers?
- **Data integrity invariants** — What invariants must hold? How are they
enforced? What happens when they break?
- **Concurrency and race conditions** — Shared state, lock ordering,
optimistic vs. pessimistic strategies, idempotency guarantees.
- **Performance under load** — Expected throughput, latency budget, resource
consumption at 10x current scale.
- **Test strategy adequacy** — Unit, integration, and end-to-end coverage
for the component. What is untestable and why?
This section is language- and framework-agnostic. Reference
`references/project-detection.md` for framework-aware examples when the
user's stack is known.
Skip this section when running product-lens-only mode.
### 5. Scope & Priority Assessment (Product Lens)
- **Needed vs. nice-to-have** — Which features are load-bearing for the
stated goals? Which are speculative?
- **Deferral candidates** — What can ship in a follow-up without increasing
risk?
- **Over-engineering indicators** — Abstractions, configurability, or
extensibility that no current requirement demands.
- **User-facing impact** — Does the complexity produce proportional user
value?
Skip this section when running engineering-lens-only mode.
### 6. Integration Review
How components connect to each other and to the outside world:
- **API contracts** — Request/response shapes, versioning, error codes
between modules.
- **State management across boundaries** — Who owns state? How is it
synchronized? What happens during partial failure?
- **Migration and deployment ordering** — Which components must deploy
first? Are there intermediate states where the system is inconsistent?
- **Rollback compatibility** — Can each deployment step be reversed
independently? What data is irreversible?
### 7. What's Missing
Things the plan does not address that it should:
- Monitoring and observability (metrics, logs, alerts, dashboards)
- Error recovery paths beyond the first retry
- Edge cases outside the stated happy path
- Security considerations (authn, authz, input validation, secrets
management)
- Load and scale implications (connection pools, queue depth, storage
growth)
- Operational runbooks for incident response
### 8. Execution Assessment
Evaluate the proposed implementation order:
- **Dependency ordering** — Are prerequisites built before dependents?
- **Parallel work opportunities** — Which tasks have no mutual dependency
and can proceed simultaneously?
- **Risk-first vs. value-first** — Does the plan tackle the highest-risk
unknowns early, or defer them?
- **Prototype candidates** — Which components should be spiked before
committing to the full implementation?
### 9. Verdict
Deliver exactly one of:
| Verdict | Meaning |
| --------------------- | ------------------------------------------------------------------------------- |
| **Ship** | Plan is solid. Proceed as written. |
| **Ship with changes** | Viable, but specific modifications listed below are required before proceeding. |
| **Rethink** | Fundamental structural issues require re-planning. Itemize what must change. |
| **Reject** | Plan is not viable. Explain why and what alternative direction to consider. |
Include a one-paragraph rationale for the verdict.
## Compressed Review (Small Changes)
For small-scope changes (single file, ~100 lines), deliver four sections
only:
1. **Scope** — What the change does and its boundaries.
2. **Risks** — Failure modes and blast radius (brief table).
3. **Missing** — Gaps worth addressing even at this scale.
4. **Verdict** — Ship / Ship with changes / Rethink / Reject.
## Interaction Protocol
- Use `AskUserQuestion` one issue at a time. Never batch multiple questions
into a single prompt.
- For HIGH-severity findings, surface them immediately and ask whether to
continue or pause for discussion before proceeding to the next section.
- This skill is **read-only**. It does not create, modify, or delete any
files.
- Use ASCII diagrams for data flow and component relationships where they
clarify failure propagation or integration topology.
## Output Format
Structured review document with:
- Numbered sections matching the sequence above
- Severity tags on every finding: `[HIGH]`, `[MEDIUM]`, `[LOW]`
- Summary table of all findings at the end, grouped by severity
- Final verdict with rationale
No comments yet. Be the first to comment!