plugins/axiom-planning/skills/plan-review/SKILL.md
Use after implementation-planning to validate plans against codebase reality, risk, complexity, and project conventions before execution
npx skillsauth add tachyon-beep/skillpacks plan-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Quality gate that validates implementation plans before code execution. Spawns 4 specialized reviewers in parallel, then synthesizes findings into a unified verdict.
Invoke: /review-plan [plan_file] after implementation-planning completes
Position in workflow:
brainstorming → implementation-planning → plan-review → executing-plans
Accuracy over speed. This is a quality gate, not a quick check.
This is a token-intensive operation. Reserve for high-risk or high-complexity work. For simpler plans, consider a simplified single-reviewer focus.
Plan review spawns 4 specialized agents in parallel, each with a distinct lens:
Focus: Does the plan match codebase reality?
Blocking conditions: Hallucinated symbols, version incompatibilities, convention violations
Focus: Is the structural approach sound?
Blocking conditions: One-way doors without rollback strategy
Focus: Is the plan production-ready?
Blocking conditions: Missing test strategy, security anti-patterns, no observability
Focus: What are the ripple effects?
Blocking conditions: Critical systemic risks, non-idempotent operations on important data
After all 4 reviewers complete, a synthesizer consolidates findings:
| Verdict | Condition |
|---------|-----------|
| CHANGES_REQUESTED | Any blocking issue from any reviewer |
| APPROVED_WITH_WARNINGS | Warnings but no blockers |
| APPROVED | No blockers, no warnings |
Priority scoring: Issues ranked by Severity × Likelihood × Reversibility
{
"verdict": "CHANGES_REQUESTED",
"summary": "3 blocking issues, 4 warnings",
"plan_file": "docs/plans/2026-02-03-feature.md",
"reviewed_at": "2026-02-03T14:30:00Z",
"blocking_issues": [
{
"id": "B1",
"source": "reality",
"issue": "Method `Auth.verify()` does not exist",
"priority_score": 12,
"resolution": "Use `Auth.check()` or create the method"
}
],
"warnings": [...],
"recommendations": [...],
"reviewer_summaries": {
"reality": {"status": "ISSUES_FOUND", "blocking": 1},
"architecture": {"status": "PASS", "blocking": 0},
"quality": {"status": "ISSUES_FOUND", "blocking": 1},
"systems": {"status": "PASS", "blocking": 0}
}
}
Saved to: [plan_directory]/[plan_name].review.json
## Plan Review: CHANGES_REQUESTED
### Blocking Issues (3) - Must Fix
1. [B1] Hallucinated Method (Reality) - Auth.verify() doesn't exist
2. [B2] SQL Injection Risk (Quality) - Raw SQL in Task 2
3. [B3] Missing Rollback (Architecture) - DB migration needs rollback
### Warnings (4) - Should Fix
...
### Next Steps
Fix blocking issues, then run /review-plan again.
For lower-risk plans, /review-plan offers a simplified mode that runs only one reviewer:
Which review focus?
1. Reality - Symbol/path verification
2. Architecture - Complexity, patterns
3. Quality - Testing, observability
4. Systems - Second-order effects
This reduces token usage significantly while still providing focused validation.
Symbol extraction is heuristic. Regex patterns may miss:
Version checking is API-level. Checks if APIs exist, not behavior changes.
Convention checking requires CLAUDE.md. If project has no CLAUDE.md, convention alignment is skipped.
Plan format matters. Expects plans from implementation-planning skill (v1.0.0+). Other formats may produce incomplete reviews.
| Issue Type | Caught By | Example |
|------------|-----------|---------|
| Hallucinated method | Reality | User.validate() doesn't exist |
| Wrong file path | Reality | src/helpers/ should be lib/utils/ |
| Version mismatch | Reality | Plan uses pandas v2 API, v1.5 installed |
| No rollback plan | Architecture | DB migration without down script |
| High blast radius | Architecture | 12 files touched in one PR |
| Missing tests | Quality | No test strategy defined |
| SQL injection | Quality | Raw f-string SQL query |
| No error logging | Quality | Catch block with no logging |
| Race condition | Systems | Assumes user exists when order created |
| Non-idempotent | Systems | Payment runs twice = double charge |
This skill covers:
Not covered:
development
Use when **managing the delivery of work** rather than building it — running a project or a program, not writing its code. Use when a team is busy but outcomes are not landing, when "when will it be done" has no defensible answer, when status is green every week until it is suddenly red, when dependencies surprise you, when a RAID log is a graveyard, or when several projects must be coordinated toward one outcome (a program). Lean/agile-leaning, honest about where program scale needs predictive structure. Pairs with `/axiom-planning` (turning one workstream into an implementation plan) and `/axiom-sdlc-engineering` (process maturity, requirements traceability, formal governance). Do not load for writing code, picking an architecture, or designing a single feature.
tools
--- name: using-product-management description: Use when a Claude is taking **standing ownership** of a software product and driving it end-to-end across many sessions — discovery, strategy, specs, delivery orchestration, and value validation — deciding *what to build, why, for whom,* and *whether it worked*, with continuity, decision provenance, and an authority boundary that escalates anything irreversible or outward-facing to the human owner. Owns the product disciplines: opportunity assessme
tools
Use when designing, implementing, or auditing an MCP (Model Context Protocol) server — tool API design, idempotency under agent retry, structured error envelopes agents can recover from, schema versioning across model drift, transport reliability (stdio / HTTP), output-shape and pagination discipline, and choosing between tools / resources / prompts / sampling. Also use when an MCP server's tools confuse agents, return unstructured errors, deadlock under concurrent calls, double-execute under retry, or lose state across reconnects. Do not use for general REST/GraphQL API design (use `/web-backend`), for client-side prompt engineering or tool-loop design (use `/llm-specialist`), for general in-process plugin architecture (use `/system-architect`), or for cryptographic-provenance audit trails (use `/audit-pipelines`).
development
Use when running **SQLite or DuckDB inside an application process** as the durable store — not as a development convenience but as the production database. Use when scaling an SQLite layer that worked at low concurrency and is now hitting SQLITE_BUSY, WAL bloat, lock contention, schema-migration ceremony, or correctness gaps under multi-process writers. Use when introducing DuckDB as an OLAP complement to an OLTP SQLite store, or when picking between the two for a new component. Pairs with `/web-backend` (the API surface above the DB) and `/audit-pipelines` (when the DB is also the audit trail). Do not load for server databases (Postgres, MySQL), key-value stores, or ORM choice in isolation.