Skip to content

Impl Review

/flow-next:impl-review runs an adversarial code review on the work currently on your branch.

Like /flow-next:plan-review, the host agent coordinates and the actual review comes from RepoPrompt, Codex CLI, or GitHub Copilot CLI. The output is a review receipt that travels with the branch.

Run impl-review on a branch after /flow-next:work has shipped one or more tasks, before /flow-next:make-pr opens the PR. The reviewer sees the diff against base and the spec it implements — code-quality findings surface here; spec-coverage gaps belong to /flow-next:spec-completion-review.

Specifically:

  • After a batch of tasks lands and you want a second model to catch what your own session missed.
  • Before opening a PR for a high-stakes change (auth, migrations, public APIs).
  • When the diff is large enough that the make-pr cognitive-aid body alone won’t surface every concern.

Worker subagents inside /flow-next:work can run impl-review per task via --review=<backend>. Use this skill directly when you want to review the whole branch as a unit instead.

Same priority as plan-review:

  1. --review=rp|codex|copilot|export|none.
  2. FLOW_REVIEW_BACKEND env var.
  3. .flow/config.jsonreview.backend.
  4. Hard error if nothing is configured.

Per-task backend overrides are set with flowctl task set-backend.

Native Windows works. run_copilot_exec delivers the prompt via stdin on Windows (subprocess.run(input=prompt, ...)), sidestepping the CreateProcessW 32,767-char argv cap that broke the -p path for spec-sized prompts in 1.1.8 and earlier. Session continuity is tracked via a touch marker because stdin-mode --resume is resume-only (unlike -p mode’s create-or-resume). Verified by a real-subprocess Windows CI smoke. Upstream tracking github/copilot-cli#3398 — once a first-class --prompt-file flag lands there, both POSIX and Windows paths will converge.

  • Surface bugs, race conditions, and security issues.
  • Flag code that contradicts the spec or the repo’s existing conventions.
  • Distinguish nits from blockers; the verdict is binary (SHIP / NEEDS_WORK) with itemized findings.

Impl-review does not verify that every acceptance criterion in the spec is satisfied — that is a separate question answered by /flow-next:spec-completion-review. A clean impl-review on incomplete work is possible and expected.

Every run writes to .flow/review-receipts/<branch>.json. The receipt records the verdict, findings, file references, and the backend that produced it. /flow-next:make-pr reads these receipts when assembling the PR body so the reviewer’s findings are visible upstream.

The fix → review loop continues until the backend returns SHIP or the user stops. Re-reviews stay in the same session so the reviewer sees the deltas, not the full diff again.

  • Not a spec-completion check — that’s /flow-next:spec-completion-review. Impl-review can pass code that does not actually satisfy the spec; completion-review is the gate that catches that.
  • Not a CI substitute. The reviewer reads code; CI runs tests. Both matter.
Terminal window
/flow-next:spec-completion-review <spec-id>
/flow-next:make-pr <spec-id>