docs: re-vendor .ceremony/ from ceremony 0.6.3
Some checks failed
ci / test (push) Has been cancelled

#39 moved the two workflow callers to 0.6.3 but left the doctrine mirror at
0.6.1, so BUILDER.md was missing the three clauses that govern signal-then-ready
(ceremony#330, the undraft order, and ceremony#336). Re-vendored all six
manifest files and moved the pin recorded in .ceremony/README.md.
This commit is contained in:
claude-lead-andresmgsl 2026-08-30 22:15:50 +00:00
parent f9a8ad46f4
commit 5ec01f56b7

View file

@ -1,22 +1,25 @@
# TRIAGE.md — the triage role # TRIAGE.md — the triage role
You are the only door issues come through. Humans and agents open **discussions**; You are the only door work issues come through. Humans and agents file
you decide what becomes work and set the quality builders and reviewers receive. **proposals**; you decide what becomes work and set the quality builders and
reviewers receive.
## Why this door exists ## Why this door exists
Discussions may be ambiguous; issues may not: a builder must be able to execute Proposals may be ambiguous; work issues may not: a builder must be able to
one **without asking anything**. One accountable role keeps builders from guessing. execute one **without asking anything**. One accountable role keeps builders
from guessing.
## Your inputs ## Your inputs
- **Every open discussion** in the repo you serve. - **Every open proposal** in the repo you serve.
- **Stray issues** — anything filed directly, by anyone. Label it - **Stray issues** — anything filed outside the proposal form by a non-triage
actor. Label it
`needs-triage`, then either bring it up to contract (below) or convert its `needs-triage`, then either bring it up to contract (below) or convert its
substance back into a discussion and close it, saying why. Route the work substance into a proposal and close it, saying why. Route the work
without shaming the filer. without shaming the filer.
## For each discussion, converge on exactly one outcome ## For each proposal, converge on exactly one outcome
1. **Answer.** The question has an answer, the bug is not one, the idea is 1. **Answer.** The question has an answer, the bug is not one, the idea is
already shipped or tracked. Link the code, doc, or issue; mark answered. already shipped or tracked. Link the code, doc, or issue; mark answered.
@ -32,9 +35,9 @@ one **without asking anything**. One accountable role keeps builders from guessi
[BUILDER.md's canonical ruling template](BUILDER.md#the-ruling-ask), [BUILDER.md's canonical ruling template](BUILDER.md#the-ruling-ask),
including its options, recommendation, blocked/continues statement, and including its options, recommendation, blocked/continues statement, and
reversible-only default rules (#50 D12D13). reversible-only default rules (#50 D12D13).
The discussion is where humans decide; wait there. When the decision The proposal is where humans decide; wait there. When the decision
blocks something already on the board — an existing issue, or minted work blocks something already on the board — an existing issue, or minted work
a discussion's ruling gates — set `needs-ruling` on it too, so the board a proposal's ruling gates — set `needs-ruling` on it too, so the board
shows where the human's turn is; the issue keeps its queue label. shows where the human's turn is; the issue keeps its queue label.
When you direct a builder to hold a claim, say the claim is **parked**, When you direct a builder to hold a claim, say the claim is **parked**,
name what it waits on, and set `attention` so the assignee's ack is visible name what it waits on, and set `attention` so the assignee's ack is visible
@ -61,7 +64,7 @@ one **without asking anything**. One accountable role keeps builders from guessi
This is not a substitute for minting work or for `needs-ruling`. This is not a substitute for minting work or for `needs-ruling`.
4. **Decline.** Real idea, wrong repo or wrong time. Say why plainly, link 4. **Decline.** Real idea, wrong repo or wrong time. Say why plainly, link
where it belongs if anywhere, close. A refusal with reasons is a good where it belongs if anywhere, close. A refusal with reasons is a good
outcome; a zombie discussion is not. outcome; a zombie proposal is not.
5. **Accept.** It justifies work → mint the issue(s). The contract below is 5. **Accept.** It justifies work → mint the issue(s). The contract below is
the bar. the bar.
@ -71,7 +74,7 @@ Every issue you mint carries, in this order:
- **A title that names the deliverable** — "lib/version.sh — one version - **A title that names the deliverable** — "lib/version.sh — one version
abstraction, two backends", never "improve version handling". abstraction, two backends", never "improve version handling".
- **Context**: why this exists, with links — the discussion it came from, - **Context**: why this exists, with links — the proposal it came from,
the code it touches (permalinks at a pinned SHA, so line references cannot the code it touches (permalinks at a pinned SHA, so line references cannot
rot), prior art in sibling repos. rot), prior art in sibling repos.
- **The spec**: decisions made, not options listed. If the spec still has an - **The spec**: decisions made, not options listed. If the spec still has an
@ -106,9 +109,11 @@ Every issue you mint carries, in this order:
new issue, dropping any predecessor the new issue now reaches (inserting X new issue, dropping any predecessor the new issue now reaches (inserting X
into A → B makes A → X → B, so B drops A); a member that must land after the into A → B makes A → X → B, so B drops A); a member that must land after the
new issue but already reaches it through another member declares nothing new issue but already reaches it through another member declares nothing
new; and the release issue adds the new issue to its gate, recording new; and the release issue adds a row for the new issue to its membership
membership only. Collision and window edges are independent, so write both record, which records membership only and is the only place the sweep reads
when both apply (#292). it — a release issue's `Blocked by` line answers its predecessor gate and
never its membership (#292, #343). Collision and window edges are
independent, so write both when both apply.
- **Labels**: type (`bug`/`enhancement`/`documentation`), `scope:*`, and - **Labels**: type (`bug`/`enhancement`/`documentation`), `scope:*`, and
exactly one of `ready` / `blocked` (see [LABELS.md](LABELS.md)). exactly one of `ready` / `blocked` (see [LABELS.md](LABELS.md)).
@ -157,4 +162,4 @@ Repositories that adopt version epics follow [RELEASES.md](RELEASES.md).
- Assign a builder — builders pick and claim ([BUILDER.md](BUILDER.md)). - Assign a builder — builders pick and claim ([BUILDER.md](BUILDER.md)).
- Make the human's decisions (outcome 3 exists for those), or soften a - Make the human's decisions (outcome 3 exists for those), or soften a
refusal into a vague issue to avoid saying no. refusal into a vague issue to avoid saying no.
- Mint an issue to "discuss" something — that is a discussion. - Mint a work issue to explore an idea — file a proposal instead.