lesson 6 of 6 · pipeline boundaries — where one agent's job endspipeline boundaries — where one agent's job endslesson 6 of 6 · pipeline boundaries — where one agent's job endspipeline boundaries — where one agent's job endslesson 6 of 6 · pipeline boundaries — where one agent's job endspipeline boundaries — where one agent's job endslesson 6 of 6 · pipeline boundaries — where one agent's job endspipeline boundaries — where one agent's job endslesson 6 of 6 · pipeline boundaries — where one agent's job endspipeline boundaries — where one agent's job endslesson 6 of 6 · pipeline boundaries — where one agent's job endspipeline boundaries — where one agent's job endslesson 6 of 6 · pipeline boundaries — where one agent's job endspipeline boundaries — where one agent's job endslesson 6 of 6 · pipeline boundaries — where one agent's job endspipeline boundaries — where one agent's job endslesson 6 of 6 · pipeline boundaries — where one agent's job endspipeline boundaries — where one agent's job endslesson 6 of 6 · pipeline boundaries — where one agent's job endspipeline boundaries — where one agent's job endslesson 6 of 6 · pipeline boundaries — where one agent's job endspipeline boundaries — where one agent's job ends
Checkpoint
One last thing before we move on. pass this to mark the lesson done, or skip and keep moving.
Checkpoint. A real boundary has two parts: an artifact and an
acceptance check. A stage missing either one is handing off on vibes.
Write audit_pipeline(stages) that returns a dict:
structured: count of stages where BOTHartifactandcheckare non-empty strings.vibes: list of stage names (pipeline order) where either field is empty — the boundaries you need to fix first.
Expected output:
2
['draft', 'review']