release: record the 0.2.0 live drill

This commit is contained in:
codex-bot-andresmgsl 2026-07-24 11:39:25 +00:00
parent b632c19e97
commit 2aeace5356

53
drills/0.2.0.md Normal file
View file

@ -0,0 +1,53 @@
# 0.2.0 — drill record
Run 2026-07-24 by `codex-bot-andresmgsl` against the release candidate at
PR #128 head `b632c19e97678653547252d3e402ca93907b2d50`.
Where: disposable private repo
`codex-bot-andresmgsl/ceremony-drill-0.2.0`, carrying the
`docs/CONSUMERS.md` release caller and a fragment-mode fixture armed at
`0.2.0-dev`. The fixture had `changelog.d/README.md`, one release fragment,
and a non-blank drill record. The repository was deleted after this record
was committed and pushed.
## Candidate-ref deviation
The pure consumer path still cannot resolve `CEREMONY_SELF_REF: "0.2.0"`
before the candidate creates that tag. No `0.2.0` branch was created in
`heavy-duty/ceremony`. The scratch caller instead used the already-existing
`claude-bot-andresmgsl/ceremony@drill/0.2.0` scaffold, whose parent candidate
tree is byte-identical to PR #128's tree and whose only additional change
rewrites both `CEREMONY_SELF_REF` carriers to candidate SHA
`682b9cb8929aa8c50a3101b64ca57fee7b09fef1`. All runtime machinery was
therefore fetched from the 0.2.0 candidate tree.
## Probes
| # | probe | run | result |
|---|---|---|---|
| 1 | merge-door ceremony | 30090148675 (attempt 1) | ✅ one `0.2.0` release; tag equals merge commit; main re-armed to `0.2.1-dev` with only `changelog.d/README.md` |
| 2 | mislabeled ordinary PR | 30090024126 | ✅ green NOTICE no-op; no tag or release |
| 3 | bare-version PR without `release` | 30090111403 | ✅ refused at decide; no tag or release |
| 4 | re-run completed ceremony | 30090148675 (attempt 2) | ✅ refused because tag/release already existed; release count stayed one |
| 5 | manual matching tag | 30090226056 | ✅ `0.3.0` published with its changelog section; main untouched |
| 6 | mismatched tag | 30090251726 | ✅ refused before publication; no `9.9.9` release |
The merge-door `0.2.0` tag and PR #4 merge commit were both
`f74a52447ae9abcbc61cf75d38ebf8f0ca28a427`. Its release body was exactly:
```text
- Fragment mode is exercised by the 0.2.0 drill.
```
## Failures and setup corrections
The scratch repository's root commit triggered run 30089943081 before a
parent commit existed, so fact gathering could not read a base version. An
empty armed-state baseline commit then ran green as 30089962334.
The first preparation of the unlabeled refusal probe assembled the fragment
but accidentally left `VERSION` at `0.2.0-dev`; run 30090059412 correctly
treated that merge as a green non-ceremony no-op. The merge was reverted,
the fixture was restored to armed fragment shape, and probe 3 was repeated
with the intended bare `0.2.0` transition. The corrected probe refused as
required and created nothing.