run marks a run step; prompt (or model, thinking, or provider) marks an agent step. Mixing keys from both kinds on the same step is a validation error.
Run step
A run step executes a shell command on the job’s runner. It has access to environment variables from the workflow, job, and step scopes.The shell command to execute. Must be at least one character.
Displayed in the dashboard log. Display-only — a step referenced by
restart_from needs a key:, not a name:.Environment variables for this step. Merged with job-level and workflow-level env; step-level values take the highest precedence. Keys must follow POSIX-style naming (
[A-Za-z_][A-Za-z0-9_]*). Values may be strings, numbers, or booleans.Optional stable identifier for this step. Useful for referencing the step programmatically. Must be at least one character.
Gate and retry configuration evaluated after the step completes. See Gate block below.
Agent step
An agent step invokes an AI model with a text prompt. The model reads the repository context and executes the instruction. The recommended pattern is an agent step that produces a change, followed by a run step whose gate judges the result.The instruction given to the model. Must be at least one character. Required on any step that also sets
model, thinking, or provider.Model ID to use (e.g.,
claude-opus-4-8, gpt-5.5-pro). Uses the workspace default if omitted. Model catalog checks are performed at runtime, not at parse time.Provider ID for the model (e.g.,
anthropic, openai, deepseek). Pairing provider with model lets a step target a specific non-default provider/model combination. Uses the workspace default if omitted.Reasoning depth for the model. Controls how many tokens the model spends on internal reasoning before producing a response. Accepted values:
off, minimal, low, medium, high, xhigh. Default: high.Optional step name, displayed in the dashboard log.
Optional stable identifier for this step. Must be at least one character.
Gate and retry configuration. See Gate block below.
Gate block
A gate block is optional on both run steps and agent steps. It must contain at least one ofsuccess_if or on_failure.
A CEL expression evaluated after the step completes. The variable
exit_code (integer) is available. Example: exit_code == 0. When omitted, the step’s default exit behaviour applies.The
key of an earlier step in the same job to restart from when this step fails. The referenced step must have a key: and appear before the current step in the job’s step list (name: is display-only and cannot be referenced).A message to surface in the run log when this step is considered failed.
Constraints table
The following table summarises which fields are valid on each step kind. Mixing fields across kinds on the same step is a validation error.| Field | Run step | Agent step |
|---|---|---|
run | ✅ Required | ❌ Not allowed |
prompt | ❌ Not allowed | ✅ Required |
model | ❌ Not allowed | ✅ Optional |
thinking | ❌ Not allowed | ✅ Optional |
provider | ❌ Not allowed | ✅ Optional |
env | ✅ Optional | ❌ Not allowed |
name | ✅ Optional | ✅ Optional |
key | ✅ Optional | ✅ Optional |
gate | ✅ Optional | ✅ Optional |