docs(fleet): ci-red in the duty order and wake list, on paper; changelog fragment

FLEET.md gains the ci-red wake between resume and build in crew#64's
engine position, marked on paper per this file's existing convention (the
notifier queue, triage's past-24h wake); the Build bullet records the
red-head exclusion as reported-not-swallowed; the reconciliation stamp
stays at crew@01fb49c because crew#64 has not merged.

Refs #189

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
claude-bot-andresmgsl 2026-07-27 18:46:10 +00:00
parent 203907b0ea
commit e85a7d42f3
2 changed files with 36 additions and 6 deletions

View file

@ -132,9 +132,13 @@ wake is no longer on paper: `duty-attention.sh` is deployed engine, and
The engine's duty order is fleet-standard The engine's duty order is fleet-standard
([`bin/duty.sh`](https://github.com/heavy-duty/crew/blob/01fb49cd717a0f4c83df286af86411c69e3c2363/shared/bin/duty.sh)): ([`bin/duty.sh`](https://github.com/heavy-duty/crew/blob/01fb49cd717a0f4c83df286af86411c69e3c2363/shared/bin/duty.sh)):
**attention → triage signals → review queue → resume → build → handoff **attention → triage signals → review queue → resume → ci-red → build
rebase → worktree hygiene → backlog hygiene (hourly)** — attention handoff → rebase → worktree hygiene → backlog hygiene (hourly)** — attention
role-independent and first, then each duty family the box's roles enable. role-independent and first, then each duty family the box's roles enable.
One position in that order is **on paper**: ci-red is
[crew#64](https://github.com/heavy-duty/crew/pull/64)'s, unmerged at the
stamped SHA, where `duty.sh` still runs resume straight into build — it
reads as deployed engine only once that PR merges.
The earlier form of this file folded handoff and rebase into the other The earlier form of this file folded handoff and rebase into the other
builder wakes; they are duties of their own. builder wakes; they are duties of their own.
@ -163,10 +167,23 @@ builder wakes; they are duties of their own.
— a session died between first push and PR creation. A branch whose PR — a session died between first push and PR creation. A branch whose PR
already **merged** is a post-merge wait, never resumed (#172, already **merged** is a post-merge wait, never resumed (#172,
incubator#55/#64). incubator#55/#64).
- **ci-red** (builders; **on paper** — crew#64's spec, unmerged at the
stamped SHA): a non-draft PR of mine whose check at the current head is
failing. Evaluated before the build wake, so a red PR of mine outranks a
new claim — repairing my own red head comes ahead of new work
(ceremony#163: full-panel approvals at the head, mergeable, stranded on
a transient failure no wake covered). A round owed at a red head is
excluded from the build wake below but reported rather than silent, and
an unchanged red head goes quiet after one attempt, through the
`report_suppressed` path — suppressed, still said. How a red head is
detected and kept quiet is the engine's mechanism, described in crew's
`shared/README.md`, not here.
- **Build**: a `ready` **unclaimed** issue (an assignee means mid-claim, not - **Build**: a `ready` **unclaimed** issue (an assignee means mid-claim, not
pickable), or a completed review round on my PR — a changes-request with pickable), or a completed review round on my PR — a changes-request with
no panel review request still outstanding; whole rounds, never single no panel review request still outstanding; whole rounds, never single
verdicts. verdicts, and — once ci-red deploys — never a round at a red head: that
head has already woken ci-red above, and the excluded round is reported,
not swallowed.
- **Handoff**: a round of mine that converged — every panelist's latest - **Handoff**: a round of mine that converged — every panelist's latest
opinionated review approves the current head, no panel request opinionated review approves the current head, no panel request
outstanding, mergeable right now, `state:needs-human` not already set. outstanding, mergeable right now, `state:needs-human` not already set.
@ -231,9 +248,10 @@ The duty engine is crew's shared tree, one source deployed to every box;
makes the registry rule an operator decision rather than a sweep's. Specs makes the registry rule an operator decision rather than a sweep's. Specs
written in this file have a record of becoming engine: the attention wake written in this file have a record of becoming engine: the attention wake
and the reviewers' request sweep both started here as paper (the sweep's and the reviewers' request sweep both started here as paper (the sweep's
org-wide form was then retired by the 2026-07-25 scope ruling). The org-wide form was then retired by the 2026-07-25 scope ruling). Two are
notifier's `needs-ruling` queue is the one still on paper: at the stamped still on paper: the notifier's `needs-ruling` queue — at the stamped crew
crew SHA, `notify.sh`'s only label filter is `state:needs-human`. SHA, `notify.sh`'s only label filter is `state:needs-human` — and the
builders' ci-red wake above, engine the moment crew#64 merges.
### Conventions on the board ### Conventions on the board

12
changelog.d/189.md Normal file
View file

@ -0,0 +1,12 @@
### Changed
- `BUILDER.md` gates both review-request points on a green check at the
head, carries crew#45's argued exception for failures outside the PR,
and states the ruled classification: cancelled and stale are not a
green head; skipped and neutral are (#189).
- `BUILDER.md` documents CI-red recovery in pickup precedence: a red head
of your own PR is picked up before claiming another issue, is never a
parked claim, and follows crew#17's recovery path (#189).
- `FLEET.md` writes the ci-red wake into the duty order between resume
and build, marked on paper until crew#64 merges, with the
reconciliation stamp unchanged (#189).