flow.yaml is the package contract for a delivery process. Schema version 1
defines metadata, compatibility, nodes, transitions, inputs, outputs, gates,
and bounded rework.
Shape
done is a reserved transition target, not
a node type. This example uses the resolved default runner and only a whitespace
check; add your project’s actual tests and required evidence before using it
for delivery. The reviewer inspects a failed check before requesting rework.
The current engine is 3.8.0. Keep the minimum at the earliest version that
supports the Flow’s contracts. Flows that rely on rendering a consensus draft
prompt with Run context before fan-out should declare engine_min: 3.8.0.
Participant output is inserted as data into verifier and synthesizer prompts;
template-like text in that output is not expanded again.
Authoring rules
- Give every node a stable unique identifier.
- Declare all transition targets.
- Bound every rework loop.
- Keep runner selection explicit or inherit it intentionally.
- Declare required inputs and evidence rather than relying on prompt prose.
- Use setup scripts only in packages whose executable content is trusted.
- Raise
compat.engine_minonly when the Flow needs the newer contract.