Auto-deliver mode
Auto-deliver is the hands-off loop: the platform picks the next eligible ticket, generates its details, implements and validates it, lands it, and moves on — until the milestone is complete. You review once per milestone, not once per ticket.
Starting, pausing, resuming
The controls live in the Board header. Start auto-deliver shows a confirmation explaining what you're opting into, then begins with the next eligible ticket (or adopts one already running). A live status pill shows the current ticket and milestone progress.
- Pause lets the in-flight ticket finish completely — through validation and landing — but starts nothing new. Resume continues from wherever the queue stands.
- Ticket order is milestone order, then ticket number, honoring dependencies — one ticket in flight at a time.
Milestone branches — one PR per milestone
While auto-deliver is on, tickets don't open individual pull requests. Instead, every ticket in a milestone lands as a commit on a shared milestone branch. Each ticket still passes the full unit-test gate before it may land, and each ticket's implementation is grounded in the branch's current state — so ticket #7 builds on what tickets #1–6 already delivered.
When the milestone's last ticket lands:
- An integrated test pass runs against the whole branch: the full unit suite plus the end-to-end stage (the entire application stack brought up with docker compose, exercised by real E2E tests). Failures are repaired on the same branch automatically.
- The milestone pull request opens, listing every delivered ticket with the test evidence.
- Auto-deliver pauses — the PR is yours. Review it, run the app, request changes or merge. The platform never merges a milestone PR itself.
- Once merged, go to the Milestones page and click Approve — see the next section for what that actually does.
Approving a milestone: a gated review, not a stamp
The Approve button stays greyed out until every ticket in the milestone is Done. Once it's clickable, clicking it doesn't approve immediately — it runs a chain of checks:
- If the milestone's pull request is still open, you get a popup asking you to merge it first, with a link straight to the PR. Nothing else happens until it's merged.
- Once merged, the platform waits for the merged code to finish re-indexing before continuing.
- It then dispatches a real, automated technical-debt review — a live AI session (using the same Connected-IDE/Claude-subscription mechanism as your regular ticket work) that reviews the merged pull request against the milestone's own scope, the project's architecture/understanding documents, and general code health: test coverage, security, dead code, and overly complex functions. The Approve button shows Reviewing… while this runs.
- Clean pass: a success popup confirms it, the milestone is approved, and the next milestone's tickets unlock.
- Issues found: a popup explains that approval is being held, lists what was found, and tells you it filed new tickets on this same milestone — auto-deliver works through those automatically. Once they're done, click Approve again; the review runs once more and only approves once it comes back clean.
When it stops by itself
The loop is designed to never run unattended past a problem. It auto-pauses, with the reason shown on the board, when:
- a ticket fails terminally (generation error, repairs exhausted, budget block),
- a milestone completes and is waiting on your Approve click (see above),
- the milestone PR is closed without merging, or its E2E pass can't be fixed,
- every remaining ticket is blocked by an unfinished dependency.