$npx -y skills add tobihagemann/turbo --skill review-planReview a planning artifact (plan, shells, or spec) by running internal and peer reviews in parallel and returning combined findings. Use when the user asks to \"review my plan\", \"review my shells\", \"review my spec\", \"check my plan\", \"check my shells\", \"check my spec\",
| 1 | # Review Plan |
| 2 | |
| 3 | Review a planning artifact against type-specific criteria. Runs internal review and `/peer-review` in parallel by default. Returns combined structured findings. |
| 4 | |
| 5 | ## Step 1: Determine Artifact Type and Resolve |
| 6 | |
| 7 | ### Determine Artifact Type |
| 8 | |
| 9 | 1. **Explicit argument** — If the user specified a type (e.g., "review shells", "review spec"), use it. No argument defaults to **plan**. |
| 10 | 2. **Conversation context** — If artifact text or a path is already in context, infer the type. |
| 11 | 3. **Auto-detect** — Check `.turbo/` for existing artifacts. If multiple types exist, pick the one with the most recently modified file. |
| 12 | |
| 13 | ### Resolve the Artifact |
| 14 | |
| 15 | #### Plan (default) |
| 16 | |
| 17 | 1. **Plan text in conversation** — use it |
| 18 | 2. **Explicit path** — read it |
| 19 | 3. **Explicit slug** — resolve to `.turbo/plans/<slug>.md` |
| 20 | 4. **Single file** — Glob `.turbo/plans/*.md`. If exactly one file exists, use it |
| 21 | 5. **Most recent** — most recently modified file |
| 22 | 6. **Legacy fallback** — `.turbo/plan.md` if `.turbo/plans/` does not exist |
| 23 | 7. **Nothing found** — stop and state that no artifact was found to review |
| 24 | |
| 25 | #### Shells |
| 26 | |
| 27 | 1. **Shell text in conversation** — use it |
| 28 | 2. **Explicit spec slug** — Glob `.turbo/shells/<slug>-*.md` |
| 29 | 3. **Explicit spec path** — derive slug from filename, glob as above |
| 30 | 4. **Single spec** — Glob `.turbo/specs/*.md`. If exactly one, derive slug and glob for shells |
| 31 | 5. **Most recent spec** — most recently modified spec, derive slug and glob |
| 32 | 6. **Nothing found** — stop and state that no artifact was found to review |
| 33 | |
| 34 | For shells, read each shell file and parse its YAML frontmatter (`spec`, `depends_on`). Read the source spec from the `spec` field. |
| 35 | |
| 36 | #### Spec |
| 37 | |
| 38 | 1. **Spec text in conversation** — use it |
| 39 | 2. **Explicit path** — read it |
| 40 | 3. **Explicit slug** — resolve to `.turbo/specs/<slug>.md` |
| 41 | 4. **Single file** — Glob `.turbo/specs/*.md`. If exactly one, use it |
| 42 | 5. **Most recent** — most recently modified |
| 43 | 6. **Legacy fallback** — `.turbo/spec.md` if `.turbo/specs/` does not exist |
| 44 | 7. **Nothing found** — stop and state that no artifact was found to review |
| 45 | |
| 46 | If multiple candidates exist, pick the most recently modified. |
| 47 | |
| 48 | ## Step 2: Run Reviews in Parallel |
| 49 | |
| 50 | Read the reference file for the resolved type: |
| 51 | |
| 52 | - **Plan** — [references/plan-review.md](references/plan-review.md) |
| 53 | - **Shells** — [references/shells-review.md](references/shells-review.md) |
| 54 | - **Spec** — [references/spec-review.md](references/spec-review.md) |
| 55 | |
| 56 | Skip peer review when the caller asked (e.g., "without peer review", "no peer", "internal only"). For shells, the internal review focuses on structural wiring and skips the project context read. |
| 57 | |
| 58 | Use the Agent tool to launch all agents below in a single assistant message so they run concurrently. Run them in the foreground so all their results return in this turn. Each Agent call uses `model: "opus"`. That is two Agent tool calls when peer review is active (one internal + one peer), or one Agent tool call when peer review is skipped. Every agent's prompt must direct it to treat the shared working tree and its git index as read-only and to assess findings by reading and reasoning. For a check that genuinely requires mutating code (such as testing whether a finding holds), the agent works in an isolated `git worktree` it discards afterward. |
| 59 | |
| 60 | - **Internal Agent:** Pass the artifact text and the reference file's content; the subagent reads project context (CLAUDE.md, relevant codebase files) before applying criteria, then returns findings in the output format below. |
| 61 | - **Peer review Agent (unless skipping):** Launch an Agent tool call whose prompt instructs the subagent to invoke `/peer-review` via the Skill tool with a request describing: (a) the artifact under review; (b) the criteria live in `~/.claude/skills/review-plan/references/<type>-review.md` for the resolved type from Step 1 — the reviewer should read that file directly and use its priority scale; (c) the Overall Verdict should use the `Readiness: <ready | needs revision>` label. The prompt must also state explicitly that the subagent's final assistant message must contain the verbatim findings text `/peer-review` produced. |
| 62 | |
| 63 | Aggregate findings with attribution (reviewer: "internal" or "peer"). Present them in the output format below. |
| 64 | |
| 65 | Then use the TaskList tool and proceed to any remaining task. |
| 66 | |
| 67 | ## Output Format |
| 68 | |
| 69 | Format each finding as: |
| 70 | |
| 71 | ``` |
| 72 | ### [P<N>] <title (imperative, ≤80 chars)> |
| 73 | |
| 74 | **Section:** <plan section, shell number(s), or spec section> |
| 75 | **Reviewer:** <internal | peer> |
| 76 | |
| 77 | <one paragraph explaining the issue and its impact> |
| 78 | ``` |
| 79 | |
| 80 | After all findings |