Pipeline Model
Pipeline definitions are JSON objects validated before insert (src/domain.zig).
Definition Shape
{
"initial": "research",
"states": {
"research": { "agent_role": "researcher" },
"coding": { "agent_role": "coder" },
"review": { "agent_role": "reviewer" },
"done": { "terminal": true }
},
"transitions": [
{ "from": "research", "to": "coding", "trigger": "complete" },
{ "from": "coding", "to": "review", "trigger": "complete", "required_gates": ["tests_passed"] },
{ "from": "review", "to": "done", "trigger": "approve" },
{ "from": "review", "to": "coding", "trigger": "reject" }
]
}
Validation Rules
initialmust be non-empty and present instatesstatesandtransitionsmust be non-empty- each transition
from/tomust reference known states - at least one state must be terminal (
terminal=true) - each non-terminal state must have outgoing transitions
Task Extensions That Affect Execution
POST /tasks accepts:
retry_policy(max_attempts,retry_delay_ms,dead_letter_stage)dependenciesassigned_agent_idandassigned_by
These directly affect claim eligibility and transition behavior.
Transition Guardrails
POST /runs/{id}/transition supports optional optimistic checks:
expected_stageexpected_task_version
Common conflict responses:
required_gates_not_passedexpected_stage_mismatchtask_version_mismatch