/flow-next-plan-review
Carmack-level plan review via RepoPrompt or Codex. Use when reviewing Flow specs or design docs. Triggers on /flow-next:plan-review.
$ npx -y skills add gmickel/flow-next --skill flow-next-plan-review --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/flow-next-plan-review
Context preview
The summary Claude sees to decide when to auto-load this skill.
Carmack-level plan review via RepoPrompt or Codex. Use when reviewing Flow specs or design docs. Triggers on /flow-next:plan-review.
SKILL.md
flow-next-plan-review.SKILL.mdname: flow-next-plan-review
description: Carmack-level plan review via RepoPrompt or Codex. Use when reviewing Flow specs or design docs. Triggers on /flow-next:plan-review.
user-invocable: false
Plan Review Mode
**Workflow is backend-split. Read [workflow.md](workflow.md) for common orchestration and backend resolution, then read ONLY the file matching the selected review backend:**
- `BACKEND=codex` → [workflow-codex.md](workflow-codex.md)
- `BACKEND=copilot` → [workflow-copilot.md](workflow-copilot.md)
- `BACKEND=cursor` → [workflow-cursor.md](workflow-cursor.md)
- `BACKEND=host` → [workflow-host.md](workflow-host.md)
- `BACKEND=rp` → [workflow-rp.md](workflow-rp.md)
Do not load the other backend files. `BACKEND=none` and explicit `--review=export` terminate from the common workflow without loading any backend file.
Conduct a John Carmack-level review of spec plans.
**Role**: Code Review Coordinator (NOT the reviewer) **Backends** (branch on the common workflow's `RP_ELIGIBLE` probe):
- When `RP_ELIGIBLE=1`: RepoPrompt (rp), Codex CLI (codex), GitHub Copilot CLI
(copilot), Cursor CLI (cursor), or host-native (`host`)
- When `RP_ELIGIBLE=0`: Codex CLI, GitHub Copilot CLI, Cursor CLI, or
host-native — rp remains accepted explicitly but errors at runtime
Preamble — execute common routing exactly once
Read and execute [workflow.md](workflow.md) Phase 0 once. It defines `$FLOWCTL`, probes RepoPrompt eligibility, parses an explicit `--review` mode before configured-backend resolution, resolves `SPEC_ID`, and handles `ASK`, `none`, and `export`. Never invoke `flowctl review-backend` a second time.
When `RP_ELIGIBLE=0`, never steer the user toward rp. An explicit `--review=rp`, `FLOW_REVIEW_BACKEND=rp`, or `review.backend=rp` remains valid input and fails through the rp runtime check.
Backend Selection
Priority (first match wins):
1. `--review=rp|codex|copilot|cursor|host|export|none` 2. Per-spec `default_review` 3. `FLOW_REVIEW_BACKEND` 4. `.flow/config.json` `review.backend` 5. Error — no auto-detection
Configured values accept `backend[:model[:effort]]`; `cursor` takes a model but no effort, and `host`, `rp`, and `none` are bare-only. `export` is a one-off mode, never a configured backend.
Common Critical Rules
- The coordinator never self-declares a verdict.
- Stick to one backend for the full review/fix cycle.
- If `REVIEW_RECEIPT_PATH` is set, every review verdict writes a receipt.
- Any backend/transport failure outputs `<promise>RETRY</promise>` and stops;
never silently fall back to a different backend. Autonomous/Ralph callers receive the same retry terminal and decide whether to re-enter. A no-verdict dispatch is refunded and recorded by flowctl; never manually reset the review counter for a transport failure. Exit 5 / `TRANSPORT_UNHEALTHY` means stop automatic retries and repair the backend.
- `none` skips only when selected explicitly or resolved from configuration.
- `export` emits the existing external-review artifact and terminal output,
then returns; it never loads configured-backend guidance, writes a review receipt/status, or enters the fix loop.
- **Foreground rule:** run every `flowctl <backend> plan-review` call as one **blocking foreground** Bash call with a generous timeout (10 minutes; verdicts typically land in 1–7) — never `run_in_background` + monitor/poll (a background completion does not reliably resume a subagent context). Host-backend subagent dispatches are also blocking.
Backend-specific invocation, availability, model, session-continuity, receipt, and anti-pattern rules live only in the selected backend file.
Input
Arguments: $ARGUMENTS
Format: `<flow-spec-id> [focus areas] [--review=<mode>]`
Workflow
1. Execute [workflow.md](workflow.md) Phase 0. 2. If it returns for `none` or `export`, stop. Do not read a backend file. 3. Read exactly the selected `workflow-<backend>.md`. 4. Execute one backend dispatch and carry its verdict directly into the shared Fix Loop below. 5. Continue in that loop until its terminal contract is satisfied.
Fix Loop (INTERNAL - do not exit to Ralph)
**CRITICAL: Do NOT ask user for confirmation. Automatically fix ALL valid issues and re-review. Never use AskUserQuestion in this loop.**
`MAJOR_RETHINK` is not a fix-loop input. Surface the reviewer's rationale and stop with `BLOCKED: DESIGN_CONFLICT` (Ralph: `<promise>RETRY</promise>`). Only `NEEDS_WORK` enters the loop.
Fix+re-review cycles are bounded at `${MAX_REVIEW_ITERATIONS:-8}`. The counter is flowctl-owned; never keep an agent-side counter. On cap exhaustion, surface surviving findings and stop (Ralph: `<promise>RETRY</promise>`).
**The cap is enforced deterministically by flowctl:** every dispatch reserves a spec-scoped round before launch. SHIP / NEEDS_WORK / MAJOR_RETHINK consume it; a no-verdict transport failure is durably recorded and refunded. At `${MAX_REVIEW_ITERATIONS:-8}` verdict rounds, flowctl refuses with `ESCALATE:` and exit 4. More than `${MAX_REVIEW_TRANSPORT_FAILURES:-2}` consecutive no-verdict failures stop separately with `TRANSPORT_UNHEALTHY` + exit 5. Callers invoke plan-review once and act on its terminal result. The verdict counter resets only on SHIP or an explicit re-plan, never on an edit, fresh invocation, or transport failure.**
**ANTI-PATTERN:** a delivered verdict is never a transport failure - never re-dispatch or re-frame `NEEDS_WORK` as a backend/sandbox problem to claim a refund. And never widen the reviewer sandbox: reviewers are read-only by contract, so a sandbox-blocked reviewer means something asked it to mutate the workspace. Fix that instead (Windows resolves via `auto`).
When the verdict is `NEEDS_WORK`:
1. Parse all valid issues from reviewer feedback. 2. Fix the user-edited current spec, never a checkpoint copy:
$FLOWCTL spec set-plan <SPEC_ID> --file - --json <<'EOF'
<updated current spec content>
EOF
3. Sync affected task spe
Read more
name: flow-next-plan-review description: Carmack-level plan review via RepoPrompt or Codex. Use when reviewing Flow specs or design docs. Triggers on /flow-next:plan-review. user-invocable: false
Plan Review Mode
**Workflow is backend-split. Read [workflow.md](workflow.md) for common orchestration and backend resolution, then read ONLY the file matching the selected review backend:**
- `BACKEND=codex` → [workflow-codex.md](workflow-codex.md)
- `BACKEND=copilot` → [workflow-copilot.md](workflow-copilot.md)
- `BACKEND=cursor` → [workflow-cursor.md](workflow-cursor.md)
- `BACKEND=host` → [workflow-host.md](workflow-host.md)
- `BACKEND=rp` → [workflow-rp.md](workflow-rp.md)
Do not load the other backend files. `BACKEND=none` and explicit `--review=export` terminate from the common workflow without loading any backend file.
Conduct a John Carmack-level review of spec plans.
**Role**: Code Review Coordinator (NOT the reviewer) **Backends** (branch on the common workflow's `RP_ELIGIBLE` probe):
- When `RP_ELIGIBLE=1`: RepoPrompt (rp), Codex CLI (codex), GitHub Copilot CLI
(copilot), Cursor CLI (cursor), or host-native (`host`)
- When `RP_ELIGIBLE=0`: Codex CLI, GitHub Copilot CLI, Cursor CLI, or
host-native — rp remains accepted explicitly but errors at runtime
Preamble — execute common routing exactly once
Read and execute [workflow.md](workflow.md) Phase 0 once. It defines `$FLOWCTL`, probes RepoPrompt eligibility, parses an explicit `--review` mode before configured-backend resolution, resolves `SPEC_ID`, and handles `ASK`, `none`, and `export`. Never invoke `flowctl review-backend` a second time.
When `RP_ELIGIBLE=0`, never steer the user toward rp. An explicit `--review=rp`, `FLOW_REVIEW_BACKEND=rp`, or `review.backend=rp` remains valid input and fails through the rp runtime check.
Backend Selection
Priority (first match wins):
1. `--review=rp|codex|copilot|cursor|host|export|none` 2. Per-spec `default_review` 3. `FLOW_REVIEW_BACKEND` 4. `.flow/config.json` `review.backend` 5. Error — no auto-detection
Configured values accept `backend[:model[:effort]]`; `cursor` takes a model but no effort, and `host`, `rp`, and `none` are bare-only. `export` is a one-off mode, never a configured backend.
Common Critical Rules
- The coordinator never self-declares a verdict.
- Stick to one backend for the full review/fix cycle.
- If `REVIEW_RECEIPT_PATH` is set, every review verdict writes a receipt.
- Any backend/transport failure outputs `<promise>RETRY</promise>` and stops;
never silently fall back to a different backend. Autonomous/Ralph callers receive the same retry terminal and decide whether to re-enter. A no-verdict dispatch is refunded and recorded by flowctl; never manually reset the review counter for a transport failure. Exit 5 / `TRANSPORT_UNHEALTHY` means stop automatic retries and repair the backend.
- `none` skips only when selected explicitly or resolved from configuration.
- `export` emits the existing external-review artifact and terminal output,
then returns; it never loads configured-backend guidance, writes a review receipt/status, or enters the fix loop.
- **Foreground rule:** run every `flowctl <backend> plan-review` call as one **blocking foreground** Bash call with a generous timeout (10 minutes; verdicts typically land in 1–7) — never `run_in_background` + monitor/poll (a background completion does not reliably resume a subagent context). Host-backend subagent dispatches are also blocking.
Backend-specific invocation, availability, model, session-continuity, receipt, and anti-pattern rules live only in the selected backend file.
Input
Arguments: $ARGUMENTS
Format: `<flow-spec-id> [focus areas] [--review=<mode>]`
Workflow
1. Execute [workflow.md](workflow.md) Phase 0. 2. If it returns for `none` or `export`, stop. Do not read a backend file. 3. Read exactly the selected `workflow-<backend>.md`. 4. Execute one backend dispatch and carry its verdict directly into the shared Fix Loop below. 5. Continue in that loop until its terminal contract is satisfied.
Fix Loop (INTERNAL - do not exit to Ralph)
**CRITICAL: Do NOT ask user for confirmation. Automatically fix ALL valid issues and re-review. Never use AskUserQuestion in this loop.**
`MAJOR_RETHINK` is not a fix-loop input. Surface the reviewer's rationale and stop with `BLOCKED: DESIGN_CONFLICT` (Ralph: `<promise>RETRY</promise>`). Only `NEEDS_WORK` enters the loop.
Fix+re-review cycles are bounded at `${MAX_REVIEW_ITERATIONS:-8}`. The counter is flowctl-owned; never keep an agent-side counter. On cap exhaustion, surface surviving findings and stop (Ralph: `<promise>RETRY</promise>`).
**The cap is enforced deterministically by flowctl:** every dispatch reserves a spec-scoped round before launch. SHIP / NEEDS_WORK / MAJOR_RETHINK consume it; a no-verdict transport failure is durably recorded and refunded. At `${MAX_REVIEW_ITERATIONS:-8}` verdict rounds, flowctl refuses with `ESCALATE:` and exit 4. More than `${MAX_REVIEW_TRANSPORT_FAILURES:-2}` consecutive no-verdict failures stop separately with `TRANSPORT_UNHEALTHY` + exit 5. Callers invoke plan-review once and act on its terminal result. The verdict counter resets only on SHIP or an explicit re-plan, never on an edit, fresh invocation, or transport failure.**
**ANTI-PATTERN:** a delivered verdict is never a transport failure - never re-dispatch or re-frame `NEEDS_WORK` as a backend/sandbox problem to claim a refund. And never widen the reviewer sandbox: reviewers are read-only by contract, so a sandbox-blocked reviewer means something asked it to mutate the workspace. Fix that instead (Windows resolves via `auto`).
When the verdict is `NEEDS_WORK`:
1. Parse all valid issues from reviewer feedback. 2. Fix the user-edited current spec, never a checkpoint copy:
$FLOWCTL spec set-plan <SPEC_ID> --file - --json <<'EOF' <updated current spec content> EOF
3. Sync affected task spe
Showing the first part of this file.
Repeatable agentic engineering. The workflow layer that turns AI coding agents into a disciplined factory: durable specs, fresh-context workers, adversarial cross-model reviews, receipts. Everything in your repo, zero dependencies. Claude Code · Codex · Cursor · Droid.
Other skills on flow-next.
- /flow-next-audit
Audit .flow/memory/ entries against current code and keep, update, consolidate, replace, delete, or harden each. Use when asked to audit memory or graduate a recurring lesson into a gate.
Open skill - /flow-next-capture
Synthesize the current conversation into a flow-next spec with read-back gating. Use when asked to capture this as a spec.
Open skill - /flow-next-chart
Decision-map discovery for one oversized unclear idea before capture. Resolve one decision per invocation, brief for capture. Use when asked to chart an idea or work a chart decision.
Open skill - /flow-next-deps
Show spec dependency graph and execution order. Use when asking 'what's blocking what', 'execution order', 'dependency graph', 'what order should specs run', 'critical path', 'which specs can run in parallel'.
Open skill - /flow-next-drive
Drive any UI surface like a real user - a web app, a Chromium-backed desktop app (Electron / WebView2, reached over CDP), or a genuinely native app (macOS AppKit/SwiftUI, or a non-CDP webview) reached via the Cua Driver / Computer Use. Detects the surface, picks the best
Open skill - /flow-next-export-context
Export RepoPrompt context to a markdown file for review with an external LLM (ChatGPT, Claude web, etc.). Use when you want Carmack-level review but prefer an external model. Triggers on "export context", "export for external review", "export plan for ChatGPT", "export impl
Open skill

