Coding workflows
The Ship a feature template expresses the old handoff chain as one inspectable, editable workflow with explicit governance.
Template graph
Label trigger or Run button
↓
Refine
↓
Develop ←────────────┐
↓ │
Review ── flag ──────┘ retry 2
│ │
│ pass └─ exhausted → Announce
↓
Approve
↓
Merge ── error → Develop
↓
AnnounceWhat each step owns
Refine
Turn the triggering ticket into a developer-ready problem statement, constraints, and acceptance criteria.
Develop
Select an enabled developer-type agent with capacity, work in the workflow repo, and open a PR.
Review
Read the actual diff and discussion, compare it with the ticket and repo rules, then pass or flag.
Approve
Present the governed evidence to a person and wait for a decision.
Merge
Merge the approved PR. Conflicts or failed preconditions can route back to Develop.
Announce
Notify the configured recipients with the final result or exhausted-retry summary.
Configure it
- 1. Choose Ship a feature from the template gallery.
- 2. Select the full
owner/reporepository. - 3. Bind Refine, Develop, and Review to appropriate agent types.
- 4. Add approval and notification recipients.
- 5. Select Manual while testing, then switch to a backlog label when ready.
- 6. Confirm the review flag and merge error routes return to Develop with bounded retries.
How code suspension works
Develop does not wait synchronously for a long agent process. Fleet dispatches the selected coding agent exactly once and records the run as awaiting_code. The agent's PR carries a deterministic run/step marker. When Fleet observes that PR, it records the URL, branch, and head commit, requeues the run, and feeds the real diff into Review.
Why this replaced subscriptions
The entire delivery path is visible before it runs. Review routing, retry limits, approval, merge, and exhaustion behavior live in one definition and one run history. Adding a label starts that definition; it does not rely on a hidden sequence of independently configured agent subscriptions.