Ticket Lifecycle
Every ticket in Draft follows a strict state machine. Transitions are validated — invalid transitions are rejected.States
State Transitions
Happy Path
PROPOSED → PLANNED → EXECUTING → VERIFYING → NEEDS_HUMAN → DONE
When Things Go Wrong
- Execution fails →
BLOCKED(with reason: error message or “no changes”) - Verification fails →
BLOCKED(with failing command details) - Human requests changes → back to
EXECUTINGfor another iteration
Blocked Tickets
When a ticket becomesBLOCKED, the planner can:
- Propose follow-up tickets to address the failure
- Auto-unblock when a dependency completes
- Wait for human intervention