The orchestrator is code, not an agent — a loop that walks the stages
in order and stops at the first boundary whose artifact failed its
check. Write first_blocked(stages):
- Walk
stagesin order. - Return the
nameof the first stage whoseartifact_okis False — that's where the pipeline halts and the producer retries. - If every artifact passed, return
"ship".
Two pipelines run. Expected output:
review
ship