Three core labels exist only in ceremony — and the one set the machine can never notice is exactly the hand-set set #102
Replies: 4 comments
|
Outcome: accept — #105 is minted. Questions 1 and 2 are settled here rather than sent up: both sit inside the Q1 — B, annotation-only. One comparison per sweep between Q2 — ships now, and it costs nothing to say so. Q3 — the interim, sharpened by one thing this thread had wrongOutcome is The correction: ceremony is not in the same boat as its consumers. The So the decision below is only about the four consumers. The exact commands, if C or ARows verbatim from # C — the two live ones, on the four consumers
for r in rig incubator box cast; do
gh label create needs-ruling -R "heavy-duty/$r" --color D4C5F9 --force \
--description "A human decision is pending — question, options and a recommendation are in the comment"
gh label create offsite -R "heavy-duty/$r" --color CFD3D7 --force \
--description "Issue deliverable is a PR in another repository — claim clock paused"
done
# A — additionally
for r in rig incubator box cast; do
gh label create attention -R "heavy-duty/$r" --color D93F0B --force \
--description "A demand is parked here for the assignee: pick up the thread, ack by removing this label"
done
# ceremony, independent of the above and of any release (#83's operator item)
gh workflow run labels -R heavy-duty/ceremony # creates `attention`, changes nothing elseThis thread stays open on Q3 alone. The moment the labels exist on rig I flag |
|
12-hour re-read of Q3's block. Nothing has moved on the labels themselves; two things moved around them, and one of them sharpens the choice enough to be worth your thirty seconds. The state, re-read live at 12:50Z rather than re-cited
Identical to the table filed at 00:27Z. The four consumers still have none of the three, and ceremony still lacks What changed, and why it does not shorten the wait#105 closed at 10:07:16Z and #104 at 09:48:33Z. The sweep now warns when the taxonomy declares a label the repository lacks — the exact annotation that would have surfaced this gap the day rig converted. It is behind the same gate it describes. A consumer runs That gate now has a name: 0.2.0 is in flight (#118), with rig#136 and incubator#51 minted and blocked on it. So option B is no longer "someday". The sharpening — B does not save you the operator act, it defers itI framed Q3 at 00:49Z as hand-create now, or wait for the pin bump. That was imprecise about what the pin bump actually does. The real choice is therefore:
Not "now versus free". "Now versus the same thing, later, with a memory dependency in front of it." What it is still costing, with today's receiptsBoth flagless escalations took a fresh ladder rung today and both are still invisible on rig's board: rig#124 gating #110 — where you created
The block stands as postedOptions A / B / C and the recommendation of C are unchanged; the commands are in the collapsed block above and are still correct. This is a rung, not a re-flag. |
|
Premise update — two of the four ❌ columns no longer have the pin as their excuse. The 12:50Z table stands label-for-label, but the path to fixing it shortened twice this evening:
box and cast are unchanged: still pinned Net: the ask of you compresses to one click on rig now, one click on incubator after #60 merges — and the original two clicks on box/cast stay parked behind their adoption PRs. Ladder unchanged; the 24h rung of this escalation is 00:27Z. |
|
Closing as resolved — the dispatches landed on the two boards that could take them, the promised follow-through is done, and every remaining ask has a live home. The table, re-read live at 22:55Z:
What discharged:
Q1 and Q2 shipped as #105 (the sweep now warns when the table declares a label the repo lacks — the annotation that would have caught this the day rig converted). Q3's answer arrived as acts rather than a letter: ceremony and rig dispatched, incubator one merge-then-click sequence from done, box/cast at adoption. This thread has nothing left that is not better tracked where it can act, so it closes. |
Uh oh!
There was an error while loading. Please reload this page.
Verified 2026-07-24 00:20–00:35Z across all five repos.
LABELS.md opens by saying the taxonomy is "core and identical everywhere, created by the labels workflow's bootstrap dispatch". Three labels are not:
needs-rulingoffsiteattention(
gh label liston each. Thestate:*,blocker:*, work-queue andreleaserows are present everywhere, as documented.)Why: the bootstrap that runs is 0.1.0's
Consumers call ceremony's labels workflow, which pins its own action source at
CEREMONY_SELF_REF: "0.1.0". The bootstrap table at that tag is fifteen rows and contains none of the three —needs-ruling(#51),offsite(#68) andattention(#84) all landed after it. The rows exist only onmain, at L400-L402.So this is not a missed dispatch. A consumer re-dispatching bootstrap today still gets fifteen rows — exact-pin doctrine working exactly as designed. The remedy is sequenced through a release, which is fine; what is not fine is the two things below.
1. The blind spot is exactly the hand-set set — by construction
The reconciler does warn about a missing label, but only one it is trying to apply (L521-L526):
needs-ruling,offsiteandattentionare precisely the three labels the machine never writes — LABELS.md says so of each of them, andlib/ruling.shis pinned by a test that the sweep never touches the ruling flag. The machine can only notice the absence of labels it applies. The set it cannot notice is identical to the set that is missing. It reads the repo's full label list on every sweep (L598) and has the authoritative table in the same file — it holds both halves of the evidence and compares neither.This is #101's shape again: the run already knows and throws it away.
2. It is costing real behaviour today, in two different ways
Triage cannot flag an escalation on rig. TRIAGE.md requires that when a ruling gates something on the board,
needs-rulinggoes on it "so the board shows where the human's turn is". Two live escalations — rig#124 gating rig#110, rig#118 gating rig#103 item 2 — have no flag.dan-claude-botholdstriagethere, which cannot create a label either (POST /repos/heavy-duty/rig/labels→ HTTP 404). Both are recorded in prose on the issues instead; the board itself is silent about where the human's turn is.offsiteabsent is worse than a missing flag — it is a wrong machine action. The flag exempts a cross-repo claim from the 48-hour reclaim (LABELS.md, #68). A builder on any of the four consumers whose deliverable is a PR in another repo cannot set it, so the sweep comments, unassigns them and restoresreadyon a claim doctrine says is legitimately quiet. Nobody has hit it yet. The-templatessplit (rig#110) and every cross-repo pairing like rig#109 / box#158 is exactly the shape that will.What to decide
attentionis dormant (epic #83 is open, so it has no consumer yet). The other two are live doctrine with no label behind them.A — release, bump, dispatch, and say so in the docs. The next ceremony release carries the three rows; each consumer bumps its pin and re-dispatches. Add to CONSUMERS.md — which today says run dispatch once, on a fresh repo — that a pin bump adding a core label needs a re-dispatch. Cheapest. Relies on whoever bumps the pin remembering, forever, with nothing checking.
B — A, plus make the absence legible. One comparison per sweep: the labels the table declares, minus the labels the repo has, warned once as an annotation. Warn-only, never write. This is the option that would have surfaced the gap the day rig converted instead of the day triage tripped over it, and it costs nothing at run time — both lists are already in memory.
C — bootstrap the taxonomy on every scheduled run, not only on dispatch. Self-healing, no human step. It reverses a stated decision (CONSUMERS.md: "Scheduled and PR-triggered runs only reconcile; they do not repeatedly upsert the taxonomy"), and an upsert on a schedule means a hand-edited colour or description is silently reverted on a 15-minute cron.
Recommendation: B. A alone puts a standing obligation on the pin-bumper with nothing to catch a miss, and this thread is what a miss looks like. C fixes it by taking a self-healing power the family deliberately declined, and the failure mode it introduces — the machine quietly overwriting a human's edit every 15 minutes — is the kind of thing that gets discovered months later. B keeps the human as the actor and makes the machine say the true thing it already knows.
Questions, so an issue can carry a spec rather than a choice:
::warning::), or is a missing hand-set label serious enough to want its own once-per-repo issue comment? My read is annotation-only — it is a repo-configuration fact, not an item-level one, and it has no owner to address.attentionship now or wait? Its epic (attention — a state-machine wake for comment-borne demands #83) is open. Creating the row ahead of its machinery costs nothing and is idempotent; leaving it out means a second round of this exact bump when attention — a state-machine wake for comment-borne demands #83 lands. I lean ship-now, since the row is already in the table onmain.offsiteandneeds-rulingbecome usable this week? Or is waiting for the release the right cadence? A bot withtriagecannot do it; this is the one part no answer here removes from you.Answer 1 and 2 and triage mints; 3 is a yes/no.
@danmt — refs: #51, #68, #84 (the three rows), #101 (same evidence-thrown-away shape, minted today), rig#110 / rig#103 (the two flagless escalations), #90 (the adoption epic, closed — this is the leftover it did not cover).
All reactions