docs: align release triggers with shipped flow

This commit is contained in:
Andriujose 2026-08-03 17:33:39 +00:00
parent ab60709f49
commit a74ebb9876

View file

@ -11,8 +11,10 @@ repo-local description differs from this file, this file governs.
Represent each planned release with one version epic. The epic is the working Represent each planned release with one version epic. The epic is the working
surface for that release: it states the goal, names the members, and records surface for that release: it states the goal, names the members, and records
the ordered waves as checklists. Keep the machine-readable progress checklist the ordered waves as checklists. Keep the machine-readable progress checklist
under the exact heading `## Task list`; the issue-flow sweep reads that heading under a heading matching `## Task list`, case-insensitively; the issue-flow
when it decides whether to nudge triage about a completed epic. sweep reads task rows there until the next heading when it decides whether to
nudge triage about a completed epic. Other member or wave headings are not
completion inputs.
Keep a short repo-local roadmap beside the epics. The roadmap shows the whole Keep a short repo-local roadmap beside the epics. The roadmap shows the whole
ladder and points to each working surface; it does not duplicate the live ladder and points to each working surface; it does not duplicate the live
@ -23,12 +25,13 @@ maps the ladder whose `0.1.2` working surface moved from the crufty ledger
## Gates ## Gates
Each version epic declares the predecessor that opens it. Special ordering — Each version epic declares `Blocked by <predecessor>`. Special ordering — a
a double gate or an out-of-chain gate — is written explicitly on that epic; double gate or an out-of-chain gate — is written explicitly on that epic;
there is no hidden global schedule. Shipping closes the current epic, and its there is no hidden global schedule. The epic carries `epic`, the repository's
close is the signal for triage to open the next release-init cycle by hand. release label, and `blocked` while the gate stands. Shipping closes the current
Version epics carry `epic`, not a queue label: `ready` offers work to builders, epic; the ordinary blocker-cleared sweep path then replaces `blocked` with
and builders never pick epics. `ready` on the next epic in the same pass. No special epic promotion exists or
is required: the reconciler dispatches `blocked` before `epic`.
The gate orders windows, not their contents. Members enter a release only by The gate orders windows, not their contents. Members enter a release only by
decision during release-init. The double gate on heavy-duty/crew#163 and the decision during release-init. The double gate on heavy-duty/crew#163 and the
@ -37,7 +40,11 @@ are worked examples of exceptions declared where they apply.
## Release-init ## Release-init
The preceding epic's close is the trigger. Triage then runs five steps: A `ready` version epic is the trigger, and today triage must notice it and run
the cycle. [heavy-duty/ceremony#253](https://github.com/heavy-duty/ceremony/issues/253)
tracks the not-yet-shipped sweep announcement of that duty; do not treat the
announcement as present until the consumer's pin carries it. Triage runs five
steps:
1. Mint the epic's “to mint when this arc opens” list together with findings, 1. Mint the epic's “to mint when this arc opens” list together with findings,
deferred work, and discussion outcomes accumulated since the epic was deferred work, and discussion outcomes accumulated since the epic was