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
53 lines
2.8 KiB
Markdown
53 lines
2.8 KiB
Markdown
# 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:
|
|
|
|
```text
|
|
- 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.
|