A Flow is a directed graph in flow.yaml. Each node has one execution model and explicit outcome transitions. Gates run around a node boundary; they are not independent graph nodes.

Prerequisites

  • A local package open in Flow Studio.
  • A non-empty nodes[] graph. Legacy steps[] manifests are not accepted.

Executable node types

Choose by authority, not by presentation. Use check for a deterministic test, judge for an AI interpretation, and human when accountability or missing business context requires a person.

Common node sections

Gate types

Blocking gates prevent the node from finishing. Advisory gates record evidence without stopping traversal. A verdict used by decide becomes routing input; the Flow’s cases determine the next node.

Sessions and runners

Runner-bearing nodes can join a named session or use their own slot. Nodes in one named session share the session’s runner and conversational context. Separate sessions can bind different adapter/model/provider profiles, so a Flow can use a different coding agent for planning, implementation, and verification. Consensus participant and synthesizer slots are also explicit. Every slot is resolved before execution and snapshotted on the Run.

Rework and retry are different

  • retry_policy repeats an ai_coding or cli node after selected transient infrastructure errors. It can restore the node checkpoint first.
  • rework is a graph-level correction loop initiated by a reviewer, verdict, or structured-result mismatch. It can target an earlier node and makes downstream attempts and evidence stale.
  • retry_safe permits operator re-dispatch of a session-less crashed node. Set it only when repeating that node’s side effects is safe.
Bound every automatic loop. Use a human escalation when the Flow cannot make a safe decision after the declared number of attempts.

Evidence, result, and logs

Do not combine these channels:
  • evidence is durable proof used by review and promotion;
  • a structured result is a small value used by later nodes and dynamic routing;
  • stdout and event logs explain execution but are not a typed result contract.
Continue with structured results and Run context for exact transports and template paths.