feat(queue): queue as data A2, migration, render and dispatch (#1508)
Filbert approved round 1 (f167b85e). Manifest 782bcb62, 21 files, plus the QUEUE.md markers and the TOOLS.md section. Lead decision 35. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
@@ -433,3 +433,19 @@ which stay with him. Each item names who decided it and what happened.
|
||||
`aborted` with no stop in progress, it treats it as an overlap signal.
|
||||
It does not invent a stop link. This goes into the build and its tests,
|
||||
and the pinned brief stays as it is.
|
||||
35. **Queue A2 lands, then genesis.** Filbert approved A2 round 1 with no
|
||||
blocking finding (f167b85e). Sage commits it with both patches, then
|
||||
runs the dry run's order on the canonical checkout: map check, install
|
||||
the hook, genesis, `queue-commit.sh --genesis`, then these logged ops:
|
||||
- `assign 10 sage` (map choice 2).
|
||||
- Row 13's gate becomes "rows 9 to 12 done, then a Monday ledger run
|
||||
with zero queue violations, or every one moved the same day". This is
|
||||
Filbert's n1. `after` gates only the start of a row, so it can't stop
|
||||
row 13 going done before Gate G. The gate text does, and Sage owns
|
||||
that gate. It also drops the stale 2026-09-21 date.
|
||||
Map choices 1 to 8 are accepted as written. Row 16 stays
|
||||
`waiting-on-jason` at genesis. #1510 is checked after genesis, through
|
||||
the queue. Filbert's n2 (point the header at the goals review, reword
|
||||
AGENTS.md's priority line) is row 10's work, now Sage's. n3 (a README
|
||||
line saying `queue-commit.sh` calls `cli.mjs` directly) rides with
|
||||
row 10.
|
||||
|
||||
+22
-14
@@ -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: <what he must do>` → `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)
|
||||
|
||||
<!-- mosaic-queue:begin -->
|
||||
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" |
|
||||
|
||||
<!-- mosaic-queue:end -->
|
||||
|
||||
## 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.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user