BUILDER.md: the handed-off PR is the fourth parked shape; the handoff is its declaration #110
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#110
Loading…
Reference in a new issue
No description provided.
Delete branch "build/109-fourth-parked-shape"
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 #109
Doctrine only — the diff is
BUILDER.mdandCHANGELOG.md, nothing else. Adds the fourth parked shape (deliverable handed off: round passed, noblocker:*,state:needs-humanset), makes the handoff round summary the shape's declaration so no second issue comment is owed, extends shape 2 to the round awaiting its first verdicts, and cross-references the shape from Handoff.Acceptance criteria
state:needs-humanafter a passed round with no blocker standing.BUILDER.mdandCHANGELOG.mdand nothing else — no label, no workflow, no script.Test plan (from the issue)
./test/run.sh— 15/15 test files green locally;docs-sync-exercisevalidated by CI (this repo holds the source, so the guard stays indifferent).state:needs-human), rig#105 (rig#125,state:needs-human), #98 (#99,state:needs-human), incubator#44 (incubator#46,state:needs-human) and rig#103 (rig#122,state:needs-human) each come out shape 4 — parked, nothing further owed, their handoffs being their declarations; #104 and #105 come out as each builder's one active build. All seven match the issue's required answers.state:needs-humanback from is not shape 4 (the shape requires the label standing per Handoff, and the reconciler's take-back returns the work to the builder); a draft PR is in no round at all; "waiting on CI" remains on the not-parked list, which is untouched.Worklog
5af1538, LABELS.md, CHANGELOG head## Unreleased🔎 reviewing head 072a9a8e9692e67fa8c7edf5d65009782ea49f66
The change satisfies #109's doctrine contract.
BUILDER.mdnow defines exactly four parked shapes; shape 2 covers both first-verdict and re-requested live rounds, while shape 4 narrowly requires a passed round, no standing blocker, and the builder'sstate:needs-humanhandoff. The declaration exemption applies only to shape 4, Handoff points back to it, and the existing draft/CI exclusions remain intact. The changelog entry is present, and the diff is limited toBUILDER.mdandCHANGELOG.md.Verified at
072a9a8e9692e67fa8c7edf5d65009782ea49f66:git diff --check 5af1538463519577951bdd749f19dfc8f9643cb6..HEAD./test/run.sh— 15/15 test files passed🔎 reviewing head 072a9a8e9692e67fa8c7edf5d65009782ea49f66
Verdict: approve
Reviewed head
072a9a8e9692e67fa8c7edf5d65009782ea49f66against issue #109's acceptance criteria and the PR's stated test plan.Acceptance criteria
state:needs-human, round passed, noblocker:*)BUILDER.md+CHANGELOG.mdorigin/main...HEADis those two files onlySpec decisions (issue body)
1–5 map cleanly: fourth shape, handoff-as-declaration exemption, unparking left to the existing unpark rule, shape-2 first-verdicts clause, doctrine-only.
Board read-through (issue test plan)
Under the amended text: #101 / #106, rig#105, #98 / #99, incubator#44, rig#103 each park as shape 4 with nothing further owed (handoff = declaration). #104 and #105 remain each builder's one active build. Matches the required answers.
Must-fail cases stay failing
state:needs-humanis not shape 4 (shape requires the label standing per Handoff).Verification
test,docs-sync-exercise, self-guards, labels, release-exercise fixtures).## Unreleasedcites #109 and is insert-only.Doctrine-only change that closes the letter/intent gap named in #109 without widening the not-parked list or inventing machinery. Approve.
🔎 reviewing head 072a9a8e9692e67fa8c7edf5d65009782ea49f66
Approve head 072a9a8e9692e67fa8c7edf5d65009782ea49f66.
Verified every acceptance criterion from #109 against the diff and the full file at head:
blocker:*standing,state:needs-humanset per Handoff. ✓BUILDER.mdandCHANGELOG.mdonly; changelog line present under## Unreleased. No label, workflow, or script touched. ✓Guard rails from the test plan held: the not-parked list (waiting on yourself, on CI, on a good moment; abandonment) is verbatim intact, and shape 4's own definition requires the
state:needs-humanwrite — a label the reconciler has taken back does not satisfy it, so the must-fail cases stay must-fail.Ran the suite in a detached worktree at this head:
test files: 8 passed, 7 failed— byte-identical failures onmainat5af1538(all environmental:nodeandjqare absent here, killing the package-json version cases and the jq-dependent reconcile/ruling fixtures). The one file the issue's test plan names,docs-sync.test.sh, is green on the head: 59 passed, 0 failed — the guard stays indifferent to a source-repo doctrine change, as required.Read-through of the seven board claims: the five
state:needs-humanPRs come out shape 4 — parked, handoff as declaration, nothing further owed; #104 and #105 remain the one active build each. The amended text produces the answer the issue demands for all seven.Round summary — handoff
What shipped (head
072a9a8, the only head this PR ever had): doctrine only —BUILDER.mdplus oneCHANGELOG.mdline. The Picking shapes list now names four parked shapes, the fourth being the handed-off deliverable: round passed, noblocker:*standing,state:needs-humanset per Handoff. The handoff round summary is that shape's declaration, so no second issue comment is owed — the declaration exemption applies to shape 4 and only shape 4. Shape 2 now covers the round awaiting its first verdicts, with the two shapes stated as sequential and non-overlapping, and Handoff cross-references the shape.Rounds: one. The panel (codex, grok, kimi) each reviewed head
072a9a8and approved with no changes requested; the head never moved, so no round-over-round changes exist to report.What was verified:
./test/run.sh— 15/15 test files green locally; CI fully green on head: test, self-guards, action-exercise, docs-sync-exercise, labels (reconcile + scope), release-exercise (fixture-chain, step-replay consumer + dogfood). Mergeable, merge state CLEAN, noblocker:*standing.state:needs-humanis not shape 4, a draft PR is in no round, and "waiting on CI" remains on the untouched not-parked list.Post-merge residue: none in this repo — no label, workflow, or script changed. Governed repos consuming
.ceremony/BUILDER.mdpick up the amended doctrine on their next docs sync (this repo holds the source, sodocs-sync-exercisestays indifferent by design). #109 closes on merge viaCloses #109.Handing off: requesting @danmt's review and setting
state:needs-human. Per the doctrine this PR itself ships, this comment is the shape-4 declaration.Rebased onto current main (
ad04eaf) to resolve the CHANGELOG.md conflict with #99; new head is2422604, diff unchanged (BUILDER.md + CHANGELOG.md only), 15/15 test files green — re-requesting the panel since the push staled the approvals.🔎 reviewing head
2422604f50Verdict: approve
Closes #109. Reviewed head
2422604f50f7a0f9d066b2c1bca7db2a7603a84e— doctrine-only diff (BUILDER.md+CHANGELOG.md).Acceptance criteria
state:needs-human, no blocker, round passed)Read-through (issue test plan)
Under the amended shapes: handed-off
state:needs-humanclaims are shape 4 (parked, nothing further owed); live rounds awaiting verdicts are shape 2; not-parked list (self/CI/good-moment/abandonment) is intact and not softened. Reconciler take-back ofstate:needs-humancorrectly falls out of shape 4 because the shape requires the label standing.Verification
Approve.
🔎 reviewing head
2422604f50The rebased head still satisfies #109's doctrine contract.
BUILDER.mddefines exactly four parked shapes; shape 2 covers both a round awaiting first verdicts and an answered/re-requested live round, while shape 4 narrowly requires a passed round, no standingblocker:*, and the builder'sstate:needs-humanhandoff. The text explicitly makes shapes 2 and 4 sequential and non-overlapping.The declaration exemption is limited to shape 4, leaves “A park is declared, never inferred” intact for every other shape, and Handoff points back to shape 4 while identifying its round summary as the declaration. The existing exclusions for drafts, CI waits, and a taken-back
state:needs-humanremain intact. The changelog entry is present, and the PR diff against current base is limited toBUILDER.mdandCHANGELOG.md.Verified at
2422604f50f7a0f9d066b2c1bca7db2a7603a84e:git diff --check ad04eaf9903821d3ecef8aaec0eeca8ef05fd385..HEAD./test/run.sh— 15/15 test files passedtest,docs-sync-exercise,self-guards, action/release exercises, and label jobsApprove.
🔎 reviewing head
2422604f50Approve, head
2422604f50.This head is a rebase of 072a9a8e (which I approved) onto current main; the PR's own content is unchanged. Verified rather than assumed:
git diff 072a9a8e..2422604f -- BUILDER.md CHANGELOG.mdshows only main's #98 changes landing underneath: the grouped-changelog parenthetical in BUILDER.md (confirmed present on main itself at merge-basead04eaf9, so not this PR's edit) and the #98 changelog entry beneath this PR's line.BUILDER.mdandCHANGELOG.mdand nothing else — no label, workflow, or script touched, per #109's scope AC.testjob included (15/15 files where the toolchain exists; local failures on my box are missingjq/node, byte-identical to main's).Nothing new to block on; the rebase did not touch the reviewed doctrine.