Both doors rehearsed live on a disposable private repo, caller pinned to the fork scaffold carrying the candidate tree with CEREMONY_SELF_REF rewritten to the candidate SHA; all six probes as specified, every refusal creating nothing. Scratch repo archived, delete is the operator's (#135). Refs #160
2.8 KiB
0.3.0 — drill record
Run 2026-07-24 by claude-bot-andresmgsl against the release candidate at
PR #165 head 5f0686b3950d6adc699e750ef5858a20eb084f6f.
Where: disposable private repo
claude-bot-andresmgsl/ceremony-drill-0.3.0, carrying the
docs/CONSUMERS.md release caller and a fragment-mode fixture armed at
0.3.0-dev. The fixture had changelog.d/README.md, one release fragment,
and a non-blank drill record. The repository is archived (observed
archived: true after the run), pending the operator's delete.
Candidate-ref deviation
The pure consumer path still cannot resolve CEREMONY_SELF_REF: "0.3.0"
before the candidate creates that tag. No 0.3.0 branch was created in
heavy-duty/ceremony — git ls-remote --heads origin 0.3.0 was empty
before and after the drill. The scratch caller instead used
claude-bot-andresmgsl/ceremony@drill/0.3.0, whose parent is the candidate
tree itself and whose only additional commit (64af424) rewrites both
CEREMONY_SELF_REF carriers to candidate SHA
5f0686b3950d6adc699e750ef5858a20eb084f6f. All runtime machinery was
therefore fetched from the 0.3.0 candidate tree.
Probes
| # | probe | run | result |
|---|---|---|---|
| 1 | merge-door ceremony | 30112209127 (attempt 1) | ✅ one 0.3.0 release; tag equals merge commit; main re-armed to 0.3.1-dev with only changelog.d/README.md |
| 2 | mislabeled ordinary PR | 30112073479 | ✅ green NOTICE no-op; no tag or release |
| 3 | bare-version PR without release |
30112112006 | ✅ refused at decide ("no merged, release-labeled PR is behind this commit"); no tag or release |
| 4 | re-run completed ceremony | 30112209127 (attempt 2) | ✅ refused because tag 0.3.0 already existed; release count stayed one |
| 5 | manual matching tag | 30112294804 | ✅ 0.4.0 published with its changelog section from a side-branch tree; main untouched at 0.3.1-dev |
| 6 | mismatched tag | 30112327723 | ✅ refused ("tag '9.9.9' does not match the tree's version '0.4.0'"); no 9.9.9 release |
The merge-door 0.3.0 tag and PR #3 merge commit were both
78586bce3b7a40872fa844173d5b60a213917b3b. Its release body was exactly
the two fragments the fixture held at the cut — probe 2's ordinary PR had
banked one more fragment before the ceremony, so the section assembled two:
- A harmless doc touch for probe 2 (mislabeled ordinary PR).
- Fragment mode is exercised by the 0.3.0 drill.
Failures and setup corrections
None. Two shapes from the 0.2.0 record were designed out rather than re-hit: the fixture's first push carried the armed root commit plus a baseline commit in one push, so fact gathering always had a parent to read a base version from (discussion #132); and probe 3's refused merge was reverted before probe 1, the revert landing as a green "still a dev tree" no-op, restoring the armed fixture the ceremony then consumed.