A leader (foreman) agent — steering, plan confirmation, rulings from precedent, and a merge door no bot has today #229
Replies: 7 comments
The precondition this thread cited as "waiting on a human" is settled — and Q3 got harder, not easierTwo passages in the body above are struck and corrected in place, against What moved. #212's ruling closed at Why that makes Q3 heavier. Reason 2 in the body treated the pending ruling as the thing in the way. Closing it surfaced what was actually underneath, and it is now discussion #269: nothing in this fleet reads That is A-conditional and nothing is wrong on What this does not change. The proposal's separation-of-duties argument still holds, Q1 and Q2 are untouched, and "only humans merge" is still governing doctrine vendored from heavy-duty/ceremony — still the one thing triage will not pick at any rung. Nothing on the board is blocked by this thread. Triage, 2026-08-01. |
Correction — this thread's header says #225 closed, and since
|
| status | |
|---|---|
| Q1 — where the two brains live, and what reads them | open. #295's sequencing says "the two brains stand up (#225), seeded with the … case law" and the addendum extends the seed's contents. Neither says which repository or path, or whether injection is per-tick, hire-time or prompt-assembly. Those are still three different builds with three different failure modes. |
| Q2 — what "the plan" is as an artifact, and what the leader's confirmation looks like on the board | open. Nothing in the addendum or #295 names a file, a milestone set or an epic tree, or the observable fact that says a placement was confirmed. |
| Q3 — does the leader merge, or prepare merges | open, and still danmt's alone. #295 orders it ("leader's merge authority last") and re-affirms the #210–#213 precondition, but ordering a decision is not making it. "Only humans merge" is still governing doctrine vendored from heavy-duty/ceremony. |
The addendum is genuinely valuable and none of it is a substitute for these: it records how the ruling loop runs, that recording is the job rather than the paperwork after it, and that a leader whose approval queue grows with fleet size is mis-specified. That is doctrine for the chair, not a spec for the brains.
What actually changed for this thread. The answers no longer produce a fresh mint from here — they land on #225's charter and on #295's sequencing, where the work is now organized. This thread stays the design record and the place the questions were put. Outcome unchanged: ask, waiting on @danmt, and Q1 is still the cheap one that yields a buildable issue on its own.
Nothing is stalled by the ask. #225 is blocked behind #163 (0.2.0), so no builder can reach the ambiguity, and #295 is blocked on the same gate. I have added a pointer to these three questions at the head of #225's body so nobody has to find this thread to learn its spec is open.
Triage, 2026-08-02.
Correction — my comment above says #295 is
|
The precondition this thread called "four open issues" is now zero open issues and one release window — and the ordering it asked for is the roadmap's chainMy comment at
Every one still carries What that does to reason 2 — the hard preconditionThe proposal's own sequencing is "1. Close #210–#213 (merge door). … 3. Hire the leader box: plan confirmation, rulings, merge authority." That precondition is unchanged in substance and now enforced by the release chain instead of by four tickets: #332 is What it costs is immediacy: the four holes are no longer four claimable issues on a gate that could close this week. They are a window seven ahead of the current one, opened by hand at triage's release-init. Nobody should read the closes as the merge door being shut. Not one of the seven shipped a fix. What has not changed: all three questionsRe-checked against the board rather than assumed:
One thing the pass created that lands on Q1The three charters (#225, #128, #296) are carried by #163, while the droid model they are written against (#291 — one droid per role, one room per droid) is carried by #333. Two roadmap epics, one dependency between them. It is recorded as an open placement question on #163, on #333 and on the roadmap, and it is @danmt's call — it bears directly on Q1, because where the chair's design lives and where the chair's instance model lives cannot be two different windows without someone reconciling them at init. And the decomposition duty #295 records survives the closes, in a new form. It said triage owes each charter a decomposition into criteria-bearing children before #163 closes, or a re-pointing off the gate, because a criteria-free charter promoted by sweep is the #116 trap. With the charters closed, no sweep can promote anything — the duty becomes: re-open or re-mint them with acceptance criteria at Outcome unchanged: ask, waiting on @danmtQ1 is still the cheap one and still yields the first buildable issue on its own. Nothing is stalled by the ask — and less than before: the charter is closed, so no builder can reach the ambiguity at all. Nothing is waiting on this thread, re-derived at this write over all 22 open Triage, 2026-08-03. |
Four days on: the placement question this thread recorded as "@danmt's call" is now a canonical ruling ask on the roadmap — and the three questions are unchangedFirst comment here since 2026-08-03 1. The one thing that pass created now has an addressee, a default and a deciderMy last comment closed on:
It was recorded on three surfaces and asked on none. Since So Q1's "one thing the pass created" should be followed there rather than re-raised here. One question, one surface — that is the whole reason this thread's own header exists. 2. The chain is one row longer, and it does not move this thread#367 — 3. The three questions, re-checked rather than assumed
4. The measurement my last comment closed on is voidIt read "re-derived at this write with Board at this write: 31 open — 19 One Outcome unchanged: ask, waiting on @danmtQ1 is still the cheap one and still yields the first buildable issue on its own; Q3 is still the one triage will not pick at any rung. Nothing is waiting on this thread — no open issue's parsed blocker set names it, and the charters it discusses are closed, so no builder can reach the ambiguity. And this ask gets the return date its siblings carry. No Triage, 2026-08-07. |
The 7-day return, two days late — the placement ask it hands to #338 is itself unanswered, and its own return was missed on the same runTriage 2026-08-16 1. The question this thread handed off is still open, and the ambiguity behind it is intactThat comment recorded the placement question as "now a canonical ruling ask on the roadmap" — #338's The ambiguity is not stale, it is live — re-read from the two epics' bodies rather than from that ask:
2. Nothing about this thread's own preconditions movedThe three charters remain closed and carried on #295, which is open, 3. The board this ran against26 open — 19 4. Why this is lateFour asks were due a 7-day return and none was written: this one and #269 on 2026-08-14, #351 and #338's Outcome unchanged: ask, waiting on @danmtQ1 is still the cheap one and still yields the first buildable issue on its own; Q3 is still the one triage will not pick at any rung. No You are present and this is not sitting behind an absent human — your last write here is the #455 reply of Triage, 2026-08-16. |
The return, 9 days late — the preconditions are intact, and the board around them is unrecognisableTriage 2026-09-01. This is the return my comment of 2026-08-16 promised for 2026-08-23; it is nine days overdue. Re-measured at 1. The question this thread handed off is still open, and is now 28 days oldThe placement ask this thread delegated — #338's The ambiguity behind it is live rather than stale, re-read from the two epics' bodies at this write: #291 is CLOSED and still carries 2. This thread's own preconditions have not moved at all
No builder can reach the ambiguity this thread describes, because no charter is claimable. Unchanged, and checked rather than carried. 3. What did move, and why it makes the standstill more visible rather than lessThe board this thread was last measured against had zero claimable work for a structural reason —
4. Nothing is held by this thread — re-measuredThe shipped 5. Why this is nine days late, and the measurement taken instead of a fifth apologyFourth consecutive recorded miss across this family — this thread, #269 and #338 due 2026-08-23, #317 due 2026-08-24 — found overdue and unhonoured on 08-27, 08-29 and 08-31 before today. All four are served in this tick. The premise this page has asserted four times is the one I re-measured. @danmt has commented on eight crew issues since these returns fell due, most recently It changes no outcome and licenses no pick. It is here because "you are present and this is not sitting behind an absent human" is true, has been written on this page repeatedly, and has not worked — which is information about triage's method rather than about you. Outcome unchanged: ask, waiting on @danmtQ1 is still the cheap one and still yields the first buildable issue on its own. Q3 is still the one triage will not pick at any rung. One word answers this, and one word parks it. If you park it, triage stops nudging until you unpark it. Absent either, triage returns on 2026-09-08. 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.
Why triage sent it back through this door
Three reasons, any one of which would be enough:
1. It parks itself. Its own text: "Deferred by design: parked for 0.2.0. Right now the focus is platform stability/robustness with the current five-box roster … Pick this up once the current design is battle-tested", and it signs off "needs triage refinement before placement." An issue that says it is not to be built is a design thread wearing a label. Minting it anyway would put a
blockedwork order on the board carrying its ambiguity forward to whichever builder eventually picks it up — which is exactly the move TRIAGE.md exists to prevent.2. Its stated hard precondition is four open issues, and one of them is waiting on a human right now. Verified against the board at the time of writing: #210, #211, #213 are open and
blocked;#212 (a ruleset on(Struck by triage 2026-08-01main) is open,blocked, and has carriedneeds-rulingsince itslabeledevent at2026-07-31T20:29:00Z— the ladder's 24h rung falls at2026-08-01T20:29Z.22:4xZagainst #212's label events: that rung passed and the ruling is closed.needs-rulingwas removed at20:36:48Zand triage picked option A — amainruleset requiringrelease-guards / guards,strict: true, with a bypass actor for the repository's own Actions identity and norequired_pull_request_reviews. #212 itself is still open andblockedbehind #211 and #162, so the precondition's issue count is unchanged — what moved is that no part of it waits on a human decision any more. What the pick produced instead is discussion #269, and it lands on Q3 below.) The proposal's own sequencing puts "close #210–#213" first, and merge authority for any agent cannot be specified before the merge door itself is decided.3. The open questions are the load-bearing ones. Where the two brains live, what "the plan" is as an artifact, and what the leader's merge policy checks mechanically are all unspecified. A builder handed this today would guess three times over, and guessing is the failure this flow exists to prevent.
The questions whose answers let triage write the issues
Three, pointed, in the order their answers unblock work. @danmt — the first is the cheap one and yields the first buildable issue on its own.
Q1 — the two brains, concretely: where do they live and what reads them?
The proposal calls the fleet-wide brain "its own repo (analog of a global CLAUDE.md)" and the repo-scoped brain "lives in each repo (analog of a project CLAUDE.md)", with the injection point "the crew duty engine pulls both brains into context before any duty fires." Each phrase hides a different work order:
heavy-duty/<name>repository, or a directory inside an existing one? A new repo means a new read grant on every box's identity — the fleet is trustless and each box acts as itself, so this is fleet-config work, not a file drop.AGENTS.mdrouter and the vendored.ceremony/mirror? Beside them, or the same file? (.ceremony/is machine-managed and must not be hand-edited in a governed repo, so it cannot be the home.)duty.sh, baked in at hire time, or assembled into the session prompt? Per-tick fetch is a network dependency on the hot path; hire-time baking goes stale betweencrew upruns. These are different builds with different failure modes, and the proposal's own sequencing calls this step "cheap, leader-independent, immediately useful" — it is, once these three are answered.Q2 — what is "the plan", as an artifact?
The proposal says "a versioned artifact (file/milestone structure in the ceremony repo)" and that triage "proposes placement as a small PR/comment" which the leader "approves-or-repositions." Two things to name:
0.1.1, 0.2.0 — the crew works for weeks, and the operator only rules and merges #1630.2.0) over a set of epics — so the answer decides whether this is new machinery or a new reader of the machinery that exists. The second is far cheaper and may be most of the value.Q3 — does the leader merge, or prepare merges? (danmt's alone)
This is the one triage will not pick for you at any rung. "Only humans merge" is one of the two rules that bind every role in
.ceremony/AGENTS.md— it is governing doctrine vendored from heavy-duty/ceremony, not a crew convention — and under LABELS.md org policy is a hard block by construction. Two sub-questions size the work:AGENTS.mdwill find it?"admin": false, "maintain": false. Updated 2026-08-0122:4xZ: that ruling is settled — option A, above — so this sub-question is no longer waiting on it. It is now harder rather than easier, and #269 is why: under astrict: trueruleset nothing in this fleet readsmergeStateStatus, so aBEHINDPR reads as mergeable to both writers ofstate:needs-human. A leader agent that merges would be pressing a button the board is currently lying about. That defect is a precondition of any merge authority, agent or human, and it is asked there rather than here.The proposal's separation-of-duties argument — the leader writes no code, so it never merges its own work — is sound and worth keeping whichever way this goes.
Where this sits on the board meanwhile
Recorded on #163 (
0.2.0— the crew works for weeks, and the operator only rules and merges) as a candidate against its requirement 6, which says of rulings and merges: "nothing on the board covers this … It should get one before0.2.0starts." That requirement asks for the human's two remaining jobs to be excellent; this proposal asks whether one of them stops being the human's. Same subject from opposite ends, and neither is minted until the questions above are answered.Nothing on the board is blocked by this thread. #207, #162 and #163 are unaffected, and every
readyissue continues.The proposal, as filed on #225 — verbatim
Summary
Add a leader (foreman) agent to the fleet: a sixth box whose job is steering, not building. It defines goals/vision, keeps the plan, adjudicates, and (eventually) merges to main — while the human gate narrows to release PRs only.
Deferred by design: parked for 0.2.0. Right now the focus is platform stability/robustness with the current five-box roster; the operator + sherpa act as interim leader. Pick this up once the current design is battle-tested.
Division of labor (decided)
Authorities
Plan + confirmation loop
Rulings + the two brains
sudo -iexec breakage, …) into the fleet brain — currently that knowledge is invisible to the boxes.Sequencing
Out of scope
Rough issue from an operator + sherpa design session (2026-08-01); needs triage refinement before placement.
All reactions