Flow graph
By default a design runs its phases top to bottom. The flow graph is where you shape that · branch on success or failure, run phases in parallel, loop, and wire external events straight into a phase.
#Flow and List
The Phases section has two tabs over the same working draft:
- List · the phase inventory and prompt editor.
- Flow · the canvas where you wire phases together.
An empty graph runs linearly by phase order. The moment you draw an edge, order follows the wiring.
#Add and connect phases
Add a phase
Use Add phase on the canvas toolbar. A new phase drops onto the canvas unconnected.
Connect it
Every node has two out-handles · a green success handle and a red failure handle. Drag from a handle onto another phase, or onto the End pill, to draw an edge.
Click a node to open its editor in a side panel; click an edge to open the edge editor. Drag the background to pan, use the toolbar (or the scroll wheel) to zoom, and Tidy to auto-layout the graph.
#Branch
Give a phase more than one outgoing edge and it branches:
- Fan-out · toggle the node between parallel (run every downstream phase) and conditional (a switch · follow the edge whose condition matches).
- Join · where several edges arrive at one phase, choose wait for all or first wins.
- Success vs failure · the green edge is taken when the phase succeeds, the dashed red edge when it fails. Wire a failure lane to handle errors, for example a
Rollbackphase.
Label an edge in the edge editor to record the condition it represents, for example exploitable vs not exploitable.
#Loop
Two ways to repeat work:
- Repeat one phase · set the phase’s max iterations in Advanced settings (1 – 50). The node shows a
↻ N×chip. - Loop back · drag a later node’s edge onto an earlier node. AgentSDE turns it into a capped loop rather than rejecting it · the edge shows a
↺ ≤Nbadge and defaults to 3 passes, after which the flow continues forward. Set the cap in the edge editor.
Non-loop flow stays forward-only · the canvas will not let you create an uncapped cycle.
#Splice and swap
- Splice · drop an unconnected phase onto an edge and it inserts between the two ends (
A → BbecomesA → node → B). - Swap · drop a phase onto another phase to reorder them.
#The edge editor
Click any edge to set:
- its condition label,
- whether it fires on success or failure,
- for a loop-back edge, the max iterations cap.
You can also straighten or remove the edge from here.
#Wire in triggers
A phase does not have to wait for the phase before it · a trigger can start it from an outside event or from another phase’s lifecycle.
Two kinds:
- External event · from a connected integration. GitHub, Jira, Slack and CI events are available · for example
Pull request merged,Review requests changes, orBuild failed. Add filters as plain field = value rows the event offers · an unset field means “any”, and no filters means “every time”. - Lifecycle hook · fire relative to another phase · before it starts, after it completes, or when it is blocked.
Open the trigger picker
Add a trigger from the canvas toolbar, or from the List tab’s “Starts on” row. The picker groups events by integration, plus a Phase lifecycle group for hooks.
Pick an event
Only providers you have actually connected are selectable · the rest are listed but locked, with a link to Settings → Integrations. A trigger never asks for a repository or branch · those come from the agent’s scope and environment.
A phase whose only inbound wires are triggers is event-started · it sits outside the main sequence and is marked accordingly. Use this for “reply when a review requests changes” or “fix the build when CI fails” without bolting those onto the linear pipeline.
You shape the graph on a draft version. Archived versions render read-only · fork one to change it.