docs: the operator notifier's needs-ruling queue and triage's past-24h wake (D16) #80
No reviewers
Labels
No labels
attention
blocked
blocker:ci-red
blocker:conflict
blocker:drill-pending
blocker:unrequested
bug
claimed
documentation
enhancement
epic
merge-next
needs-ruling
needs-triage
offsite
post-merge
ready
release
scope:docs
scope:guards
scope:labels
scope:release-flow
stale
state:addressing
state:bots-reviewing
state:building
state:needs-human
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: heavy-duty/ceremony#80
Loading…
Reference in a new issue
No description provided.
Delete branch "build/74-fleet-ruling-notifier"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #74. Part of #50 — epic decision D16, the last open child.
FLEET.md's Wake conditions gain the
needs-rulingwiring the ladder ruling requires: the operator notifier's second query, and triage's past-24h pickup. A descriptive-snapshot edit — no executable behavior, no label rows, nothing underactions/; FLEET.md stays deliberately outsidedocs/VENDORED.txt, so nothing mirrors to consumers.What the section specifies
state:needs-humanPR poll,notify.shpolls open issues and PRs labelledneeds-rulingacross~/duty/repos.txt.labeledevent (D14). Division of labor stated: #73 puts the rungs on the board, this puts them in the operator's queue; neither decides (D9, D15).Default:deadline or past 24h is the fleet-health signal; inside the window is a quiet queue entry.needs-rulingstanding past 24h joins the triage wake list — the ladder's last rung is triage's to pick, and the wake list is where triage learns it exists.needs-rulingqueue exist on paper only.Acceptance criteria
needs-rulingfor both the operator notifier and triage;notify.sh's second query is implementable from the text aloneneeds-rulingdocs/VENDORED.txt; never mirrored (diff touches only FLEET.md + CHANGELOG.md)Test plan (ran)
bash test/run.sh— 15 test files, 0 failedshellcheckover all tracked*.shclean;actionlintcleandocs-syncmanifest untouched by the diff (FLEET.md deliberately outside it)cb3d482), nevermainWorklog
cb3d482)🤖 Generated with Claude Code
🔎 reviewing head
ac6e98067c🔎 reviewing head
ac6e98067cThe implementation satisfies #74's acceptance criteria.
FLEET.mdspecifies the second query across open issues and PRs, one tracked/edit-in-place message per item with removal on clearance, the required message contents, the exact four #72 rung names and event anchor, the alert threshold, triage's past-24h wake, the no-box-side-mutation boundary, and the explicit on-paper caveat. The three motivating escalations are linked with SHA-pinned repository documentation, whiledocs/VENDORED.txtremains untouched. The changelog entry is correctly placed under Unreleased.Verified on
ac6e98067c7ce6b83b5510e1dbbbf4c853e42f3f:bash test/run.sh— 15 test files passed, 0 failedshellcheckover tracked shell files — cleanactionlint— cleangit diff --check— cleanblob/mainortree/mainlinksVerdict: approve
Reviewed head
ac6e98067c7ce6b83b5510e1dbbbf4c853e42f3fagainst #74's acceptance criteria and the load-bearing constraints (FLEET.md stays a descriptive snapshot; nothing box-side decidesneeds-ruling).Acceptance criteria
needs-rulingfor operator notifier and triage; second query implementable from the textneeds-rulingacross~/duty/repos.txtcb3d482L94–L112 (verified content)needs-rulingdocs/VENDORED.txt; diff scopeFLEET.md+CHANGELOG.md; manifest untouchedVerification
actions/or scripts).## 0.1.0, cites #74.cb3d482(merge of #78), notmain; noblob/main.bash test/run.sh— 15 files, 0 failed.Non-blocking
None that gate merge. The #16 "ruled 09:24Z" permalink is the same evidence #74 named (the human reply that closed the invisible window); inherited from the issue, not invented here.
Closes the panel check for this head from my seat: the FLEET.md edit is the right home for D16, stays outside the vendored set, and is implementable as a box-side
notify.shchange without reopening the ladder vocabulary.🔎 reviewing head
ac6e98067cApprove — head
ac6e980.Reviewed the whole PR at the current head against #74's acceptance criteria, in a detached worktree (
~/duty/trees/ceremony/review-80):notify.shpolling open issues and PRs labelledneeds-rulingacross~/duty/repos.txtis stated plainly; a reader holding only this section can write the query. ✓LABELS.mdatcb3d482lines 94–112 is the ladder, and the anchor (current episode'slabeledevent, D14) matches. ✓docs/VENDORED.txt— untouched; FLEET.md is not in the manifest (verified by grep), so nothing mirrors to consumers. ✓## Unreleased, inserted above the heading, cites #74. ✓Verification: CI is green (all checks pass, including
test). I also rantest/run.shlocally in the worktree; the failures there (jq: command not found,node is required for version-source: package-json) are my box's missing tooling — the identical run onmainproduces the identical failures (e.g. ruling.test.sh: 49 passed / 43 failed on both), so nothing here is caused by this diff. The diff touches no executable code.One non-blocking nit, ride or ignore: line 86 uses "labelled" while the doctrine files use American "labeled" (e.g. LABELS.md's
labeledevent) — worth normalizing for grep-ability, at the builder's discretion.📋 Round summary — handing off to @danmt.
One round, no fix cycles: codex, grok, and kimi each reviewed head
ac6e980(the PR's only substantive head after the draft phase) and approved with no blocking or non-blocking asks. All three verified the diff against #74's acceptance criteria directly: the operator notifier's second query (open issues and PRs carryingneeds-rulingacross the fleet), the one-tracked-message-per-item edit-in-place contract with removal on clearance, the message contents, the exact four #72 ladder rung names anchored to thelabeledevent, the alert threshold, triage's past-24h wake, and the boundary that nothing box-side sets, clears, or decidesneeds-ruling— FLEET.md stays a descriptive snapshot, with the on-paper caveat stated.Docs-only diff (
FLEET.md+CHANGELOG.md);test/run.sh, shellcheck, and actionlint green.state:needs-humanis set and this is #50's last child — merging closes the epic.