Depth and siblings
Steps live at a depth, and steps that share a depth are siblings. Together these define the shape of a workflow and the order the engine runs it in.
Depth
depth is an integer starting at 0. Each depth is a level that runs to completion before
the next begins.
The rules the builder enforces:
- There must be at least one step at depth 0 - the entry point.
- Depths must be contiguous from 0 (no gaps: 0, 1, 2, …).
- Each depth is defined once.
Depth 0 runs a single time. Every deeper level runs on the results produced above it - one run per result, or a single batched run (see batches).
To add a new stage between existing work, use Insert before on the depth that should move down. The builder creates a blank step at that depth and increments that depth and every later depth. Existing steps, schemas, sibling groups, and batch-variable references move together; review the new step's prompt and output schema before saving.
Deleting the final sibling at a depth removes that depth. Every later depth shifts up to keep the sequence contiguous, and batch-variable depth numbers shift with it. References to ordinary output keys from the deleted depth cannot be preserved automatically; the builder marks those references invalid so you can update the affected prompts.
Siblings
Steps at the same depth are siblings. In the builder you'll see them grouped together, sometimes labelled "2 siblings" with a shared schema. Siblings:
- share the same output format and the same multi-output / consume-all behavior,
- run within the same level, and
- execute in their defined order.
Use siblings when you want several distinct prompts to run at the same stage - for example, two different analysis angles on the same target - while producing the same shape of output.

Repeat runs
Separately from depth, a scan's configuration can set repeat_runs to execute every
concrete task more than once. A task is one workflow step running on one specific input.
Its repeats run in order: the first behaves normally, and every later repeat receives only
the earlier output from that exact task—not results from a sibling step or another input.
It is told to append genuinely new results without restating the existing set.
If a later repeat finds nothing new, it returns a normal no-finding stub. Once all repeats of that task finish, their accumulated output feeds the next depth. Terminal findings from all repeats are combined before de-duplication and ranking.
That's the whole workflow model. Next, learn what runs after it in Post-scripts.