Skip to content

Pipeline step kinds

The entry point of a pipeline. Every pipeline has exactly one trigger step.

Configuration: none by default. Accepts manual runs and event/schedule triggers.

Dispatches an agent with a prompt.

Config fieldTypeDescription
agentString?Agent ID (or null to use pipeline input)
promptStringInstruction text. Supports {{inputKey}} placeholders.
modeConversationModeChat, plan, or review
timeoutint?Wall-clock timeout in seconds
retryStepRetryPolicy?Retry configuration
continueOnFailboolWhether downstream steps proceed on failure
outputKeyString?Key for writing output to state
outputSchemaString?JSON Schema for validating output

Runs a shell command.

Config fieldTypeDescription
scriptStringShell command to execute
workingDirString?Working directory
envMap<String, String>?Additional environment variables
timeoutint?Wall-clock timeout in seconds
retryStepRetryPolicy?Retry configuration
continueOnFailboolWhether downstream steps proceed on failure

Fans out PR review to matched reviewer agents.

Config fieldTypeDescription
prUrlStringPR URL (can reference {{inputKey}})
reviewerRolesList<String>Roles to dispatch (e.g. [“reviewer”, “security”])

Routes to different downstream steps based on a condition.

Config fieldTypeDescription
conditionStringExpression that evaluates to a route key
routesMap<String, String>Route key to downstream step ID

Each outgoing edge from the router has a routeKey. The engine evaluates the condition and follows the matching edge.

Waits for all upstream steps to complete before proceeding.

Configuration: none. The join step implicitly waits for all connected upstream steps.

Use join to synchronize parallel branches before continuing.

Executes another pipeline template as a step.

Config fieldTypeDescription
templateIdStringThe template to execute
inputsMap<String, dynamic>?Inputs to pass to the sub-pipeline

The sub-pipeline runs as a child run with parentPipelineRunId set.

FieldTypeDescription
maxAttemptsintMaximum retry attempts
backoffRetryBackofflinear or exponential
initialDelayMsintInitial delay before first retry

A step body returns a StepResult:

ResultDescription
okSuccess with optional output
routeRouter result — follow a specific edge
suspendUntilEventPause until a domain event arrives
suspendUntilTasksPause until child tasks complete
terminalEnd the pipeline run immediately
failedStep failed with an error

Per-step configuration carried inside the step definition:

  • prompt, script, agentId, teamId — what to execute
  • inputKey, outputKey — state data flow keys
  • outputSchema — JSON Schema for output validation
  • reducer — how to merge parallel branch outputs
  • retryStepRetryPolicy
  • continueOnFail — proceed on failure
  • timeout — wall-clock timeout
  • dispatchMode — conversation mode for agent dispatches
  • extras — arbitrary extra configuration