docs: FLEET.md's reviewer wake describes the deployed requested_reviewers sweep #153
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#153
Loading…
Reference in a new issue
No description provided.
Delete branch "build/149-fleet-reviewer-wake"
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 #149
FLEET.md said the reviewer boxes wake on
gh search prs --review-requested=@mefirst and the repo-list poll second. What all four reviewer boxes actually run (atcrew@b2fd864) is an org-wide pulls-APIrequested_reviewerssweep plus the named bot forks as source 1, with therepos.txt/search poll as an adds-only backstop — merged and deduplicated by (repo, PR) before acting, oldest-first. This PR makes the map match the territory, in the file's own descriptive voice, and stamps what it was reconciled against.Every factual claim was verified against the actual scripts at the pinned ref before writing — kimi
duty.shL40-57, grok L8-14 + L159-178, claude L118-130, codex L86-100,notify.shL114, danduty.shL6-18 — not taken from the issue on faith.Reviewer notes (per the issue's test plan):
FLEET.mdis not indocs/VENDORED.txt, sodocs-sync --checkhas nothing to say about this PR — there is no mirror to re-sync.heavy-duty/crewis private to the org; the fleet can read it. A reviewer without that access should say so in the verdict rather than approve the citations unread.REVIEWER.md, in flight) lands the doctrine half of the same lesson; disjoint files, deliberate content overlap, no wording imported from it.Acceptance criteria (from #149)
requested_reviewerssweep across the org plus named bot forks as source 1, andrepos.txt/search as a backstop that only adds candidates and never concludes "nothing to do".grep -n 'gh search prs --review-requested=@me' FLEET.md→ no match).needs-rulingqueue is still described as unbuilt, and so are theattentionand past-24h wakes (§5 framing untouched).Poll:bullet no longer callsrepos.txt"the repo registry" without saying whose.crew@b2fd864, or to a public PR number.FLEET.mdandchangelog.d/149.mdchange (git diff --name-only origin/main→ exactly those two).bash test/run.shgreen — 18 files passed, 0 failed.Worklog
b2fd864repos.txt-as-registry claim per rolechangelog.d/149.mdbash test/run.shgreen; scope + grep negative control checked🔎 reviewing head
5f491ffc1f🔎 reviewing head
5f491ffc1fVerdict: approve
Reviewed head
5f491ffc1fdbec66bd6e7108df3fbd3c49adb3e6against #149's acceptance criteria. I can readheavy-duty/crewand checked every citation atcrew@b2fd864.Acceptance criteria
requested_reviewerssweep (org + named bot forks) as source 1;repos.txt/search as adds-only backstopduty.shL118–126 operator protocolgh search prs --review-requested=@medescriptiongrep→ no match)needs-rulingstill on paper; attention / past-24h framing untouchedduty.shstill has no attention/past-24h wakerepos.txtregistry qualified per rolerepos.txtas ceremony backstopcrew@b2fd864, 2026-07-24)FLEET.md+changelog.d/149.mdgit diff --name-only origin/main)bash test/run.shgreenCI green on head. FLEET.md not in
docs/VENDORED.txt— no mirror re-sync owed.Crew citations at
b2fd864(read, not taken on faith)requested_reviewers; source 2repos.txtmerge; never gh search.requested_reviewersvia pulls API.state:needs-human— needs-ruling queue still paper.Non-blocking nits (builder's discretion)
repos.txtinto onesort -uenumeration rather than a separate "source 2 only-adds" pass; the fleet-level description still matches what all four boxes do.No blocking issues. Map matches territory.
The implementation satisfies #149's acceptance criteria.
FLEET.mdnow describes the pulls-APIrequested_reviewerssweep across the org and named bot forks, the adds-onlyrepos.txt/search backstop, merge-and-dedup before acting, oldest-first ordering, latest-own-review-SHA verdict deduplication, and the incidents that bought those rules. It also preserves the still-unbuiltattention, past-24h, and notifierneeds-rulingwakes, qualifies whose registryrepos.txtis, and adds the pinned reconciliation stamp. Scope is exactlyFLEET.mdpluschangelog.d/149.md;FLEET.mdis absent fromdocs/VENDORED.txt.Verified the factual claims against the immutable
crew@b2fd864object fetched into the local crew clone: kimi, grok, claude, and codex reviewer loops match the description; grok'srepos.txtheader calls itself a backstop; dan's notifier filters onlystate:needs-human; and triage's wake list contains neither of the deliberately unbuilt label wakes. Directgh apiaccess to the private upstream returned 404, but the same pinned object was available through the authenticated bot fork and was read locally.Validation:
git diff --checkpassed;bash test/run.shpassed all 18 test files with 0 failures. CI is green for the PR's test, guards, exercises, and current reconciliation checks.🔎 reviewing head
5f491ffc1fApprove — head
5f491ffc1fdbec66bd6e7108df3fbd3c49adb3e6.Verified against #149's acceptance criteria in a detached worktree:
git diff --name-only origin/main...HEADreturns exactlyFLEET.mdandchangelog.d/149.md. ✓gh search prs --review-requested=@meno longer appears as a live trigger description; the one remaininggh searchmention (L109) is the incident citation. ✓requested_reviewerssweep across the org plus named bot forks as source 1, therepos.txtpoll as an adds-only backstop that never concludes "nothing to do", merge-and-dedup by (repo, PR) before acting, and the ceremony#32 double-announce. The one-verdict-per-head / own-latest-SHA sentence survives. ✓needs-rulingqueue and states the request sweep is deployed since 2026-07-23. Theattentionwake (L90, "untilduty.shpolls it, the wake exists on paper") and the notifier/past-24h spec framing survive unchanged. ✓Poll:bullet qualified per role (triage'srepos.txtis its registry; a reviewer's is a backstop). ✓crew@b2fd864, 2026-07-24). ✓heavy-duty/crewand checked each one: kimiduty.shL40–57 (org sweep + two named forks, "never gh search"), grokduty.shL8–14 and L159–178 (merged sources, API sweep first), claudeduty.shL118–130 (the 2026-07-23 operator protocol naming the #32 double-announce), codexduty.shL86–100 (sweep across org + all five bot forks),notify.shL114 (state:needs-humanas the one label filter), danduty.shL6–18 (noattention/needs-rulingwake), and grok'srepos.txtfirst line ("poll-list backstop … API requested_reviewers sweep is primary"). All say what the prose claims they say. ✓Environment gaps, named per the verdict doctrine: this box has no
node/npm/shellcheck.bash test/run.shis red (3 failing cases, 7 failing files), but I ran the identical suite atorigin/mainand got the identical red — every failure is apackage-jsonversion-source case requiringnode(version_read: node is required). The PR touches no executable path, so the red is environmental and pre-existing, not caused by this change. Shellcheck/actionlint cleanliness is left to CI.Non-blocking nit: none worth a round.
The map now matches the territory, with a stamp that makes the next drift measurable. Ship it.
Round summary — handoff
One round, passed whole. All three panel verdicts (grok 14:22:11Z, codex 14:22:57Z, kimi 14:32:56Z) approve the current and only head
5f491ff— no fix rounds were needed, the head never moved.What this PR does: rewrites FLEET.md's reviewer-wake paragraph to describe the deployed
requested_reviewerssweep — the wake is driven by who is listed inrequested_reviewerson the PR, not by the older described behavior.What was verified across the round:
5f491ff(test, self-guards, release-exercise, labels/scope, labels/reconcile);mergeStateStatus: CLEAN, no conflicts.blocker:*stands; not a release PR, so no drill applies.Requesting @danmt's review and setting
state:needs-human— the remaining move is the merge.