Card workflow
v2 · DR-0010 + DR-0011 · canon repoKanban lifecycle
founder operate surfaceTL;DR — two axes, one board
Kanban v2 is one SQLite DB. A card has two independent axes: who owns it (assignee — a profile, or nobody) and where it is (status). A board column lanes the card onto a surface (q/h/t/th) — it is not a lifecycle stage. The dispatcher runs everything autonomously; the cockpit is where a human steps in.
Statuses
| Status | Meaning |
|---|---|
triage | Parked, awaiting a deliberate go. The inbox. Native auto-decompose runs here. |
todo | Queued behind a dependency / parent gate. |
ready | Claimable by the dispatcher — it auto-claims + spawns the assignee's agent. |
running | An agent is actively working it. |
with_human | A human is actively holding the card (flow-only status). The dispatcher never touches it. |
blocked | Waiting on an external party. Ownership-aware: unblock returns a human card to with_human, an agent card to ready/todo. |
scheduled | Native v0.15 — parked until a time (delayed follow-up). |
review | Native v0.15 — dispatcher spawns a review agent. |
done | Work solved, awaiting the founder finalize gate. |
archived | Finalized — terminal. |
The unassigned pool (DR-0010 intake)
"Unclaimed" is an assignee fact, not a status: the pool is status=triage AND assignee IS NULL. Undirected work lands here with no owner. A founder claims it (to self), assigns it (to a profile), or starts it (picks it up to work personally → with_human). The board shows an N unclaimed badge; the workbench surfaces the pool as its own bucket. promote refuses a null-assignee card — the dispatcher must never spawn "nobody's" agent.
Lanes
| Lane | Surface | Cockpit role |
|---|---|---|
q | founders + their agents | interactive — the operate surface |
h | pm-founders + subagents | read-only — observe |
t / th | tenant mirror of q / h | read-only — observe |
Founder verbs the cockpit drives
On a founder instance the cockpit composes a hermes flow invocation and shows it under the HERMES preview before submit. A card can afford several actions; pick one in the action bar. On a Tenant Instance the cockpit is pure view-only — no operate-buttons, no CLI, no internal IDs (DR-0011).
What the cockpit executes
# Intake — the unassigned pool hermes flow claim <task_id> --by <actor> hermes flow assign <task_id> --to <profile> --by <actor> hermes flow start <task_id> --by <actor> # triage → with_human # Move it along hermes flow promote <task_id> --by <actor> # triage → ready hermes flow block <task_id> --reason <reason> --by <actor> hermes flow unblock <task_id> --by <actor> # Close it out hermes flow collapse <task_id> --by <actor> [--note <note>] hermes flow finalize <task_id> --by <actor> [--mempalace]
Handoff (re-routing already-owned work) and solve (an agent marking work done) stay on the CLI / agent surface — they are not cockpit buttons.