diff --git a/docs/plans/QUEUE.md b/docs/plans/QUEUE.md index c8e3d34..dd155c6 100644 --- a/docs/plans/QUEUE.md +++ b/docs/plans/QUEUE.md @@ -1,29 +1,32 @@ # QUEUE — the one task list -Read this first. One row per piece. Nobody needs to read the prose plans to -know what is next; the Brief column says which section to open only when you -are the owner of that row. +Read this first. One row per piece. The table between the markers is +rendered from `docs/plans/queue.json`, and `scripts/mosaic queue` is its only +writer. Don't edit the table by hand: `queue verify` and the commit hook +refuse a table that isn't the render. `packages/queue/README.md` has the verbs. How to find your next thing: -- **Jason**: the first row whose State starts with `Jason:`. -- **A seat**: the first row where Owner is you and State is `in progress`, - `in review` or `briefed`. If there is none, you have nothing; say so on the - board and stop. -- **Sage, project lead** (Jason's ruling 2026-09-26; Darkwing before that): update this table at every gate, before - anything else is written. CURRENT.md is the narrative log; this table wins +- **A seat**: run `scripts/mosaic queue next`. It names the row to resume, + review or start, or says there is nothing; if nothing, say so on the board + and stop. +- **Jason**: rows in state `waiting-on-jason`, and parked rows to reopen. +- **Sage, project lead** (Jason's ruling 2026-09-26): changes the queue with + `scripts/mosaic queue` and commits `queue.json` with QUEUE.md through + `scripts/queue-commit.sh`. CURRENT.md is the narrative log; the queue wins if they disagree. -States: `queued` (no brief yet) → `briefed` (brief written, not started) → -`in progress` → `in review` → `Jason: ` → `done`. `parked` -means not before the rows above it and not without Jason's say. `required` -means it cannot be parked or reordered below `queued` rows; only Jason moves it. +States: `queued` (brief exists, not accepted) → `briefed` → `in-progress` → +`in-review` → `waiting-on-jason` → `done`. `blocked` returns to the state it +left. `parked` rows wait for Jason to reopen them. A `required` row can't be +parked, and only Jason clears the flag. `after` names the rows a piece waits +for. -Brief locations: "plan page" is `docs/plans/2026-09-12_control-board-mvp.md`. Gaps found while working go to `docs/plans/DEFERRED.md`, not here. ## Pieces (in order) + Lead: Sage from 2026-09-26 (Jason's ruling); Darkwing is a collaborating seat. Jason is preparing the target for the next phase; until it arrives, the priority below stands. @@ -79,8 +82,13 @@ Gate F or when blocked." | Console features outside the refined session-chat brief, including Fresh creation and model switching | Deferred by WEBUI Q1; required history/control/stop now belong to row 5, not this parked item | `2026-09-13_webui-session-chat.md` | | Open gaps from the MVP work | Fixed only when a gate needs them | DEFERRED.md, "Open" | + + ## Log of table changes +Frozen at genesis. Since then the log in `docs/plans/queue.json` records every +change; the entries below are history. + - 2026-09-13 — created; rows 1 to 8 taken from CURRENT.md, DEFERRED.md and the plan page. - 2026-09-13 — rows 9 to 13 added (#1508): the process itself becomes data with one writer and ledger checks. Jason: "I want this iron-clad." Required, not parked; rule: these rows cannot be moved to parked, only to done.