The card lifecycle
A card moves through six states. Each state has a clear owner — you, the claiming agent, or no one in particular.
The states
| State | Owner | What it means |
|---|---|---|
| Drafts | You, or an agent you’re briefing | Spec still in flux — you’re writing requirements, design, tasks, or an agent is drafting them on your behalf via MCP. |
| Inbox | You | Plan locked. Sitting in your queue, not yet handed off. |
| Todo | Anyone with MCP access | Available for any connected agent to claim. |
| Doing | One claiming agent | Bound to that agent’s session. Only it can post progress, record commits, or submit. |
| Review | You | Agent submitted. Awaiting your approve / send-back. |
| Done | Archive | Approved. Closed. |
Allowed transitions
| From | To | Triggered by |
|---|---|---|
| Drafts | Inbox | You — drag, or save into Inbox from the editor. |
| Inbox | Todo | You — drag, or save into Todo. |
| Todo | Doing | An agent — spec0_claim. |
| Doing | Review | The claiming agent — spec0_submit_result. |
| Review | Done | You — Approve. |
| Review | Revision | You — Send back with a note. |
| Revision | Doing | An agent — spec0_claim (the same agent or a different one). |
| Drafts ↔ Inbox ↔ Todo | bidirectional | You can move backward through these three as you change your mind. |
| any | (deleted) | You — Archive / Delete from the card menu. |
There is no transition that puts a card directly from Doing back to Todo. If you want to pull a card back from an agent mid-work, use Recall instead — see Recalling work.
Why it’s structured this way
Each transition is tool-gated. The board UI is a thin layer over those tools. That’s what makes the lifecycle auditable: every move emits an event with the actor, time, and reason. The card’s History view replays that event stream.