Publishing fails unless all of these hold:
- Exactly one
startstep exists and has an outgoing transition. - At least one
endstep exists. - Every transition's
sourceStepIdandtargetStepIdreference an existing step. - No orphans: every non-start step is the target of at least one transition.
- Every
instructionstep has a non-emptyprompt. - Every
shellstep has a non-emptycommand. - Every
decisionstep has at least one branch. - Every
reviewstep has a non-emptypromptand outgoing transitions labelledAPPROVEDandREVISE. - Every
sub_workflowandexecute_task_listtarget exists and is published — publish children before parents. - No
sub_workflowrecursion cycles.
Not validated — enforced at runtime
These fail the instance when reached, not the publish. Check them yourself:
get_next_taskhas bothHAS_TASKandEMPTYlabelled transitions.- Decision branch
transitionIds point at real outgoing transitions. - Step names are unique and contain no dots.
- Template paths match the producing step's name exactly.
Pre-publish checklist
- Every step reachable; every step except
decision,get_next_taskandreviewhas exactly one outgoing transition. - Every decision: branches map to real transitions, one
isDefault,allowSummaryFallback: false, the prompt lists the allowed labels. - Every prompt ends with an explicit
outputcontract. - Every loop terminates.
- Children published before parents.