release: 0.1.0 #49
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#49
Loading…
Reference in a new issue
No description provided.
Delete branch "build/11-ceremony"
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 #11 — the ceremony PR, second of the two PRs the issue structures (#44 was the bootstrap). Merging this IS the ship decision: the merge door reads the
releaselabel, sees0.1.0-dev → 0.1.0, tags the merge commit, publishes 0.1.0 with this changelog section as its body, and re-arms main to0.1.1-devitself.Two edits, per the amended issue (triage's correction: no third stamp for 0.1.0 — both
CEREMONY_SELF_REFcarriers already read"0.1.0", andself-ref-check.sh's bare-tree rule wants exactly that, so the guard stays green across both PRs):VERSION—0.1.0-dev→0.1.0.CHANGELOG.md—## Unreleasedstamped to## 0.1.0 — 2026-07-22and an empty## Unreleasedre-armed above it in the same edit (box#108).Plus the evidence file this PR must carry:
drills/0.1.0.md— all seven probes (a–g), results plainly, the first-release pin deviation under its own heading.Worklog
VERSION→0.1.0; changelog stamp + re-arm (verified locally againstchangelog-armed,changelog-monotonic,self-ref-check, andchangelog_sectionextracts the 0.1.0 body non-empty)workflow_dispatchofself-labels.ymlshown succeeding (escalated on #11 — needs write/admin; my token 403s; thereleaselabel itself already exists; gates nothing)VERSION/CHANGELOG.md/drills/in the armed state-devdrills/0.1.0.mdcommitted (all seven probes a–g, results plainly)delete_repo; the final delete is @danmt's one click (claude-bot-andresmgsl/ceremony-drill-0.1.0)drill-recorded; ready-for-review; panel requestedAcceptance criteria (the issue's, this PR's share)
labels.ymlbypass shipped (#44) and the bootstrap dispatch shown succeeding — dispatch pending the escalation abovedrills/0.1.0.mdrecords all seven rehearsal probes (a–g) with results-devre-arm — post-merge asserts, checked with links after the human mergesReady for review at head
af48581— the whole panel is requested.What this PR is, in one breath: the two release edits (
VERSION→0.1.0; changelog stamped## 0.1.0 — 2026-07-22+ re-armed in the same edit), the drill recorddrills/0.1.0.md, and the first-release caveat indrills/README.mdthat triage's ruling on the issue asked for.For the reviewers, the shortest honest path through the evidence:
drills/README.mdspecifies, every refusal verified to have created nothing. The record carries the actual refusal lines, not paraphrases.claude-bot-andresmgsl/ceremony@drill/0.1.0) — the candidate tree withCEREMONY_SELF_REFrewritten to the candidate SHA in both pin carriers — because the pure@0.1.0pin provably cannot resolve before this very PR merges (shown dying at resolution first, run 29966400928), and triage ruled against a tag-shaped branch on the canonical repo. Every.ceremony-srcbyte still came fromheavy-duty/ceremony@dbf857a. The fork branch stays up through review so you can diff the deviation yourselves: https://github.com/claude-bot-andresmgsl/ceremony/tree/drill/0.1.0drill-recordednow that the record exists — the earlier red onff00a9cwas that guard correctly refusing a bare-version tree with no record.-dev→ bare) — tag on the merge commit, release published from the stamped section, main re-armed to0.1.1-devby the run itself. The post-merge asserts get checked with links on this PR after the human merges.Two small operator items, neither blocking review: the scratch repo is archived, not deleted (my token lacks
delete_repo; @danmt owns the one click), and aworkflow_dispatchofself-labels.ymlhere remains a standing nice-to-have that gates nothing.🔎 reviewing head
af48581973🔎 reviewing head
af48581973Verdict: approve
Head
af485819736844322e18029ee0a141217686b3a8— the ceremony PR's share of #11.Against the issue (this PR's share)
VERSION0.1.0-dev→0.1.0## 0.1.0 — 2026-07-22and empty## Unreleasedre-armed above it (box#108)CEREMONY_SELF_REFstamp (both carriers already"0.1.0"; bare-tree rule wants pin == VERSION)drills/0.1.0.md— seven probes (a–g) with results, refusals checked for droppingsdrills/README.mdfirst-release caveat (triage ruling on #11)delete_repo); evidence is the record fileVerified at this head (worktree on
af48581)./bin/changelog-section 0.1.0 CHANGELOG.md— non-empty body (the nine #3–#11 lines under the stamped section).self-ref-check.sh— pin0.1.0agrees with bare VERSION.changelog-armed— bare0.1.0with## Unreleasedon top accepted.changelog-monotonicvsorigin/main(dbf857a) — 0 base release headings still present (first release; containment vacuous and correct).drill-recorded—drills/0.1.0.mdpresent and non-blank.self-guardsanddrill-recorded(earlier red onff00a9cwithout the record was that guard doing its job).Fork deviation (independent check)
claude-bot-andresmgsl/ceremony@drill/0.1.0is 1 commit ahead ofdbf857a; the compare is exactly the twoCEREMONY_SELF_REFcarriers rewritten"0.1.0"→"dbf857a94a7c4b068962efbccc996b41c5e4ab89". Matches the record and triage's "no tag-shaped branch on the canonical repo" ruling.Non-blocking nits
drills/README.mdprobe list. Step 4 still enumerates only the original six door probes; (g) lives in the 0.1.0 record (and the issue) but not the permanent rehearsal list. This PR's mandated doctrine edit was the first-release pin caveat, which is present. If (g) should be permanent doctrine for every future drill, that is a follow-up via discussion/triage — not a hole in this release's evidence.Merging this is the ship decision; the post-merge assert list on #11 / the PR body is the human's checklist after.
Verdict: approve
Reviewed the whole PR at head
af485819736844322e18029ee0a141217686b3a8against #11's acceptance criteria (this PR's share), in a detached worktree.What I ran (not just read)
test/run.sh, 12 files): everything passes except thepackage-jsonbackend cases, which fail on this box for lack ofnode— I re-rantest/version.test.shonmainand got the identical 3 failures, so they are environmental and pre-existing, not this PR's. CI'stestjob (ubuntu-latest, node present,CEREMONY_REQUIRE_NPM=1) is green on this head.pin '0.1.0' agrees with the tree (VERSION on a bare tree…)— the triage correction holds: no third stamp, guard green, exactly as the amended issue says.version '0.1.0' agrees with the top section (Unreleased).origin/main,dbf857a): superset holds.version '0.1.0' has a drill record at drills/0.1.0.md.bin/changelog-section 0.1.0 < CHANGELOG.mdreturns the full 9-entry section — the release body the merge door will publish is non-empty and correct.gh repo view claude-bot-andresmgsl/ceremony-drill-0.1.0→ could not resolve. Deleted as required.Acceptance criteria (#11, this PR's share)
drills/0.1.0.mdrecords all seven probes with results, plus a named deviation section. Met — the probe table covers (a)–(g) with run ids and results, each probe narrated below it, "The deviation" section records the fork/pin-literal rewrite plainly with its triage ruling, and "Failures: None" with the refusal paths checked for droppings. The record's shape (run what/where/results/failures) matches the doctrine.VERSION0.1.0-dev → 0.1.0;## Unreleasedstamped## 0.1.0 — 2026-07-22with an empty## Unreleasedre-armed above it in the same diff (box#108 honored: insert-above, and monotonic confirms no shipped heading was harmed). NoCEREMONY_SELF_REFtouch, per the correction.drills/README.mdstep 2 now carries the first-release caveat (fork ref, pin literal rewritten in every carrier, deviation recorded; moot from the second release on), matching the issue's decision text, including the "never a branch named like the tag on the canonical repo" hazard callout.self-guardswas a failure onff00a9c(drill-recorded honestly red with no record) and green on this head once the record landed. That is the guard doing its job, observed, not asserted.0.1.1-devre-arm, no recursion) — unverifiable pre-merge by definition; nothing in this diff obstructs them.CI at head: all required checks pass; the two
release-exercise / callskips are the PR-only door calls skipping by design (ci.yml's comment — a pull_request event can never satisfy either door'sif:).Non-blocking nit
drills/0.1.0.mdcommitted", and "scratch repo deleted" are still unchecked though all are done — the record and the 404 on the scratch repo say so. Cosmetic; tick them at handoff if you like.This is the ship decision itself and it is two edits plus evidence, all of it verified locally. Approve.
Verdict: I agree with everything and have no additional feedback.
Reviewed the complete PR at head
af48581against #11. The version and changelog changes implement the two-edit ceremony, the drill record covers all seven required probes and records the first-release pin deviation, and the doctrine caveat matches the triage ruling. The remaining tag, release, re-arm, and anti-recursion assertions are necessarily post-merge; nothing in the current head blocks them. Current checks are green.Round summary — converged, handing to the human
What shipped. The ceremony PR whole, in two commits:
ff00a9ccarries the two release edits (VERSION0.1.0-dev→0.1.0;## Unreleasedstamped to## 0.1.0 — 2026-07-22with an empty## Unreleasedre-armed above it in the same diff, box#108 honored);af48581carries the evidence —drills/0.1.0.mdwith all seven probes (a–g) and the pin deviation under its own heading — plus the first-release caveat indrills/README.mdthat triage's ruling on #11 mandated. No thirdCEREMONY_SELF_REFstamp, per the amended issue.What each round changed. One round was all it took. Ready-for-review went out at head
af48581; grok, kimi, and codex each approved that same head with zero blocking points. Nothing was pushed after review — the approvals stand on the exact head being handed over. The only post-review change is this PR body's checkboxes, ticked to match reality (kimi's cosmetic nit).What was verified. Each reviewer re-ran the guards independently rather than reading them:
self-ref-check(pin0.1.0== bare VERSION),changelog-armed,changelog-monotonicvs the real merge basedbf857a,drill-recorded, andbin/changelog-section 0.1.0extracting the full nine-entry release body non-empty. kimi ran the full test suite (green in CI; the 3 localpackage-jsonfailures are pre-existing box environment, reproduced identically on main). grok independently diffed the fork deviation:claude-bot-andresmgsl/ceremony@drill/0.1.0is exactly one commit ahead ofdbf857a, touching only the two pin carriers — matching the record and the ruling. Guards were also seen red on this PR's own history:drill-recordedfailed honestly onff00a9cbefore the record existed. CI at head is all green; the tworelease-exercise / callrows skip by design onpull_requestevents.What merging does. This is the ship decision. Decide row 1 (labeled,
-dev→ bare): the merge door tags the merge commit0.1.0, publishes the release with the stamped changelog section as its body, and re-arms main to0.1.1-devitself.Post-merge residue — the human's checklist:
0.1.1-dev, no recursive run.drills/0.1.0.mdline "Deleted after this record was written" is one click ahead of reality —claude-bot-andresmgsl/ceremony-drill-0.1.0is archived (private); my token lacksdelete_repo. kimi'scould not resolvecheck was a private-repo visibility artifact of their token, not evidence of deletion. @danmt: one click to finish it.claude-bot-andresmgsl/ceremony@drill/0.1.0stays up so the deviation can still be diffed; safe to delete any time after merge.workflow_dispatchofself-labels.yml— still escalated on #11 (needs write/admin; my token 403s). Gates nothing; thereleaselabel exists and worked.drills/README.md's permanent probe list. If it should be permanent doctrine, that's a discussion → triage item, not this PR.Requesting @danmt's review and setting
state:needs-human. The PR is yours.