The crew roadmap — 0.1.x nervous system, 0.2.x expansion, 0.3.0 federation #338
Replies: 23 comments
Verified against the board, and converged — answer: the map holds, and one consequence it does not state is live right nowThis thread is a map rather than an open question, so its outcome is answer, not ask: it stays open as the living index, and each row's truth is maintained in its epic, as the body says. What follows is the verification triage ran before saying that, and the one thing the table does not say. 1. All seventeen rows resolve — re-read from the issues, not from the tableEvery row's number is an open issue carrying
The inserted pair — #339 ( 2. What the map does not say: eleven of its mapped children are behind #162, not behind their own rowThe table reads as though a
Ten checklist children — plus #168, a member of this gate that two further epics name in prose rather than as a child of either: #339's scope-addition paragraph and #329's to-mint list, both citing its
Ten of the eleven flip in a single sweep the moment #162 closes — this gate is their only open blocker, #290 having closed at So the window that makes them claimable is 3. This is the standing rule working, not a defect in itThe map's own second rule is what produces this, and it is deliberate:
The rule defers re-declaration; it does not hold the issues. So triage records the consequence here rather than acting on it — a bulk re-declaration across eleven bodies is exactly what the rule forbids, and where these eleven actually land is #162's ruling to answer, not this thread's. 4. One figure moved since that ruling was postedThe ask on #162 counted twenty-eight open Nothing here asks anything of anyone. The map is accurate as published; this comment is the record that it was checked rather than assumed, and the pointer to the one place a reader would otherwise draw a wrong conclusion from it. Triage, 2026-08-03. |
The release cycle's opening was corrected in the body — the sweep was never going to fire itPosting because a body edit notifies nobody, and this one changes a mechanism fourteen epics were written against. What was wrong. This section said shipping a release "closes its epic; the sweep flips the next one Independently, the second half was also wrong: a What changed. All eighteen epics on the board now carry What it costs, said plainly. The fleet loses a machine wake: nothing fires when a release epic closes, so release-init is triage's to notice. That gap is now a to-mint bullet on #329 ( One upstream defect came out of the same run and is filed where it belongs — heavy-duty/ceremony#246, a failed API read becoming a label write. The Triage, 2026-08-03. |
The map did not describe the pass that every close comment points at it for — step 1 now does, and my
|
A ruling six minutes old had corrected nothing — release-init's own table would have carried #125 into the wrong windowPosting because a body edit notifies nobody, and because this is the second time this page's step 1 has been the surface that drifts. What moved#125 — the console's cost view — was ruled onto #328 ( Both were recorded as comments on the two epics and on #121. Every surface that states the placement still said Why that is worse here than a stale tenseStep 1 above does not tell an init to read this table. It tells it to re-open or re-mint "exactly as those close comments say" — and #125's close comment named #327, with no way to know it had been superseded six minutes later. So the drift ran the wrong way round: an init following this page correctly would have carried the console's cost display into the telemetry window, one release ahead of the aggregation it renders, and #328's Children section would not have listed it at all. Corrected, all from the ruling and the close events rather than from each other:
One figure restated, with its filterThe paragraph read "22 issues … Twenty-two in all." True of the pass and still true: Outcome unchanged: answer — the map holds, and this is the map being maintainedThe version ordering, the gate chain, the five release-init steps, the standing intents and both standing rules are untouched: an issue enters a release by decision, not default, and the map defers to the machine. Re-measured at this write by running The general lesson, since this is the second instance: a ruling recorded only on the epics it is about corrects nothing. The carrier lives in at least six places, and the close comment — the one an init actually mints from — is the one that cannot notice it has been overtaken. Triage, 2026-08-03. |
This is the question three surfaces have said belongs here, and this page has never carried itPosting it rather than recording it a fourth time. Since
Read at this write, this page's body and all four of its comments mention #291 exactly twice: once as a cell in the carrier table ( The facts, re-derived from the close comments rather than from the tables that summarise them
And the conflict is not only across two epics — it is inside #291. Its body's first line, unchanged since the mint and still standing today:
So #291 declares one window and its close comment carries it to the next. Release-init step 1 tells a triage session to re-open the members "exactly as those close comments say", which resolves that contradiction silently in favour of What each option costs, said plainly
What is not affected, measured rather than assertedNo The map is unchanged. The version ordering, the gate chain, the five release-init steps, the carrier table and both standing rules are untouched by this — the question is which cell one row belongs in, not whether the table is right. Outcome: escalate, waiting on @danmt@danmt — one line: A, B, or C. Triage's read is A. Nothing stalls on the answer, and it is only executed when (This thread's outcome moves from answer to escalate while that question stands. The map itself still holds — it was re-verified again at this write.) Triage, 2026-08-04. |
The parse figure inside the ask above is superseded — the ruling it supports is notCorrecting a number in a live ruling ask before @danmt reads it, because it is the one thing on that comment a decider might re-derive rather than trust. The ask closes with a measurement taken at
That was true when written and stopped being true seven hours later. The edge pass at
What the figure was cited for is unchanged. It supports one sentence — "none names #163, #333, #291 or #295" — and that survives the pass intact: the full set of numbers named across all 22 declarations is The rest of that comment's measurements re-verified at this write and all still hold, stated so the parts sum: the board is 43 open — 22 Nothing about the ask moves. The options, the recommendation (A), the blocked/continues statement and the default — A at #163's window-open if no ruling, reversible until then — are unchanged, and this correction touches no issue, label or body. Triage, 2026-08-04. |
Two corrections to release-init, both by executing the parser rather than reading it — and the second is a whole window going claimable by defaultPosting because a body edit notifies nobody, and because both of these are instructions the next triage session executes. 1. Step 4 told triage to strike the declaration. Striking does not remove itThe step read "triage flips wave 1 (strike the member's declaration, swap the label, one edit each)". Executed against
The parser reads raw marker text and never sees the formatting. So the step sanctioned exactly the false-hold class the sentence beside it exists to prevent, and it is now delete or rewrite. This was not a new discovery, and that is the part worth recording. The word was retracted upstream on 2026-08-03 at (The wave-0 flip performed on #350 at 2. Step 1's re-open hands 13 of the 23 carried members straight to
|
| carrier | window | members | decide READY on re-open |
|---|---|---|---|
| #327 | 0.1.3 | #121, #122, #124 | 1 — #124 |
| #328 | 0.1.4 | #123, #125 | 2 — both |
| #339 | 0.1.5 | #193, #343 | 1 — #193 |
| #330 | 0.1.7 | #284 | 1 — #284 |
| #331 | 0.1.8 | #129 | 0 |
| #332 | 0.1.9 | #210, #211, #212, #213, #214, #215, #324 | 7 — all of them |
| #340 | 0.1.10 | #144 | 0 |
| #163 | 0.2.0 | #128, #225, #296 | 0 |
| #333 | 0.2.1 | #246, #291 | 1 — #246 |
| #335 | 0.2.3 | #72 | 0 |
13 decide READY, 10 decide KEEP, 13 + 10 = 23. #332 is the whole-window case: every one of its seven members becomes claimable in the first sweep after the re-open — unordered, before steps 2, 3 and 4 have run at all. That is this page's two standing rules broken by the first act of an init.
And the ten that hold do so incidentally: they name #163 or #339, which merely happen to still be open. It is not a property of the procedure, and it disappears the moment #163 closes.
The remedy is an ordering rule and costs nothing. A closed issue's body is editable, so: re-point the declaration first, re-open second. The member then arrives declaring Blocked by <the epic> — which is what step 1's own sentence already requires — and step 4 admits it. Both corrections are in the body above.
Raised upstream, because the gap is not crew's alone
RELEASES.md's step 1 says "Mint" and never contemplates a window opening onto closed carried members — verified at the 0.6.0 tag crew is adopting, byte-identical to main, so the gap survives into the version arriving here. Any repo that adopts the ladder and then runs a board-hygiene pass inherits it. Filed as ceremony#324, with the measurement, through their Discussions door. Nothing here waits on it: crew's page carries the rule as of this write.
Outcome unchanged: escalate, waiting on @danmt — on which epic owns #291
Neither correction touches the 12:03Z ask: the options, the recommendation (A), the blocked/continues statement and the default — A at #163's window-open if no ruling, reversible until then — all stand. The map's version ordering, gate chain, carrier table, five steps and both standing rules are unchanged; what moved is how step 1 and step 4 are performed.
Board re-measured at this write, and it is moving: 43 open — 21 blocked, 1 claimed, 18 epic, 3 post-merge (21 + 1 + 18 + 3 = 43), zero ready, needs-triage, attention, stale and needs-ruling, and zero open PRs. The 0.1.2 window opened while this was being written — #350 flipped ready at 09:48:50Z and @cndgrr claimed it at 09:50:50Z. The clause parse over the 21 remaining blocked bodies is unchanged by this morning's tense-correction pass on #301, #303, #308, #181, #207: 9 parse to {346} alone — #137, #179, #190, #301, #308, #316, #319, #323, #341 — and 12 carry a same-file predecessor — #138, #139, #168, #183, #192, #204, #217, #218, #303, #312, #345, #347. 9 + 12 = 21, the whole held set; #350 left it by the flip. No needs-ruling label is owed anywhere and none is set.
Triage, 2026-08-05.
The machine wake this page says the fleet lost now exists — and it is inert on this board, for the same reason two phantom release windows appeared this morningOne delta since my 1.
|
A release-procedure rule this page does not carry started governing crew at
|
| file | 0.6.0 |
0.6.2 |
|---|---|---|
actions/issueflow-reconcile/issueflow-reconcile.sh |
41532c2e |
41532c2e — the same blob |
RELEASES.md |
+31 | |
BUILDER.md |
+29 / −6 |
So nothing this page measured against the reconciler moved. What moved is the release procedure itself — and crew's copy is not an upstream change waiting on a consumer: .ceremony/RELEASES.md at main hashes sha256 556c2a36…, byte-identical to ceremony's 0.6.2:RELEASES.md. Tag cut, pin bumped, mirror re-vendored. It governs here now.
2. What it added: a post-merge member holds its successors, and the split is triage's
A member that lands
post-mergereleases nothing: that exemption is about claimability, while apost-mergeissue is still open and an open predecessor holds its successors, so every successor declaring on it stays held and the window stops advancing along that edge.When a member reaches
post-mergeand any open declaration names it, triage splits the remainder: mint a fresh issue carrying the outstanding criteria verbatim, naming its owner and its wake condition and citing the original, then close the original on what it delivered. […]Split only when an open declaration names the issue. The trigger is a check rather than a judgement — run the blocker parse over every open
blockedbody and see whether this number appears — because an issue that strands nothing ispost-mergeworking as intended.
Two more clauses bind the execution: the release edge is the original's close, never the remainder's (successors name the original's number), and never close work out from under a builder — where the original is claimed or carries an open PR, amend its body and let its holder close it.
This lands on this page's chain, not on some other surface. The chain says a window advances when its members land; the rule says one class of landing advances nothing, and names triage as the only party who can repair it.
3. Executed rather than reasoned about — and no split is owed today
blocked_references from the pinned 0.6.2 script, run over every open blocked body as it stands:
| issue | parse |
|---|---|
| #403 | {#407} |
| #406 | {#402, #403} |
| #408 | {#406} |
Union: {#402, #403, #406, #407}. The seven post-merge issues — #181, #210, #217, #240, #355, #359, #373 — appear nowhere in it. Every one of them strands nothing, which is the rule's own definition of post-merge working as intended.
Two notes for whoever re-runs this. #402 closed at 16:07:40Z today, so #406's set is one closed reference and one open one and still decides KEEP — a re-run an hour earlier gave the same answer for a different reason. And the check is worth re-running on every claimed → post-merge transition rather than at init: its failure mode is a window that quietly stops advancing along one edge, which no label shows and no sweep flags.
4. Step 4's citation is one pin behind; its conclusion survives the move
The body's step 4 correction cites blocked_references from issueflow-reconcile.sh@0.5.0 — "the tag all nine of crew's uses: pins name", true when written on 2026-08-05 and false since 12:41Z today. The 0.5.0 blob is e0b31743 and the pinned one is 41532c2e, so this is a real difference and not a tense.
Re-run at the tag that actually runs: both ~~Blocked by #327~~ Admitted to wave 1. and <s>Blocked by #327</s> Admitted to wave 1. return 327 at 0.6.2, and the empty set arrives only when the clause is deleted or rewritten. Step 4 stands as written — delete or rewrite, never strike — now verified against the pin rather than against a tag two releases behind it.
5. The release-init wake is still inert — re-measured at the pin, over a bigger set
The release-init due branch is present at 0.6.2 and still requires a release label plus a READY blocked_decision. Measured over the whole board rather than the set that existed on 2026-08-05: all 19 open release-labeled bodies parse to {} (17 then, and #400 and #367 have joined). Of the 19 open epics the only non-empty parse anywhere is #295 → {#163}, and #295 carries no release label, so the branch cannot see it either.
Step 5 is unchanged, for the third measurement running: release-init is triage's to notice.
6. The window this page's chain is on is at its cut
- #400 — Release 0.1.2, the cut and the real-host drill, from 0.1.2 — polish: the clean gate (working surface; #162 is the ledger) #346's ledger — is
claimedby @cndgrr, and PR #401 has been open in draft since13:58:03Z, carryingstate:buildingandblocker:ci-red. - The rest of the window: one
readyand unclaimed (#405, minted15:12Ztoday) and threeblocked(shared/lib/duty-builder.sh — two resume lanes dispatch forever: the near-miss union and the post-twelve stranded set never reach a breaker #403, shared/test/run.sh — resume.txt quotes BUILDER.md four times and one citation is guarded both ways: the #363 shape, still open #406, drill/install-survival.sh — step 9's history path passes a dead engine and reds a live one: converge both paths on a post-removal tick #408, the chain in section 3). 0.1.2 — polish: the clean gate (working surface; #162 is the ledger) #346 is open.
Board re-measured at this write: 32 open — 19 epic, 7 post-merge, 3 blocked, 2 claimed, 1 ready (19 + 7 + 3 + 2 + 1 = 32), zero needs-triage, attention, stale, needs-ruling and offsite, and one open PR. Against the 43 open — 21 blocked, 18 epic, 4 post-merge, zero of everything else and zero open PRs recorded here on 2026-08-05, that is most of a window landing in two days.
So the next act this page defines is step 1 for 0.1.3 (#327), whose carried set is #122, #124 and #121, and the first thing that init runs is the 2026-08-05 ordering rule in the body: re-point the declaration before the re-open, because a carried member re-opens with the declaration it closed under. Nothing here says the cut has landed — #346 is open and #400 is in flight — only that the trigger is close enough that the procedure should be read before it fires, not during.
Outcome unchanged: escalate, waiting on @danmt — on which epic owns #291
Said once, plainly, because three days have passed and no rung of the ruling ladder has fired: that is correct, not an oversight. The ladder in LABELS.md runs from an episode's needs-ruling labeled event, no needs-ruling label is owed anywhere on this board, and none is set, so there is no clock for a rung to sit on. Owed is measured, not assumed: section 3's parse is the whole set of open blocked declarations and none of them names #291, #163, #333 or #295. The board's one open declaration naming any of the four is #295's own Blocked by #163, and #295 carries epic with no queue label, so nothing is held behind it either. This ask's own Default: is keyed to an event rather than to a date: A at #163's window-open, which is nine windows out and not near. Absent real activity triage returns on 2026-08-11 and says so again rather than letting it go quiet, the same discipline #317 is holding to for 2026-08-10.
@danmt — still one line: A, B, or C, and triage's read is still A.
Triage, 2026-08-07.
A version epic has been off this map since 2026-08-05 — added, because a page whose first sentence is "the epics are the territory" is the one surface that cannot have a missing rowPosting because a body edit notifies nobody, and because this one is an instruction the next release-init session executes. The 1. What was missing#367 — It is not a stray thought that never reached the map. Its own Gate section reads:
So it points at this page for the procedure that opens it, and this page did not point back. One-way pointer, two days old. Asserted absent before appending, not assumed. 2. What was changed, precisely
Nothing else in the body moved: the version ordering, the gate targets, the five release-init steps, the carrier table, the standing intents and both standing rules are untouched. This adds a row to the map; it decides nothing. 3. The same one-way pointer, found while checking this one — and repaired at the other end#367's decision list carries an amendment to an earlier epic, at the operator's direction:
#348 ( A supersession recorded only on the superseding issue corrects nothing at the surface a builder reads. That is this page's own "map defers to the machine" rule applied one level down, and it is why the fix is an edit at the other end rather than a second note here. 4. What this does not changeStep 5 is unchanged, for the fourth measurement running: release-init is triage's to notice. Adding a row arms nothing — the The next act this page defines is still step 1 for Board re-measured at this write: 31 open — 19 Outcome unchanged: escalate, waiting on @danmt — on which epic owns #291Still no
@danmt — still one line: A, B, or C, and triage's read is still A. Triage, 2026-08-07. |
The second epic wake exists too, and it is inert on this board for a different reason — plus the obvious repair, measured, because it misfiresOne delta, and it lands on step 3 of the cycle above rather than on the ladder. The version ordering, the gates, the carrier table and the flip mechanics are untouched. The 1. The mechanism, at the pin this repo actually runsBoth label callers on
Both functions are byte-identical at 2. It has never fired here, and cannotRunning that awk verbatim over the live body of all 20 open epics at That is a doctrine gap, and it is this page's. The requirement reached crew on
Step 3 above has been the copy an init session actually reads for two days without that clause. It is corrected in the body at this write. 3. The obvious repair is wrong, and here is how wrongThe tempting pass is "rename each epic's existing checklist heading to
Every captured row names a carried member from the 2026-08-03 hygiene pass — the carrier table in step 1 above. None is a progress view. Four more (#207, #295, #327, #328) return So the heading is not a per-epic hygiene chore. It attaches to the progress view of an opened window. An unopened epic satisfies the doctrine by having no task list at all, and its 4. #346 is the only live progress view, and a rename fails there too — differentlyRenaming The consequence is that a renamed #346 would not get a working completion nudge either. Its verdict would ride on two sibling roadmap windows, 5. Net, for the next release-init sessionStep 3 now names the heading. When No label moved and no issue body was touched by this note; nothing on the board is blocked by it. Triage, 2026-08-09. |
The map said
|
| fact | reading |
|---|---|
release 0.1.2 |
published 2026-08-10T20:47:40Z, assets crew-0.1.2.sh + .sha256 |
tag 0.1.2 |
84ae65f |
| #346 | closed_at 2026-08-10T21:05:37Z, state_reason=completed |
origin/main:VERSION |
0.1.3-dev |
| board | 0 ready, 0 claimed, 0 blocked, 5 post-merge, 19 epic, 0 open PRs |
The 0.1.2 row deliberately does not copy 0.1.1's shape. That row records a cut issue closed before its epic. #400 is open in post-merge with one operator-owned criterion, so a reader inferring the pattern would wait on a close that is not coming — and post-merge is a completion queue, never a gate. The window's close is #346's, and it has already happened.
Why this is a map-only defect, which is the part worth keeping
The territory was current the whole time. #327 has recorded this window open since 21:06:08Z, thirty-one seconds after the gate cleared, with the four release-init steps and what each owes. The epic was right; only the map was behind. A scan of the epics alone cannot find this class — every epic can be individually true while the page that orders them is nine hours stale, because the map is the one surface no epic's close touches.
Step 5 of the release cycle below already reads "close the epic, and step 1 fires for the next window", and the 2026-08-03 correction established that no automation fires it. This edit adds nothing to that mechanism; it just means the page now says which window that is.
What the 0.1.3 cell now states, and what it does not
The cell records release-init at step 1: fourteen bullets on #327's to-mint list, none minted, which is why ready is empty. One bullet — the terminal breaker's coverage across claude/codex/grok — is held by the needs-ruling set on #327 at 2026-08-11T00:14:56Z, default firing 2026-08-12T00:14:56Z. The other thirteen are not held by it, and neither are steps 2–3.
So the empty build queue is triage's to clear, not the operator's: the mint pass is owed now, and the blessing at step 4 is the only thing that waits on a human.
The
|
The
|
The
|
| fact | reading |
|---|---|
| PR #453 merged | 2026-08-12T12:34:02Z as 394bdad, on its own Closes #452 |
| #452 closed | 12:34:04Z, all eight criteria ticked |
| what the row still said | claimed/@cndgrr, PR open, "a live claim whose PR is handed off to the panel at 4f7eeb0" |
Three sentences carried that claim — written at 00:5xZ, 21:4xZ and 11:1xZ — and each is
struck or annotated at its own site, not only in the new block: a supersession by reference
leaves the earlier sentence readable and wrong. The 11:1xZ label reading is annotated rather
than struck, because it is still literally true — #452 closed carrying bug + scope:duty +
claimed with @cndgrr assigned, since a close moves no label. That residue is exactly what
a scan misreads as a live claim, so the annotation says which it is.
What the landing does to this window, and what it does not
The gate's declaration on #327 is
byte-unchanged — Blocked by #454, #452. — because a gate records membership only
(ceremony#292 D2), so a member that has
landed stays named in it. What moved is the parse, which now resolves to one open
blocker, #454. The gate is partially discharged and therefore inert: no label moves,
#327 stays open with no queue label, and 0.1.3 cannot close until #454 does. The collision
edge the two members carried on shared/test/run.sh is spent — it never fired, and its
discharge is recorded on #454.
Both figures this row tracks hold, re-counted at this write rather than carried: the
to-mint list is still seventeen top-level bullets by this row's own rule, of which
sixteen are unminted — #452 was never one of them — and release-init is still at step 1,
steps 2–3 not run, step 4 not asked.
The board, counted at this write
25 open 19 epic · 5 post-merge · 1 blocked
0 ready · 0 claimed · 0 needs-triage
0 open PRs · 0 attention · 0 needs-ruling · 0 stale
So the repo's whole claimable queue is #454, and it is held on step 1's held until ordered
term. A builder arriving now has nothing to pick; that is the window between mints rather than a
stall.
One row checked and left alone
The 0.1.2 row says #400 is "still open in
post-merge with one operator-owned criterion". Counted against that issue's live
## Acceptance criteria rather than against this page: eleven of twelve are ticked, and the
one open box is the operator-owned fleet rollout. The row is accurate and is not edited.
The
|
| figure | the row said | it reads |
|---|---|---|
| to-mint bullets | seventeen | seventeen — unchanged |
| unminted | sixteen | sixteen whole, plus bullet 11's B/C remainder |
| what steps 2–3 graph | those sixteen | seventeen items |
Why this is worth a correction here and not only on the epic
The stale form carries an instruction, not merely a count: "a later init cannot mint it twice."
Executed as written it drops options B and C out of this window's graph — and those are the scope
call on whether the terminal breaker's coverage stays where #388 deliberately left it, with the
bot_session_terminal hook live on kimi.conf alone, one agent profile of four and one box of
seven. That question has never been decided on the merits and is the operator's; its wake is
step 4, where the window's population is what @danmt sees. This edit is what keeps the item in
that population on the surface a release-init session reads first — this page's own opening line
is that the map is the map and the epics are the territory.
It re-flags nothing. That needs-ruling episode ran its full ladder — labelled
2026-08-11T00:14:56Z, both rungs fired, no reply — and was removed 2026-08-12T00:53:08Z; the pick
past 24h was triage's own and stands.
Corrected at four sites in the cell, each in place
- The
00:5xZdisposition sentence — "bullet 11 of the sixteen is spent … so a later init cannot
mint it twice" → partially spent, option A alone: must not re-mint A, must still carry B and C. - That same block's remainder — "Sixteen do" → sixteen whole bullets, plus bullet 11's B/C
remainder. - The
11:1xZblock's headline and its restatement — "steps 2–3 run over those sixteen." - The
15:2xZblock's re-count, which is the newest dated block and the one a reader reaching the
end of the cell stops at.
The two 21:4xZ measurements — "the list holds sixteen" and "read sixteen and
fifteen" — are left as written. They are stamped records of a count taken 2026-08-11, and
the 11:1xZ block already superseded them in place.
Measured at this write, not carried
origin/main is 394bdad
with VERSION at 0.1.3-dev. #327's to-mint list re-counted by the rule this row states — top-level
- rows between ## To mint when this arc opens and ## Gate, over the epic's live body —
returns seventeen. The gate clause parses to {#454, #452}, of which #454 alone is open,
so the gate is still partially discharged and inert and 0.1.3 cannot close until #454 does.
Release-init is still at step 1; steps 2 and 3 have not run and step 4 has not been asked.
Label-borne state re-read from each issue's own label events rather than from its thread: #327 is
enhancement + release + epic with no queue label; #454 is bug + scope:drill + blocked
since 2026-08-12T00:50Z, unassigned. The board: 25 open — 19 epic, 5 post-merge,
1 blocked — with 0 ready, 0 claimed, 0 needs-triage, 0 open PRs, and no
attention, needs-ruling or stale anywhere. Unchanged from the 15:2xZ reading: the repo's
whole claimable queue is #454, and it is held.
Triage, 2026-08-13.
The
|
| figure | the row said | it reads |
|---|---|---|
| to-mint bullets | seventeen | eighteen |
| unminted | sixteen whole + bullet 11's B/C remainder | seventeen whole + that remainder |
| what steps 2–3 graph | seventeen items | eighteen items |
One editorial call, stated so it is not read as an omission
The four dated blocks in that cell are left exactly as written. Each is stamped at its own time
and each states a count that was true when taken; a fold-in moves the total forward and
falsifies none of them. That is the opposite of the
00:5xZ correction
directly below, which had to reach into four sites because it changed what the word spent
counted rather than what the list held. Only this row's undated headline asserted the total
in the present tense — "the list stands at seventeen bullets" — and that is the one sentence a
release-init session executes off, so it is corrected there in place.
Measured at this write, not carried
origin/main is 394bdad,
VERSION at 0.1.3-dev. The gate parses to {#454, #452}, of which #454 alone is open, so
it is still partially discharged and inert. Release-init is still at step 1; steps 2–3 have not
run and step 4 has not been asked. Label-borne state re-read from each issue's own label events:
#327 is enhancement + release + epic with no queue label; #454 is bug + scope:drill +
blocked since 2026-08-12T00:50Z, unassigned. The board is 25 open — 19 epic, 5
post-merge, 1 blocked — with 0 ready, 0 claimed, 0 needs-triage, 0
open PRs, and no attention, needs-ruling or stale anywhere. The repo's whole claimable queue
is #454, and it is held.
The bullet came out of the hourly backlog-hygiene pass, which found no issue-flow defect: no
blocked issue whose declaration has landed, no claimed issue to reclaim, nothing obsolete to
close, every label on every open issue true, and no epic task list stale.
The
|
The
|
The
|
| fold-in | entries | row total |
|---|---|---|
07:5xZ |
26–29 — discussion #456's four candidates | twenty-nine |
08:2xZ |
30 — @danmt's 08:10:26Z direction, watch registries made floor-editable |
thirty |
09:2xZ |
31 — @danmt's 09:11:23Z direction, minimal prose in PR bodies |
thirty-one |
The 09:2xZ pass did edit this row, correctly and in place, and said so
on the epic. It did not
say so here, and a comment on #327 does not reach this page's watchers — which is exactly the
reasoning this thread's own convention rests on. So for nine hours the map was right and its thread
was six bullets behind it.
Verified at this write, from #327's body rather than from this row
Top-level - rows between ## To mint when this arc opens and ## Gate return thirty-one.
Release-init is still at step 1; steps 2–3 have not run and step 4 has not been asked. One
bullet is partly spent — bullet 11's option A, minted as
#454 — so steps 2–3 still graph thirty-one items.
The board carries zero ready. The row needs no edit; this comment is the edit's missing
half.
*(*Edited 18:1xZ, two minutes after posting: the epic link in the paragraph above carried a
comment id I had constructed rather than fetched, and it 404'd. It is replaced with the real one —
5301568431, the 09:19:24Z Entry 31 recorded comment — and the 01:5xZ link above now points
at its own comment anchor instead of the page. No figure and no claim in this comment changes.)
Triage, 2026-08-15.
The one surface the
|
| surface | reads | since |
|---|---|---|
| this page's table, row 22 | 0.2.6 | #348 |
2026-08-09 |
| #348 title and body | 0.2.6, with its own renumber note |
2026-08-09 |
| #442 — What this insertion moved | #348 renumbers 0.2.5 → 0.2.6 |
2026-08-09 |
| #163 — promotion note | original prose kept, renumber annotated beneath it | 2026-08-09 |
| this page's Standing intents bullet | #348 (0.2.5) |
uncorrected until now |
Five surfaces, four of them right. The pass that wrote four of them missed the fifth by six lines.
What was changed, and what deliberately was not
The version string is struck in place and the correct one set beside it, with the record of why —
the same treatment #163's copy got. The issue number is untouched, because it never moved: this
was a stale version string on a live row, not a re-sequencing, and nothing about #348's gate is
implicated. It is gated on #163 alone as a pre-declared parallel track, which is exactly what
made 0.2.5 the one insertion point in the table that re-sequences nothing — that claim is
re-read from #348's own body at this write and it holds.
The board this ran against
26 open — 19 epic, 5 post-merge, 2 blocked (#454, #457) — 0 ready,
0 claimed, 0 needs-triage, 0 needs-ruling, 0 attention, 0 open pull
requests, and the engine's stray figure is zero. Counted from the label sets at this write.
The
|
The return, 9 days late — the
|
| 2026-08-16 | today | |
|---|---|---|
| open issues | 26 | 51 |
ready |
0 | 10 |
claimed |
0 | 2 |
blocked |
2 | 20 |
post-merge |
5 | 1 |
operator |
— | 7 |
| open PRs | 0 | 2 |
main was frozen at 394bdad since 2026-08-12 when the last comment was written; it has moved 178 commits since. The ceremony pin crossed from 0.6.2 to 0.7.7 (#603, landed 2026-09-01T07:57:49Z), with #573 on the board for 0.7.8.
None of that touches the #291 question, and saying so is the point: the roadmap moved a long way without the placement ask being either answered or made obsolete by events. It is not a question that is quietly resolving itself.
3. Nothing is held by this ask — re-measured
Running the shipped blockers.jq's own parse over all 20 open blocked bodies: none names #291, #163 or #333. Board-wide there are 0 needs-ruling, 0 attention, 0 needs-triage and 0 stale. No needs-ruling label is owed and none is set — nothing on the board is held by this ask, so no rung of the ruling ladder fires and triage does not pick.
4. Why this is nine days late, and the one measurement that is new
Fourth consecutive recorded miss across this family — this thread, #229 and #269 due 2026-08-23, #317 due 2026-08-24, all four found overdue and unhonoured on 08-27, 08-29 and 08-31 before today. All four are served in this tick.
And the premise about the decider was re-measured rather than assumed, because it is the one this page has repeated four times. @danmt has commented on eight crew issues since these returns fell due — most recently 2026-08-31T21:40:23Z, yesterday — and on zero of the fourteen open crew discussions. The last @danmt reply on any crew discussion at all was 2026-08-19T19:17Z. The full measurement, with the closed-discussion control that stops it being overstated, is in #317's return of today; it is stated once there rather than four times.
It changes nothing about the outcome and licenses no pick. It is reported because "you are present, one line answers it" has now been written on this page four times to a reader who is demonstrably present and demonstrably reading a different surface — and that is a fact about the nudging, not about you.
Outcome unchanged: escalate, waiting on @danmt — on which epic owns #291
@danmt — still one line: A, B, or C. Triage's read is still A.
One line answers it, and one line parks it. If you park it, triage stops nudging until you unpark it. Absent either, triage returns on 2026-09-08, and in any case at 0.2.0's init, whichever is first.
Triage, 2026-09-01.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
0.1.x builds the nervous system; 0.2.x hires and expands; 0.3.0 federates. Written 2026-08-03 by triage at @danmt's direction; each entry is an epic issue, and the epic is where the entry's truth is maintained — this page is the map, the epics are the territory. (Revised same day: 0.1.5 protocol and 0.1.10 transport inserted at the operator's direction; wake/floor/doors renumbered accordingly.) (Revised 2026-09-04 by triage:
0.1.11(#676),0.1.12(#677) and0.1.13(#681) added. The first two were minted 2026-09-04 at @danmt's direction and this map was not updated in the same tick, so it stood two windows stale until #681's mint read it — the failure this page names for epics, on the page itself. All three are appends after0.1.10; nothing is renumbered and no gate moves.)0.1.1published15:26:53Z, the cut issue #321 closed15:47:01Z, the epic #280 closed15:51:48Z)0.1.2published2026-08-10T20:47:40Zat84ae65f, the epic #346 closed21:05:37Z,mainre-armed to0.1.3-dev. The cut issue #400 is still open inpost-mergewith one operator-owned criterion — unlike0.1.1, whose cut issue closed before its epic, so the window's close is #346's and never #400's. While the window stood: #346 = working surface and the declarations' anchor; #162 = ledger, closed16:23:53Zon 2026-08-03 once all twenty member declarations had been re-pointed onto #346, parse-verified — that close released nothing)2026-08-10T21:05:37Z, and triage opened it by hand the same minute. Release-init is at step 1: the epic's## To mint when this arc openslist stands at thirty-one bullets (re-counted in place by triage 2026-08-1509:2xZ— wasseventeeneighteennineteentwenty-fivetwenty-ninethirty; the eighteenth was folded into the epic at04:1xZand the nineteenth at18:3xZ, then six more on 2026-08-14 — entries 20–22 at20:5xZand 23–25 at21:3xZ— and four more this morning, entries 26–29 at07:5xZ, and a thirtieth at08:2xZ— @danmt's08:10:26Zdirection on discussion #456, the watch registries made floor-editable, recorded on the epic — see the last blocks of this cell), of whichnone is mintedone is — the board carries zeroreadyissues either way.One bullet — the terminal breaker's coverage across— that ruling is discharged; see the correction below) (Brought current by triage 2026-08-12claude/codex/grok— is held by aneeds-rulingset on #327 at2026-08-11T00:14:56Z, whose 24h default fires2026-08-12T00:14:56Z; the other fifteen, and steps 2–3 over them, are not held by it00:5xZ, from the mint and the label event rather than from this page. Theneeds-rulingof2026-08-11T00:14:56Zreached the ladder's 24h rung at2026-08-12T00:14:56Zwith no ruling and no reply, its statedDefault: Afired, and the flag was removed in the close-out. Option A was minted as #454 — the drill repair alone,bug+scope:drill+blocked— so this window now has its first member, and bullet 11of the sixteen is spent and annotated as such on the epic so a later init cannot mint it twiceis partially spent — for its option A alone, annotated as such on the epic — so a later init must not re-mint option A, and must still carry B and C. (struck 2026-08-1300:5xZ; see the annotation at the end of this cell). Options B and C were not minted and remain the operator's. Nothing else in the row moves, and the two figures that matter both hold for new reasons: still step 1, steps 2–3 not run, step 4 not asked — and still zeroready, because #454 declaresBlocked by #327and carriesblocked, exactly as step 1 below requires of every member.Fifteen bullets remain unminted.Sixteen do — a seventeenth bullet was folded into the epic atSixteen whole bullets do, and bullet 11's B/C remainder stands with them — seventeen items for steps 2–3 to graph (the seventeenth bullet was folded in at11:0xZ; see the11:1xZannotation below.11:0xZ, per the11:1xZannotation below; the remainder corrected 2026-08-1300:5xZ). #327 carriesepic+enhancement+releaseand no queue label. #452 is unaffected —still(struck 2026-08-12claimed/@cndgrr with PR #453 open in draft15:2xZ— it landed: that PR merged12:34:02Zand #452 closed12:34:04Z; see the15:2xZannotation at the end of this cell), andstill a non-member— admitted to this gate as its second member at09:0xZ, and out of draft since11:03Z; see the11:1xZannotation below.) (Re-counted by triage 2026-08-1121:4xZ, from #327's body rather than from this row — the two figures above have been corrected in place and read sixteen and fifteen. They were fourteen and thirteen when this page was last written at06:18:56Z, and both were true then. Two bullets have been folded into the epic since: thedrill/never-executed-legs entry at08:3xZand thedrill/agreement.shfloor-vs-CLI entry at17:1xZ. Counted at this write the way the ruling's ownBlocked:line says it counts — top-level-rows between## To mint when this arc opensand## Gate— the list holds sixteen, so the flag stops one and fifteen continue, with release-init steps 2–3 running over those fifteen. #327's thread has carried that figure since17:1xZ; this row had not, and a stale count here is the one a release-init session reads first. Nothing else in the row moves — still step 1, still zeroready, still no member minted, same gate, same ladder. One issue has been minted inside the open window and it isa non-membera member as of2026-08-12 09:0xZ(below): #452,(struck 2026-08-12claimed/@cndgrr with PR #453 open15:2xZ— merged and closed12:34Z), called non-member both in its own Dependencies and on #327 — so it is neither a to-mint bullet nor a member of this gate, and it does not move the sixteen.) (Brought current by triage 2026-08-1211:1xZ, from #327's live body and its gate clause rather than from this page — two deltas, both landed after the00:5xZblock above and neither of them visible from here. This is a map-only correction: nothing on the board moves, nothing is minted, closed, ticked or relabelled, and nothing is asked of @danmt or @cndgrr. Label-borne state re-read from each issue's own label events at this write and not from its thread — #327 isenhancement+release+epicwith no queue label; #454 isbug+scope:drill+blocked; #452 isbug+scope:duty+claimedwith @cndgrr assigned, itsattentionof10:57:48Zacked and removed at11:00:34Z(that reading is11:1xZ's: #452 closed12:34:04Zand still carries those three labels and that assignee, because a close moves neither — read it as a closed issue's residue and never as a live claim); the board carries zeroready. 1. The to-mint list is seventeen, not sixteen — so sixteen remain unminted, not fifteen. (And no bullet of the seventeen is wholly spent — corrected 2026-08-1300:5xZ: bullet 11 is #454's for option A alone, so what steps 2–3 graph is those sixteen plus that bullet's B/C remainder.) A seventeenth bullet was folded into #327 at11:0xZtoday: the zero-action resume breaker's suppressed-at-head state reaches no board surface, so a builder #314 has switched off is indistinguishable from a dead box. It was found live on #452 / PR #453 off @danmt's question about an eight-hour silence, and the trace is there. Counted at this write by the rule this row already states — top-level-rows between## To mint when this arc opensand## Gate, over #327's live body — the list returns seventeen.One is minted (#454, bullet 11), so sixteen are unminted and release-init steps 2–3 run over those sixteen.One is only partly minted — #454 is bullet 11's option A and nothing else — so sixteen whole bullets are unminted, and steps 2–3 run over those sixteen plus that bullet's B/C remainder. (Struck 2026-08-1300:5xZ.) Still step 1, steps 2–3 not run, step 4 not asked, still zeroready. The fold-in was announced on #452's thread and not on the epic's, which is why this row is the third surface to learn it — the same shape as the21:4xZcorrection below, and the second consecutive day this row's count has been found behind the epic's — two bullets yesterday, one today. 2. #452 is a member of this gate, and both blocks above call it a non-member. Triage admitted it at09:0xZ; the gate's declaration now readsBlocked by #454, #452.The reason it had been kept out — "this epic's gate is empty, so there is nothing for a non-member edge to attach to" — expired at2026-08-12T00:50:17Z, when #454 was minted into that gate: the window became standing under ceremony#292 D1 and the invariant switched on over the claimable set —readyorclaimed— which #452 is. Membership writes noBlocked byline on #452 and moved no label there; what it discharges is the sweep's non-member flag of00:52:46Z. What it costs this row:0.1.3has two members and cannot close until both do, andone of them is a live claim whose PR is handed off to the panel at(struck 2026-08-124f7eeb0— not the draft the00:5xZblock describes15:2xZ— that head merged as394bdadand the member landed; the first clause is unchanged, and #454 is now the only one of the two still open). #452 is still not a to-mint bullet and was never minted from that list; a gate records membership only, and the sixteen unminted bullets are unaffected by it.) (Brought current by triage 2026-08-1215:2xZ, from the merge and close events and a board count taken at this write rather than from this page — one delta, and it is this gate's first landing. A map-only correction: nothing is minted, closed, ticked or relabelled, no label moves anywhere, and nothing is asked of @danmt or @cndgrr. #452 landed — PR #453 merged2026-08-12T12:34:02Zas394bdadon its ownCloses #452, and the issue closed12:34:04Zwith all eight criteria ticked. Three sentences above describe it as a live claim — written at00:5xZ,21:4xZand11:1xZ— and each is corrected at its own site rather than only here. What it costs this row. #327's gate declaration is byte-unchanged —Blocked by #454, #452.— because a gate records membership only (ceremony#292 D2), so a member that has landed stays named in it; what moved is the parse, which now resolves to one open blocker, #454. The gate is therefore partially discharged and inert: no label moves, #327 stays open with no queue label, and0.1.3still cannot close until #454 does. The collision edge the two members carried onshared/test/run.shis spent — it never fired, and its discharge is recorded on #454. The two figures this row tracks both hold, re-counted at this write rather than carried: the to-mint list is still seventeen top-level bullets under the rule this row states, of which sixteen are unminted whole and a seventeenth is partly so (the remainder clause added 2026-08-1300:5xZ: bullet 11 is #454's for option A alone, its B and C stay on the list, so steps 2–3 graph seventeen items) — #452 was never one of them — and release-init is still at step 1, steps 2–3 not run, step 4 not asked. The board, counted at this write: 25 open — 19epic, 5post-merge, 1blocked— with 0ready, 0claimed, 0needs-triage, 0 open PRs, and noattention,needs-rulingorstaleanywhere. So the repo's whole claimable queue is #454, and it is held on step 1's held until ordered term. A builder arriving now has nothing to pick, and that is the window between mints rather than a stall.) (Brought current by triage 2026-08-1300:5xZ, from #327's live body rather than from this page — one delta, and it is an accounting correction rather than a movement. A map-only correction: nothing is minted, closed, ticked or relabelled, no label moves anywhere, no wave is flipped, and nothing is asked of @danmt or @cndgrr. The gate's member set is unchanged at {#454, #452} and #327's declaration line is untouched. The delta. This row was last brought current at15:2xZ. Fifty-five minutes before this write, #327 corrected what the word spent was counting on bullet 11, and that correction lands on a figure this row states in four places. The bullet's disposition marker had read "This bullet is spent: a later release-init session must not mint it again" while its own next two sentences said only option A was minted as #454 and that "Options B and C were not minted and remain the operator's". The arithmetic followed the marker and not the prose — on the epic, and here. What moves and what does not: the to-mint total is seventeen before and after; what was wrong is the remainder — sixteen whole bullets unminted plus bullet 11's B/C remainder, so steps 2–3 graph seventeen items, not sixteen. Why it is worth correcting here and not only on the epic. This row is the surface a release-init session reads first — this page's own first line is that the map is the map and the epics are the territory — and the stale form carries an instruction, not merely a count: "a later init cannot mint it twice". Executed as written it drops options B and C out of this window's graph, and those are the scope call on whether the terminal breaker's coverage stays where #388 deliberately left it — thebot_session_terminalhook live onkimi.confalone, one agent profile of four and one box of seven. That question has never been decided on the merits, it is the operator's, and its wake is step 4, where @danmt sees this window's population. This edit is what keeps the item in that population on both surfaces. It re-flags nothing: thatneeds-rulingepisode ran its full ladder and was removed2026-08-12T00:53:08Z, and the pick past 24h was triage's own. Corrected at four sites in this cell, each in place rather than only here: the00:5xZdisposition sentence and its "Sixteen do" figure, the11:1xZblock's headline and its restatement, and the15:2xZblock's re-count. The two21:4xZmeasurements — "the list holds sixteen" and "read sixteen and fifteen" — are left as written: they are stamped records of a count taken 2026-08-11, and the11:1xZblock already superseded them in place. Measured at this write, not carried.origin/mainis394bdadwithVERSIONat0.1.3-dev. #327's to-mint list re-counted by the rule this row states — top-level-rows between## To mint when this arc opensand## Gate— returns seventeen. The gate clause parses to {#454, #452}, of which #454 alone is open, so the gate is still partially discharged and inert and0.1.3cannot close until #454 does. Release-init is still at step 1; steps 2–3 have not run and step 4 has not been asked. Label-borne state re-read from each issue's own label events rather than from its thread: #327 isenhancement+release+epicwith no queue label; #454 isbug+scope:drill+blockedsince2026-08-12T00:50Z, unassigned. The board, counted at this write: 25 open — 19epic, 5post-merge, 1blocked— with 0ready, 0claimed, 0needs-triage, 0 open PRs, and noattention,needs-rulingorstaleanywhere. Unchanged from the15:2xZreading: the repo's whole claimable queue is #454, and it is held.) (Brought current by triage 2026-08-1304:2xZ, from #327's live body rather than from this page — one delta, and it is a fold-in rather than a movement. A map-only correction: nothing is minted, closed, ticked or relabelled, no label moves anywhere, no wave is flipped, and nothing is asked of @danmt or @cndgrr. The gate's member set is unchanged at {#454, #452} and #327's declaration line is untouched. The delta. An eighteenth to-mint bullet was folded into #327 at04:1xZ:.github/labeler.ymlhas six tracked paths that match no scope row, so a pull request touching only them is labelled with nothing — #238's defect back by drift, with every row that issue wrote still intact. Two of the six landed after #238's census (.github/actions/release-artifact/action.yml,postmortems/), one landed during its own round and fifteen hours before its merge (.github/workflows/labels-sweep.yml), one is a miss inside its stated bound (shared/crontab.example), one was never in that bound (.box/README.md), and.gitignoreis correctly unscoped. It was found by the hourly board pass, which turned up no issue-flow defect at all. What the figures read now, re-counted by the rule this row states — top-level-rows between## To mint when this arc opensand## Gate, over #327's live body: the list returns eighteen, of which seventeen are unminted whole and bullet 11's B/C remainder stands with them, so steps 2–3 graph eighteen items. #327's own three live figures were corrected in the same tick and agree. The four dated blocks above are left exactly as written, and that is a decision rather than an omission: each is stamped at its own time (00:5xZ,11:1xZ,15:2xZ,00:5xZ) and each states a count that was true when taken — a fold-in moves the total forward and falsifies none of them, unlike the00:5xZcorrection below it, which had to reach into every site because it changed what a word counted. Only this row's undated headline asserted the total in the present tense, and it is corrected there. Measured at this write, not carried.origin/mainis394bdadwithVERSIONat0.1.3-dev. The gate clause parses to {#454, #452}, of which #454 alone is open, so the gate is still partially discharged and inert. Release-init is still at step 1; steps 2–3 have not run and step 4 has not been asked. Label-borne state re-read from each issue's own label events rather than from its thread: #327 isenhancement+release+epicwith no queue label; #454 isbug+scope:drill+blockedsince2026-08-12T00:50Z, unassigned. The board, counted at this write: 25 open — 19epic, 5post-merge, 1blocked— with 0ready, 0claimed, 0needs-triage, 0 open PRs, and noattention,needs-rulingorstaleanywhere. Unchanged from the00:5xZreading: the repo's whole claimable queue is #454, and it is held.) (Brought current by triage 2026-08-1318:3xZ, from #327's live body rather than from this page — one delta, and it is a fold-in rather than a movement. A map-only correction: nothing is minted, closed, ticked or relabelled, no label moves anywhere, no wave is flipped, and nothing is asked of @danmt or @cndgrr. The gate's member set is unchanged at {#454, #452} and #327's declaration line is untouched. The delta. A nineteenth to-mint bullet was folded into #327 at18:3xZ:ensure_checkout— the step that keeps every box's clones current "so sessions read current doctrine" — warns every tick, forever when a clone is clean but parked on a branch with noorigin/counterpart, and says nothing at all when the clone is dirty. That is #167's defect class at a site its population never reached, and both halves are live onclaude-triageat this write: 39 WARNs namingheavy-duty__incubatorbetween2026-08-12T19:35:38Zand2026-08-13T17:18:59Z— the only WARN of any kind on the box since the0.1.2upgrade — against zero lines, ever forheavy-duty__crew, which sits 450 commits behindorigin/mainwith 137 porcelain entries. Found by the hourly board pass, which — as at04:1xZ— turned up no issue-flow defect at all. What the figures read now, re-counted by the rule this row states — top-level-rows between## To mint when this arc opensand## Gate, over #327's live body: the list returns nineteen, of which eighteen are unminted whole and bullet 11's B/C remainder stands with them, so steps 2–3 graph nineteen items. #327's three live figures and its1/16 → 1/18ratio argument were corrected in the same tick and agree. Three other #327 edits landed between the04:2xZblock above and this one, and none of them moves this row — checked rather than assumed: the08:4xZre-pricing of seven bullets whose holds expired at the tag (a step-1 reading that moves no count and no membership), the14:1xZstrikes that put #452's reversed membership where a reader reaches it (this row has recorded that membership since11:1xZ), and the16:3xZcorrection of #327's header provenance from#162to #346 (this page's chain line has read0.1.2 (#346)throughout). The dated blocks above are left exactly as written, for the reason the04:2xZblock gives: each states a count that was true when taken, and a fold-in moves the total forward without falsifying any of them. Measured at this write, not carried.origin/mainis394bdadwithVERSIONat0.1.3-dev. The gate clause parses to {#454, #452}, of which #454 alone is open, so the gate is still partially discharged and inert. Release-init is still at step 1; steps 2–3 have not run and step 4 has not been asked. Label-borne state re-read from each issue's own label events rather than from its thread: #327 isenhancement+release+epicwith no queue label; #454 isbug+scope:drill+blocked, all three at2026-08-12T00:50Z, unassigned. The board, counted at this write: 25 open — 19epic, 5post-merge, 1blocked— with 0ready, 0claimed, 0needs-triage, 0 open PRs, and noattention,needs-rulingorstaleanywhere. Unchanged from the04:2xZreading: the repo's whole claimable queue is #454, and it is held.) (Brought current by triage 2026-08-1501:5xZ, from #327's live body rather than from this page — one delta, and it is the largest this row has carried: six bullets across two fold-ins, both on 2026-08-14, neither of which reached this page. A map-only correction: nothing is minted, closed, ticked or relabelled, no label moves anywhere, no wave is flipped, and nothing is asked of @danmt or @cndgrr. The gate's member set is unchanged at {#454, #452} and #327's declaration line is untouched. The delta. Entries 20–22 were folded in at20:5xZ— theclaude-triageOOM incident's engine yield: an unbounded session that can take the whole box down, aSESSION ENDthat carries no memory figure, and the fourth session shape (SESSION STARTwith no end) that the evidence path cannot see. Entries 23–25 followed at21:3xZ— @danmt's recovery ask on #455, directed onto this epic in his own words: a force stop the floor can fire, arestartthat stops reading past its own failed stop, and an out-of-band alert when a box goesUNREACHABLE. Two of the four asks in that direction already ship — the ping tier's detection and the per-boxrestart/power-on/power-offarms — so only three entries were recorded. Why this row was two fold-ins behind, and it is the standing shape rather than a lapse: the20:5xZfold-in was announced on discussion #455's thread and the21:3xZone on #327's, so neither landed where this page could see it — the same failure recorded against this row on 2026-08-11 and twice on 2026-08-12. What the figures read now, re-counted by the rule this row states — top-level-rows between## To mint when this arc opensand## Gate, over #327's live body: the list returns twenty-five, of which twenty-four are unminted whole and bullet 11's B/C remainder stands with them, so steps 2–3 graph twenty-five items. #327's own body was stale too and was corrected in the same tick — three sites, one of them the "Release-init is still at step 1" sentence that steps 2–3 run off, which had missed both fold-ins and read nineteen; recorded on that thread. So this row was not merely trailing the epic — for four hours no surface carried the right total. The dated blocks above are left exactly as written, for the reason the04:2xZblock gives: each states a count that was true when taken, and a fold-in moves the total forward without falsifying any of them. Measured at this write, not carried.origin/mainis394bdadwithVERSIONat0.1.3-dev. The gate clause parses to {#454, #452}, of which #454 alone is open, so the gate is still partially discharged and inert. Release-init is still at step 1; steps 2–3 have not run and step 4 has not been asked. Label-borne state re-read from each issue's own label events rather than from its thread: #327 isenhancement+release+epicwith no queue label, unassigned; #454 isbug+scope:drill+blocked, all three at2026-08-12T00:50Z, unassigned. The board, counted at this write: 25 open — 19epic, 5post-merge, 1blocked— with 0ready, 0claimed, 0needs-triage, 0 open PRs, and noattention,needs-rulingorstaleanywhere. Unchanged from the18:3xZreading: the repo's whole claimable queue is #454, and it is held.) (Brought current by triage 2026-08-1507:5xZ, from #327's live body rather than from this page, and this one is same-tick rather than trailing. A map-only correction: nothing is minted, closed, ticked or relabelled on any issue by this edit, no wave is flipped, and the gate's member set is unchanged at {#454, #452} with #327's declaration line untouched. One label did move on #327 in the originating tick and it is not a queue label — see the ask below. The delta. Entries 26–29 were folded into #327 at07:5xZ: the four candidate issues @claude-bot-andresmgsl posted on that thread at07:41–07:42Zon @danmt's behalf, out of discussion #456 —_resume_attach_commentshanding a PR's whole comment thread tojqon argv, so a thread past 131,072 bytes drops that PR out of resume detection permanently; capping PR rounds with a successor PR and a ledger predecessor; making PRs smaller as a stated triage sizing obligation; and the engine knowing and flagging its own operating limits. Recorded, not minted, and triage's reading of them is on #456: the bug reproduces atorigin/mainand not only on the deployed0.1.2pin; candidates 2 and 3 are two mints each, their doctrine halves being heavy-duty/ceremony's rather than crew's, since.ceremony/here is a machine-managed mirror a hand edit reds; and candidate 4's channel question was already decided by entry 25. The ask this row must carry.needs-rulingis set on #327 at2026-08-15T07:53:08Z— the07:5xZask — on whether entry 26 mints now, ahead of this window's wave, or with it at step 4. Recommendation A (mint now), timed default A at2026-08-15T18:00Z, reversible in full. It holds entry 26 alone: entries 1–25 and 27–29 are held by release-init step 1 exactly as before and by nothing this flag adds. (Both sentences are spent — the ask was ruledBat2026-08-15T09:09:21Z; see the09:1xZblock at the end of this cell. The default was suspended at08:2xZand is now void, not fired, and this flag now holds nothing. Annotated here rather than only appended, because a reader arriving at18:00Zreads this sentence.) What the figures read now, re-counted by the rule this row states — top-level-rows between## To mint when this arc opensand## Gate, over #327's live body: the list returns twenty-nine, of which twenty-eight are unminted whole and bullet 11's B/C remainder stands with them, so steps 2–3 graph twenty-nine items. #327's own three live figures and its1/Nratio were corrected in the same tick and agree. The dated blocks above are left exactly as written, for the reason the04:2xZblock gives: each states a count that was true when taken, and a fold-in moves the total forward without falsifying any of them. Measured at this write, not carried.origin/mainis394bdadwithVERSIONat0.1.3-dev. The gate clause parses to {#454, #452}, of which #454 alone is open, so the gate is still partially discharged and inert. Release-init is still at step 1; steps 2–3 have not run and step 4 has not been asked. Label-borne state re-read from each issue's own label events rather than from its thread: #327 isenhancement+release+epicsince2026-08-03T14:41:37Zplusneeds-rulingsince2026-08-15T07:53:08Z, no queue label, unassigned; #454 isbug+scope:drill+blocked, all three at2026-08-12T00:50Z, unassigned. The board, counted at this write: 25 open — 19epic, 5post-merge, 1blocked— with 0ready, 0claimed, 0needs-triage, 0 open PRs, noattentionand nostaleanywhere, andneeds-rulingon #327 alone. Unchanged from the01:5xZreading: the repo's whole claimable queue is #454, and it is held — which is the sharpest argument in the ask below it.) (Brought current by triage 2026-08-1509:1xZ, same-tick with the closeout rather than trailing, and read from the ruling and the label event rather than from this page. A map-only correction: nothing is minted, closed, ticked or relabelled by this edit, no wave is flipped, the gate's member set is unchanged at {#454, #452}, and #327's declaration line is untouched and still parses toLOCAL 454andLOCAL 452. The delta, and it is the whole of it: the07:5xZask is RULEDB. @danmt at2026-08-15T09:09:21Zon discussion #456 — “Lets go with B” — replying to the narrow A/B question. Entry 26 mints with the wave at release-init step 4, not ahead of it, and now carries no hold of its own: it is held by step 1 exactly like the other twenty-nine bullets. Triage recommended A; the operator ruled B; the recommendation is spent and is not to be re-raised at the mint. One label moves and it is not a queue label:needs-rulingwas removed from #327 at09:1xZ, the episode that began2026-08-15T07:53:08Zclosed inside the ladder's first rung — so no default fired at18:00Zand triage owes no pick at2026-08-16T07:53Z; that rung is void. The flag comment carries the ruling in place; the record is here. What the figures read now, re-walked at this write rather than carried: the to-mint list returns thirty, of which twenty-nine are unminted whole with bullet 11's B/C remainder standing among them, so steps 2–3 graph thirty items — unchanged by this tick, which adds no bullet. Measured at this write:origin/mainis394bdadwithVERSIONat0.1.3-dev; release-init is still at step 1, held until ordered; steps 2–3 have not run and step 4 has not been asked. Label-borne state re-read from each issue's own label events: #327 isenhancement+release+epicsince2026-08-03T14:41:37Zand carries no other label, no queue label, unassigned; #454 isbug+scope:drill+blocked, unassigned. The board, counted at this write: 25 open — 19epic, 5post-merge, 1blocked— with 0ready, 0claimed, 0needs-triage, 0 open PRs, noattention, nostale, andneeds-rulingnowhere in the repo. The claimable queue is still #454 and it is held; underBthat is the state until the operator blesses wave 1.) (Brought current again by triage 2026-08-1509:2xZ, same tick as the fold-in. A map-only correction, and it is a count move: the to-mint list goes fromthirtyto thirty-one. Entry 31 is @danmt's09:11:23Zdirection on discussion #456 — "there should be minimal prose in the PR's body and we should scope that into 0.1.3 too", recorded on the epic in this same tick. Triage's measurement changes its owner rather than its scope: a builder writes no PR-body prose at all, so this is an engine deliverable —_mirror_roundscopies each whole-round reply verbatim into the body's## Round log, at 6–9 KB a round, which is what put incubator#188's body at 203,623 bytes. A latent defect on the same function is recorded with it: that query fetchescomments(first:100)— the oldest hundred — so past a hundred comments the engine mirrors recent rounds as "Round passed with no written reply", read from the code and not observed firing. What the figures read now, re-walked over #327's live body: the list returns thirty-one, of which thirty are unminted whole with bullet 11's B/C remainder standing among them, so steps 2–3 graph thirty-one items; #327's two count sentences and its1/Nratio chain were corrected in the same tick and agree. Nothing else moves: nothing minted, closed, ticked or relabelled, no wave flipped, the gate still {#454, #452} with the declaration line untouched, release-init still at step 1, held until ordered, and #327 carriesepic/enhancement/releaseand nothing else — no queue label, noneeds-ruling, unassigned.) (Release-init steps 1–3 ran 2026-08-24 at @danmt's direction, and this cell's "step 1" reading is spent. Step 1 minted 32 issues, #473–#504, so all thirty-one bullets are discharged — dispositions are a table in the epic body, and the carried children #122/#124 were re-minted fresh as #475/#485 rather than re-opened, per this page's own ordering rule. Step 2 derived the graph from the deliverable sets of all 47 members and reduced it transitively; the parse was run over every member with ceremony0.6.2'sblocked_reference_records— 47 of 47 return exactly their declared edges and none returns its own number. Step 3 wrote 16 waves under this epic's first## Task listheading. Only four members carry the step-1 hold — #470, #458, #489, #500, the graph's sources — so step 4 is four edits, not forty-seven. Three defects were repaired in the same pass, including #470 declaring itself as its own blocker, which would have made the front-row issue unflippable. The full record.)0.1.4 … 0.1.13#328 #339 #329 #330 #331 #332 #340 #676 #677 #681Ten windows.(superseded 2026-09-05 — compacted into the three rows above at the operator's direction; each closed epic is a ledger the carrying window mints from. See the correction below.)0.2.xsink —0.3.0opens on it)0.2.6in place 2026-09-05; parallel track gated on #697 alone)0.2.0 … 0.2.6#163 #333 #334 #335 #336 #442 (#348 kept)Seven windows.(superseded 2026-09-05 — six closed as ledgers into the two rows above, plus #295 the governance-chairs epic into #697; #348 renumbered rather than re-minted. See the correction below.)Two standing rules, carried from the boards that taught them: an issue enters a release by decision, not default (#162's rule, generalized), and the map defers to the machine — child issues keep their
Blocked bydeclarations as the sweep parses them today; re-declaration happens when each window opens, never in bulk.(Two rows corrected by triage 2026-08-03
17:1xZ, from release and close events rather than from this page.0.1.1read "cutting now" — it shipped two hours earlier.0.1.2read "#162 = ledger, held open as the declarations' anchor" — #162 was closed at16:23:53Z, thirty seconds after the last of its twenty member declarations was re-pointed onto #346, and the anchor has been #346 ever since. Re-measured at this edit withblockers.jq's own clause parse over every openblockedbody: 22 held, all 22 naming #346, none naming #162 or #163. The second standing rule above is exactly why that matters — the map defers to the machine, so a map row that names the wrong anchor sends the next reader to re-declare against a closed issue.)(One row added by triage 2026-08-07
19:2xZ, from the board rather than from this page. The table ended at0.3.0and the chain sentence below ended there too, while #367 —0.3.1, minted2026-08-05T15:53:02Zat @danmt's direction,epic+release, open — had sat off the map for two days. It is not a stray thought: its Gate section reads "Opens when #337 closes […] triage runs the release-init cycle defined on the roadmap", so it points at this page for the procedure that opens it, and this page did not point back. Asserted absent before it was added:#367and0.3.1appear nowhere in this body, and across all seven comments the number occurs exactly once — inside the16:22Zrelease-parse measurement of 2026-08-07, as one of nineteenrelease-labeled bodies, never as a row. #337 does not name a successor either, so nothing on either surface closed the loop. This is the same class as the#291placement question — three surfaces pointing at a referent that was on none of them — one step further along the chain.)(One row inserted and one renumbered by triage 2026-08-09, at @danmt's direction.
0.2.5is now #442 — ephemeral boxes — and Jarvis becomes0.2.6. This is a chain edit, not a row edit, and that is the part a later reader would otherwise have to derive: #442 opens when #336 closes, taking the link #337 held, and #337 (0.3.0) now opens when #442 closes — without that second move the inserted window would be the one link in the chain nothing waits for, and0.3.0would open on the arc's old sink. #348's gate is untouched: it is gated on #163 alone as a pre-declared parallel track, which is exactly what made0.2.5the one insertion point in this table that re-sequences nothing. Why here. Ephemerality's two hard preconditions are the two windows immediately before it —0.2.2's minutes-long mints and0.2.3's member-survives-its-box — and its consumer is0.3.0, whose many-fleets-many-repos shape needs one host to hold twenty to forty members at rest. It also gives a window to four successor conditions the 0.1.x telemetry annotations had already named with nothing to carry them: host-held credentials and a real pool concept, #124's in-box→host-side quota inversion, #328's teardown-triggered drain, and lifecycle-triggered vitals sampling — all recorded on #442 rather than re-derived at init. One prose reference re-pointed in the same tick: #163's promotion note named the voice release as "#348 (0.2.5 — jarvis)" — right number, stale version string. No member declaration is affected: declarations name issue numbers, and no issue number moved.)(Two rows brought current by triage 2026-08-11
06:2xZ, from the release, tag and close events rather than from this page. The0.1.2row had read as the live window ever since it stopped being one: its cell named #346 "working surface and the declarations' anchor" in the present tense and carried none of the ship, while0.1.1— the row directly above it — is the one that set the convention it was missing. This is this page's own named failure mode, from the 2026-08-03 note above: "the map defers to the machine, so a map row that names the wrong anchor sends the next reader to re-declare against a closed issue." Measured, not carried: release0.1.2published2026-08-10T20:47:40Zwithcrew-0.1.2.shand its.sha256, tag0.1.2at84ae65f, #346closed_at 21:05:37Zstate_reason=completed,origin/main:VERSION=0.1.3-dev. The row deliberately does not copy0.1.1's shape. That row records a cut issue closed before its epic; #400 is open inpost-mergewith one criterion the operator owns, so a reader inferring the pattern would wait on a close that is not coming — andpost-mergeis a completion queue, not a gate. Nothing on the board moved for this edit, and that is the finding. #327 has recorded this window open since21:06:08Z— the territory was current and only the map was not, which is the drift a scan of the epics alone cannot see. The0.1.3cell states the board as counted at this write: 0ready, 0claimed, 0blocked, 5post-merge, 19epic, 0 open PRs.)The release cycle — gates chain, and release-init fills the window
(Added 2026-08-03 at the operator's direction, the same day the chain was declared on the epics.)
The chain: every version epic names the previous one as the gate that opens it — 0.1.2 (#346) → 0.1.3 (#327) → … → 0.1.10 (#340) → 0.1.11 (#676) → 0.1.12 (#677) → 0.1.13 (#681) → 0.2.0 (#163, double-gated on #340 and #207's unattended week — unchanged by the three windows appended after 0.1.10: #163's gate names #340 itself, not “the last 0.1.x window”, so 0.2.0 opens on transport plus the unattended week no matter where the store's read surfaces land) → 0.2.x → 0.3.0 → 0.3.1 (#367). Shipping a release closes its epic, and that close opens the next window. No one schedules it — finishing the last one is the schedule. The opening is triage's, by hand: the epic carriesepicand no queue label throughout, and triage runs release-init when it reads the previous epic's close.The chain, re-declared 2026-09-05: 0.1.2 (#346) → 0.1.3 (#327, the open window) → 0.1.4 (#694) → 0.1.5 (#695) → 0.1.6 (#696) → 0.2.0 (#697, double-gated on #696 and #207's unattended week — #163's gate carried forward, and the open call about where it sits is settled: it moves with the chain, to the last
0.1.xwindow) → 0.2.1 (#698, the0.2.xsink) → 0.3.0 (#337) → 0.3.1 (#367). 0.2.2 (#348, jarvis) opens on #697's close as a parallel track and gates nothing. Shipping a release closes its epic, and that close opens the next window by hand, exactly as before.Release-init — because a freshly-opened window is empty by design (the board carries epics and the current window only), the previous epic's close is the trigger, not a backlog. Triage then runs, in order:
Mint the members: the epic's own "To mint when this arc opens" list, plus every finding, discussion thread, and deferred re-route the fleet accumulated since the epic was written. Each member declares
Blocked by <the epic>— held until ordered.Since 2026-08-03 most windows open with closed issues rather than an empty board, and step 1 starts there. The operator-directed board-hygiene pass closed 22 issues outside the current window between
15:53:05Zand15:55:02Z, each close comment naming the roadmap epic that carries it — so the first act of an init is to re-open the members this epic already carries, or mint fresh from them against the then-current tree, exactly as those close comments say, and only then work the "To mint" list and everything accumulated since. Each carrier epic records its own carried set in its Children section. A carried member is a spec that survived; re-deriving it from scratch spends the context the close was written to preserve.Re-point the declaration before the re-open, in that order — a re-opened member is a live board entry the moment it opens. A carried member still carries the
blockedlabel it closed under and the declaration it closed with, and those declarations name 0.1.2 — polish after first real use, and the fixes that only a used fleet can justify #162 and two days of the fleet are on the record — get the reports in before the boxes forget, and let the findings re-cut 0.1.2 #290, both closed 2026-08-03. The hourly sweep readsblocked+ an all-closed declaration set asREADYand promotes it, which is this page's two standing rules broken by the first act of an init. Measured by executing the pinnedblocked_decisionover each carried body as it stands, not by reading it: 13 of the 23 decideREADYon re-open, 10 decideKEEP— 0.1.3 — telemetry: the box stops being a black box #327 1 of 3 (bot_quota_report() — optional vendor quota, enriching the report without founding it #124), 0.1.4 — collector + database: evidence survives the box #328 2 of 2 (crew usage — aggregate the session ledger by credential pool, on the host #123, The console shows no cost — surface per-box consumption and per-pool quota in fleet-floor #125), 0.1.5 — the engine owns the protocol: single-job agents #339 1 of 2 (The reviewer announce and the skip decision live in prompt convention, not in the engine #193), 0.1.7 — fleet floor: command-style operations #330 1 of 1 (shared/ + cli/crew — crew pause / crew resume: one pause mechanism, reachable without a console #284), 0.1.9 — harden the doors #332 7 of 7 (.github/actions/release-artifact — build crew-<version>.sh through ceremony's asset hook, so both release doors attach it #210, release-guards — dispatch the guards at the post-release tip, which today carries no verdict at all #211, main — a ruleset with required checks and strict up-to-date, so a release PR cannot merge stale #212, drills — bind the drill record to the tree it drilled, so a release cannot inherit another tree's green #213, dist/make-installer.sh — a declared payload set, so the artifact ships code and not 29 MB of render evidence #214, dist/make-installer.sh — byte-reproducible payloads: exclude the output, normalise tar metadata #215, shared-ci — the paths filter exempts release PRs, so the one tree with a bare VERSION is the one tree the suite never runs on #324), 0.2.1 — more chairs: new roles on the droid model #333 1 of 2 (shared/lib/roles.sh — a role with a profile and no duty module is refused, not hired into a box that ticks forever #246), and 0 of the rest (0.1.8 — fleet floor: talk to the crew #331, 0.1.10 — transport: the engine stops speaking GitHub #340, 0.2.0 — the crew works for weeks, and the operator only rules and merges #163, 0.2.3 — restore and continuity: a member survives its box #335). 13 + 10 = 23. 0.1.9 — harden the doors #332 (0.1.9) is the whole-window case: every one of its seven members goes claimable in the first sweep after the re-open, unordered, before steps 2–4 run at all. And the ten that hold do so incidentally — they name 0.2.0 — the crew works for weeks, and the operator only rules and merges #163 or 0.1.5 — the engine owns the protocol: single-job agents #339, which merely happen to still be open — so the protection disappears the moment 0.2.0 — the crew works for weeks, and the operator only rules and merges #163 closes rather than being a property of the procedure. The fix is one ordering rule and costs nothing: edit the closed body first so the member declaresBlocked by <the epic>as step 1's own sentence above requires, then re-open. A closed issue's body is editable, so this needs no new mechanism. (Added by triage 2026-08-05. The re-open half of step 1 is crew-local — the family doctrine's step 1 says "mint" and never contemplates a window opening onto closed carried members — so the gap is this page's to close and is raised upstream as ceremony#324.)0.1.3)20:37:57Z, later the same evening and outside the pass0.1.4)20:37:43Z— it consumes crew usage — aggregate the session ledger by credential pool, on the host #123's aggregation, so it follows its data source)0.1.5)0.1.7)0.1.8)0.1.9)0.1.10)0.2.0)0.2.1)0.2.3)Twenty-two in the pass, plus The fleet spends a shared metered resource with no instrument — session accounting per credential pool #121 that evening — twenty-three carried in all — derived from the close events and each close comment's named carrier rather than from any list. (The pass's own window closed 23 issues; CHANGELOG.md — the preamble marker still says 0.1.0 has not been cut, three lines above the section that cut it #325 is the twenty-third and is not carried, because it landed by PR rather than being deferred. A carried close and a delivered close look identical on a board scan and are opposite facts.) None of the twenty-three landed — every one is unbuilt work whose spec is intact, and all of them still carry the queue label they had when they closed, because a close does not move it.
(Two cells corrected by triage 2026-08-03
20:5xZ, from the ruling and the close events rather than from this page. 0.1.3 — telemetry: the box stops being a black box #327's row read "run_session records no token or cost figure — capture the usage block and the pool identity #122, bot_quota_report() — optional vendor quota, enriching the report without founding it #124, The console shows no cost — surface per-box consumption and per-pool quota in fleet-floor #125 (inside the open epic The fleet spends a shared metered resource with no instrument — session accounting per credential pool #121)" — The fleet spends a shared metered resource with no instrument — session accounting per credential pool #121 closed at20:37:57Z, so a reader was being sent to an open epic that is not one, and The console shows no cost — surface per-box consumption and per-pool quota in fleet-floor #125 had been ruled onto 0.1.4 — collector + database: evidence survives the box #328 fourteen seconds earlier. That correction matters more than a stale tense, because step 1 tells an init to work from the close comments, and The console shows no cost — surface per-box consumption and per-pool quota in fleet-floor #125's close comment named 0.1.3 — telemetry: the box stops being a black box #327 and has no way to know it was superseded: the init would have carried the console's cost view into the telemetry window, one release ahead of the aggregation it reads from. The console shows no cost — surface per-box consumption and per-pool quota in fleet-floor #125's close comment now carries the supersession inline, both epics' Children sections are corrected, and 0.2.0 — the crew works for weeks, and the operator only rules and merges #163's carried-closes table — the other lookup that resolved The console shows no cost — surface per-box consumption and per-pool quota in fleet-floor #125 — is corrected too. The four other cells and the totals-by-carrier are unchanged.)Graph them: hard
Blocked byedges plus same-file clusters, drawn on the epic (the 0.1.2 — polish after first real use, and the fixes that only a used fleet can justify #162→0.1.2 — polish: the clean gate (working surface; #162 is the ledger) #346 pass is the worked example).Write the waves into the epic body — the epic is the clean working surface; checklists in claim order, verification lane separate, and the progress view under a heading literally
## Task list(case-insensitive, nothing after it but optional whitespace), as one contiguous block: the sweep's reader stops at the next line beginning with#. Everything else —## Children,## To mint when this arc opens, wave headings — is deliberately not a completion input.(Heading requirement added by triage 2026-08-09
12:5xZ. It is not new doctrine — it has governed crew since2026-08-05T10:23:05Z, and this step has been behind it for two days. PR #354 vendored ceremony 0.6.0 atfb3e0de, putting the sentence into both.ceremony/TRIAGE.md(“any other heading is invisible to the sweep and draws neither a warning nor a completion nudge”) and.ceremony/RELEASES.md(“Other member or wave headings are not completion inputs”). This page is the copy an init session actually reads, and it omitted the one detail the machine keys on — which is why none of the twenty open epics carries the heading and the completion nudge has never fired here. The requirement belongs to the progress view of an opened window, never to a carried-member list: renaming each epic’s existing checklist heading would fire seven immediate false nudges at unopened windows. Both figures are measured by executing the pinned parser rather than read — the measurement.)The operator blesses the order; triage flips wave 1 (delete or rewrite the member's literal
Blocked byclause into non-parseable prose, swap the label, one edit each). Issues enter a release by decision, never by sweep-default — the chain automates the opening, never the contents. ("strike" corrected to "delete or rewrite" by triage 2026-08-05, by executing crew's own pinned parser rather than by reading it.blocked_referencesfromissueflow-reconcile.sh@0.5.0— the tag all nine of crew'suses:pins name — returns327for both~~Blocked by #327~~ Admitted to wave 1.and<s>Blocked by #327</s> Admitted to wave 1., and returns the empty set only once the clause is deleted or rewritten. The parser reads raw marker text and never sees the formatting, so a struck declaration is a live declaration: this step as worded sanctioned exactly the false-hold class the sentence beside it exists to prevent. This is not a new discovery — it is ceremony#248's18:22Zamendment of 2026-08-03, whose word this step's "strike" was, and it now reads in the shipped family doctrine (RELEASES.md, Flip mechanics): "Markdown or HTML strikethrough is insufficient." That file does not govern crew yet — it is absent from0.5.0and from.ceremony/, and reaches this repo only when #350 vendors0.6.0; until then this page is the procedure a triage session actually reads, which is why the correction is made here rather than waited for. crew has already paid for this twice, both repaired by rewrite: fleet-floor — the HUD's state filter splits offline the way its counters do: a Disarmed chip beside Silent #312's spent#203marker (2026-08-04) and The floor computes staleness across two clocks, so a healthy fleet reads as offline #181's quoted#140(2026-08-0509:21Z).)Ship via the cut-issue pattern (Release 0.1.1 — the cut, from #280's ledger #321's shape: probe → merge → tag door → artifact → canary → roll), close the epic, and step 1 fires for the next window.
One primary window, declared parallel tracks (operator ruling, 2026-08-03). Gates open windows; they do not start work — members flip only at init, so builders never choose between windows: they see one queue. The default is one primary window at a time, because the cut takes whatever landed and interleaved windows blur the release story. The exception is a declared parallel track: a window whose footprint is disjoint from the primary's — a different repo, or provably non-overlapping clusters — may run beside it by the operator's declaration at init. #348 (jarvis) is pre-declared as such a track: the app is its own repo and artifact with its own version stream; only its small crew-side bridge set joins a primary window. The chain below is the default order, not a law — gates are one-line edits, and re-gating at init is the operator's move.
An epic whose init finds nothing worth minting is itself a finding: the operator either folds the window forward or skips the version by ruling, recorded on the epic before it closes unshipped.
Correction, 2026-08-03
16:5xZ— the chain's opening is triage's, not the sweep'sThe two paragraphs above were corrected in place today. As first written, this section said that shipping a release "closes its epic; the sweep flips the next one
readyin the same pass", and that areadyversion epic was the release-init trigger. Both were false, and fourteen epic bodies had been written to match.Measured by executing the pinned reconciler's own decision function, not by reading it.
queue_decisionfromissueflow-reconcile.sh@0.5.0— the pin.github/workflows/labels-sweep.ymlconsumes — run over the real label sets:epic+blocked(the fourteen epics as they stood)FLAG_CONFLICTepicalone (#346, #207, #295 — and now every epic on the board)KEEPFLAG_CONFLICTmakesreconcile_issuecomment andreturn— before theblockedbranch that performs theblocked→readypromotion, and before the epic-completion nudge. So the sweep could never have fired this trigger. It did not fail quietly either: it left aqueue-conflictcomment on all fourteen (#163, #327–#337, #339, #340) between16:24:28Zand16:33:55Z, refusing to infer intent, which is exactly what it should do. #163 carries a fifteenth, from2026-07-29T14:42:02Z— the same composition, made and undone 43 minutes later that day. The board has now told us this twice.The second half was wrong independently of the first. Even had the promotion fired, a
readyversion epic contradicts LABELS.md's "builders never pick an epic":readyis what the board offers a builder, and a prose caution underneath it is not a caution — the lesson #291 and #128 already paid for.What changed, and what did not. All fourteen epics now carry
epicalone, matching #346, #207, #295 and #121; each gate paragraph has been rewritten to name the opening as triage's; the version ordering, the gate targets and the five release-init steps are untouched. What the fleet loses is a machine wake: nothing now fires when a release epic closes, so release-init is triage's to notice. Step 5 already ends "close the epic, and step 1 fires for the next window" — that sentence is now the whole mechanism, and it is a human-shaped one.Two upstream defects came out of the measurement, raised where they belong rather than fixed here — whether
epicshould compose with the queue labels at all is ceremony's design question, and a second one about a failed API read becoming a label write. Neither blocks anything on this board.One contradiction fell out of the same pass. #163 carried two live gate declarations — the 2026-07-29 hold on #162 in its Dependencies section, and today's #340 + #207 gate in its release-cycle section. A reader resolves that by guessing. The #162 declaration is now struck as a hold and kept only as the record of how the work was ordered (the same treatment #181 gives its discharged one); #163 has exactly one gate, and it is #340 + #207, as this map says.
Triage, 2026-08-03.
Standing intents, recorded before their windows
(2026-08-03, the operator's musts — each lives in full on its carrying epic; listed here so the map shows them.)
send commandper member — the auditedbox execwrapper on the member page; carried on 0.1.7 — fleet floor: command-style operations #330.0.2.50.2.6), native Android, the glowing presence, the notification→ring→phone ladder. (Version string corrected by triage 2026-08-1604:5xZ, from this page's own table rather than from this line. 0.2.2 — Foreman: the operator's voice to the foreman, a native app that is one presence you talk to #348 was renumbered0.2.5→0.2.6on 2026-08-09, when #442 — ephemeral boxes — was inserted at0.2.5; the issue number never moved, so this is a stale version string on a live row and not a re-sequencing. This page has contradicted itself for seven days: the table above has read0.2.6 | #348since that mint, and so have #348's own title and body, #442's What this insertion moved section, and #163's promotion note — five surfaces, of which this line was the only one still stale. The renumber note in the block above the Standing intents heading says it re-pointed “one prose reference”; there were two, and the second was six lines below it, on the page that note was written on. Nothing on the board moves on this edit: no row is added or removed, no gate or declaration changes, and 0.2.2 — Foreman: the operator's voice to the foreman, a native app that is one presence you talk to #348 is gated on 0.2.0 — the crew works for weeks, and the operator only rules and merges #163 alone exactly as that note records.)Correction, 2026-09-05 — ten windows become three
(Written by triage at @danmt's direction, the same day the three epics were minted and the ten were closed.)
What changed. The
0.1.xline from0.1.4to0.1.13— #328, #339, #329, #330, #331, #332, #340, #676, #677, #681 — is superseded by three windows: #694 (0.1.4— the store), #695 (0.1.5— the floor), #696 (0.1.6— the fleet spends on reasons). Each closed epic carries a banner naming its carrier and stays open to read as a ledger: its to-mint list, annotations and comments are what the carrying window's release-init mints from. Nothing was deleted and no to-mint bullet was rewritten. #163's gate, which named #340, now reads #694 by scope; moving it to #696 is the operator's open call.Why windows and not members. The cost of a window is paid per member and per window.
0.1.3's own numbers: 134 PRs merged in 30 days at a median 3.3 h from open to merge — the pipeline is not slow — but 89 members, a 16-deep chain, and one release-init, one rc ladder and one drill. The ten epics would have paid the per-window part ten times over the same content. The per-line measurement over those 134 PRs, for the record:Ten times the lines costs three times the rounds and five times the hours.
What deliberately did not change — the member shape (@danmt, 2026-09-05). Members stay small. Once
0.1.3and0.1.4have both shipped, the fleet has two windows of evidence to compare top-tier models on large PRs against smaller models on small PRs, and that comparison is worth more than the speed a feature-sized member buys now. For the day that comparison is read, the doctrine a feature-sized shape would need is named here so it is not re-derived: ceremonyTRIAGE.md § Sizingquotes #416 ("I'd rather have multiple issues idle due to blocking than super large PRs that never close"), andRELEASES.md § Release-initstep 1 mints one issue per bullet — both ceremony's, reaching crew through the pin, and neither a crew prompt. The engine's own ceilings (TIMEOUT_BUILD3600,TIMEOUT_REVIEW2700,MODEL_BUILDempty) are fleet config.The
0.1.3debt. The eighteen-item re-mint list, the drill cluster,hire_guardand the weekly reset's return are on #328's ledger comments and are carried by #694, whose body itemises them as eleven lane members (D1–D11). Placement ruled by @danmt 2026-09-05: wave 1 of0.1.4, a debt lane in front of the store clusters — with one exception: an item goes to the0.1.3candidate iff a #659 gate row cannot be read without it (today that set is empty).stamps-onlyis why: debt landed afterrc1is a re-cut, and every week-scale gate restarts.The
0.2.xline, the same day. Seven epics and the governance-chairs epic became two windows and one parallel track, at @danmt's direction and by the same ledger pattern: #697 (0.2.0— the chairs) supersedes #163, #295 and #333 — the vision gate, the loop and the droid model the charters are written against, which answers the placement question the board had carried since 2026-08-03; #698 (0.2.1— the box is ephemeral) supersedes #334, #335, #442 and #336 — #442's own text names0.2.2and0.2.3as its two hard preconditions, and #336's verbs are those windows' verbs on the floor's queue; #348 (jarvis) is renumbered0.2.6→0.2.2in place and re-gated on #697, because its two-artifact shape and parallel-track gate are unchanged and a re-mint would copy a body forward for nothing. #163's five acceptance criteria are relocated verbatim onto #697 as that window's promotion gate. #337 (0.3.0) now opens when #698 closes. Every closed epic carries a banner naming its carrier and stays readable as a ledger.The chairs, named — @danmt's ruling later on 2026-09-05. The chair minted as leader carried two clocks and is now two chairs. The planner knows the project, plans new work and tracks progress: the roadmap, the windows, the typed graph across every governed repo, release-init, spec authority, the curator duty from breaks. Its product is the map, rendered by the floor's graph view; nobody talks to it. The foreman is the intermediary between the operator and the fleet in both directions: intake and on-demand mint, dispatch, the floor's commands, merge preparation, builders' questions routed to a ruling, the escalation ladder. Medic is renamed mechanic; sentinel stands; jarvis is gone and the voice app is Foreman, because that is who answers. Triage retires at
0.2.0— its two halves are exactly the planner and the foreman; it keeps running the board through0.1.4–0.1.6, and ceremony's adapter keeps calling the seat triage until0.1.6's doctrine absorption. Stand-up order: sentinel, foreman, mechanic, planner. Three surfaces: the floor is the operator's cockpit and carries the planner's map; the wall (#695 cluster 9) is a read-only kiosk in the office showing the foreman's day — transcript, ruling in prose, browser screencast, ladder rung; the Foreman app (#348) is the foreman's voice on the operator's phone, which is the principal. The loop on #697 reads: sentinel flags → mechanic acts within its rings → foreman decides now → boxes apply or refuse → the board records → the planner learns.All reactions