sync--:--:--
0/0gw
0ratify0loops due0drawers
System · Reference

Card workflow

v2 · DR-0010 + DR-0011 · canon repo

Kanban lifecycle

founder operate surface

TL;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

StatusMeaning
triageParked, awaiting a deliberate go. The inbox. Native auto-decompose runs here.
todoQueued behind a dependency / parent gate.
readyClaimable by the dispatcher — it auto-claims + spawns the assignee's agent.
runningAn agent is actively working it.
with_humanA human is actively holding the card (flow-only status). The dispatcher never touches it.
blockedWaiting on an external party. Ownership-aware: unblock returns a human card to with_human, an agent card to ready/todo.
scheduledNative v0.15 — parked until a time (delayed follow-up).
reviewNative v0.15 — dispatcher spawns a review agent.
doneWork solved, awaiting the founder finalize gate.
archivedFinalized — 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

LaneSurfaceCockpit role
qfounders + their agentsinteractive — the operate surface
hpm-founders + subagentsread-only — observe
t / thtenant mirror of q / hread-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).

claim

Pool card → take ownership (assign to self). Status stays triage.

assign

Route a parked card to a specific profile. Status stays triage until the new owner starts or promotes it.

start

Pick up a parked card and work it personally — triage → with_human (auto-claims to you if unassigned).

promote

Hand a parked, owned card to its agent — triage → ready; the dispatcher then claims it.

block

Waiting on an external party — with_human/running/ready → blocked. Requires a reason.

unblock

Ownership-aware return — a human-held card returns to with_human, an agent card to ready/todo.

collapse

Close an open wormhole on a card (founder response). Optional resolution note.

finalize

The finalize gate — done → archived, with optional MemPalace export.

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.