ワンクリックで
plan-review
Use when a plan has been written and before execution begins
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when a plan has been written and before execution begins
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use when the user wants to view, change, or reset their persistent preferences, or when triggered by "/caliper-settings", "my settings", "change defaults".
Use when asked to audit a codebase, find DRY/YAGNI/complexity issues repo-wide, or perform periodic code quality review
Use when a design doc has been written and before draft-plan is dispatched
Use when creating features, building components, adding functionality, or modifying behavior - before any creative or implementation work begins
Use when you have a spec or requirements for a multi-step task, before touching code
Use when implementing a small or medium change directly in the current session, without a multi-task plan — via design's fast-path routing, or direct invocation ("/implement", "just implement this", "quick fix").
| name | plan-review |
| description | Use when a plan has been written and before execution begins |
Dispatch a reviewer subagent to validate a plan before execution. Catches issues that are cheap to fix in a plan but expensive to fix mid-implementation.
Core principle: Plans are hypotheses. Validate before running the experiment.
Skip for: Single-task plans, hotfix plans, trivially small plans (no design doc needed).
Two-stage review:
Stage 1: Structural validation — Run validate-plan --schema {PLAN_DIR}/plan.json. If errors, report them and stop. No point dispatching LLM reviewer for structurally invalid plans.
Stage 2: Prose + design review — If schema passes, dispatch reviewer subagent.
Gather inputs:
$MAIN_ROOT/.claude/claude-caliper/YYYY-MM-DD-topic/ (containing plan.json; main repo, not worktree)Dispatch with model: "$PLAN_REVIEWER_MODEL" — consistency checking requires strong reasoning.
Use subagent_type: "claude-caliper:plan-reviewer". The agent's static behavior (7-point checklist, output format) is in the agent definition. The invocation prompt contains only the plan dir, design doc path, and codebase root.
See: reviewer-prompt.md
Handled by validate-plan --schema:
| Category | Example | Why Planners Miss It |
|---|---|---|
| Artifact drift | Creates utils.ts, imports from helpers.ts | Renamed during planning without updating refs |
| Design mismatch | Design says REST, plan implements GraphQL | Diverged during decomposition |
| Missing tasks | Design specifies auth middleware, no auth task | Lost during decomposition |
| Ambiguous intent | intent says "modify the handler" without naming a file, so a fresh Claude reading the codebase can't tell which | Planner has context the executor won't |
| Missing fields | No verification command or measurable done_when | Assumes executor will figure it out |
| Avoid without reason | avoid entry states a rule but the why is empty or non-explanatory | Assumes executor will infer the constraint |
| Phase boundary issues | 9 tasks in single phase, no verification gates | Didn't apply complexity gates |
| Orphaned criteria | Design says "users can X" but no task's done_when covers it | Lost during decomposition |
| Mock-stacking at cross-task seam | Two tasks both mock auth_middleware; no task exercises the real middleware | LLM judgment from task intent, not schema |
Plans carry intent and avoid, not pasted code. The reviewer's job is to confirm each task's intent is unambiguous for a fresh Claude reading the codebase, and that every design criterion is covered — this intent-quality check is the compensating control for the retired zero-context per-task ambiguity pass.
intent and the codebase (LLM focus)intent names concrete artifacts (paths, symbols) so a fresh Claude with zero conversation history can execute it against the codebase; done_when is measurable; verification is runnable (LLM focus)avoid entry pairs a rule with a why that explains the constraint (schema checks both fields are non-empty; LLM checks the why actually reasons, not just "don't do X") (LLM focus)done_when field (skip if no design doc) (LLM focus)depends_on link, at least one task's done_when/verification exercises the seam without mocking the producer (skip if no Test Strategy section and no cross-task deps) (LLM focus)For multi-phase plans:
Reviewer produces:
Pass: Zero issues, or all issues fixed and confirmed clean Fail: Return to draft-plan to fix, then re-run plan-review
Pass 1 is discovery. The lead fixes all findings and verifies each fix inline (grep/read). A delta pass 2 is dispatched only if pass 1 found critical or high issues; after pass 2, any remaining findings are fixed inline and the loop records pass — never a third dispatch. Residual leakage is caught by the next downstream gate (implementation-review), not by additional same-gate passes.
Pass 1: Dispatch the reviewer, extract its json review-summary block, display all findings, then triage (fix vs dismiss with reasoning) and apply every fix in a single editing pass, verifying each inline (grep/read). If zero critical/high issues were found: done.
Pass 2 (only if pass 1 found critical or high): Re-dispatch a fresh reviewer of the same type with the same full scope, appending a ## Prior Issues section listing the pass-1 issues each enriched with its resolution (fixed/dismissed, with dismissal reason when dismissed). Repeat triage + inline fix/verify for any newly reported issues, then record pass. Every finding is still fixed or dismissed with a stated reason — the cap limits reviewer dispatches, not fixes; pass-2 fixes are verified inline rather than by a third reviewer.
Auto-dispatched by: draft-plan (after plan saved)
Leads to: orchestrate (once review passes)