Skip to main content

Ticket Lifecycle

Every ticket in Draft follows a strict state machine. Transitions are validated — invalid transitions are rejected.

States

State Transitions

Happy Path

PROPOSEDPLANNEDEXECUTINGVERIFYINGNEEDS_HUMANDONE

When Things Go Wrong

  • Execution failsBLOCKED (with reason: error message or “no changes”)
  • Verification failsBLOCKED (with failing command details)
  • Human requests changes → back to EXECUTING for another iteration

Blocked Tickets

When a ticket becomes BLOCKED, the planner can:
  1. Propose follow-up tickets to address the failure
  2. Auto-unblock when a dependency completes
  3. Wait for human intervention

Transitioning Tickets

Via the API:
Via the UI, use the state buttons on each ticket card.

Ticket Properties