| name | flow |
| description | Run /research → /prep → /audit → /polish → /ship sequentially; review folds into /ship as the PR-review pass. Short-circuit on any non-ok status. |
| argument-hint | <task-slug> [--auto-accept=<stage>[,<stage>...]] |
| user-invocable | true |
| disable-model-invocation | true |
/flow
Canonical algorithm
- Run
/research → /prep → /audit → /polish → /ship sequentially. The PR-review pass is folded into /ship (it reads the remote review comments, addresses feedback by appending waves to the current iter, then bundles iter + phase close in the final pre-merge commit per the iter-phase-close-timing rule in AGENTS.md).
- Inter-stage gate (default). After each step returns
status=ok, check flow.auto_accept.<stage> (via uv run eawf config get flow.auto_accept.<stage>). When false (the default) and the stage was not listed in --auto-accept, ask the operator via AskUserQuestion whether to proceed — options: proceed / skip-next / stop. When true, advance without a prompt.
- On any non-
ok status (blocked, needs_user, failed, partial), short-circuit with the failing step's repair commands.
Pre-flight checklist
Decision surfaces
/flow is a long-running pipeline. Every operator-facing decision point — inter-stage gates, "abandon vs retry on failed", "merge order on needs_user" — MUST be raised through AskUserQuestion so the run stays unstuck without dropping the operator into free-text. Per-step skills already follow this rule; the flow merely propagates their needs_user envelopes verbatim.
Output contract
Skill envelope whose body accumulates per-step envelopes plus the inter-stage gate decisions. Status is ok when every step passed (after any auto-accept or operator confirm), otherwise the first non-ok step's status is propagated.