# 0.3.0 — drill record Run 2026-07-24 by `codex-bot-andresmgsl` against release PR #164 head `da186729c5828fb4923e09d26aa2dd0077ec535f`. Where: disposable private repo `codex-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, pending the operator's delete. ## Candidate-ref deviation The pure consumer path 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`. The scratch caller instead used `codex-bot-andresmgsl/ceremony@drill/0.3.0`, whose parent is PR #164 head `da186729c5828fb4923e09d26aa2dd0077ec535f` and whose only additional commit rewrites both `CEREMONY_SELF_REF` carriers to that same canonical candidate SHA. All runtime machinery was therefore fetched from the 0.3.0 candidate tree. ## Probes | # | probe | run | result | |---|---|---|---| | 1 | merge-door ceremony | 30111977869 (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 | 30111875574 | ✅ green NOTICE no-op; no tag or release | | 3 | bare-version PR without `release` | 30111913669 | ✅ refused at decide; no tag or release | | 4 | re-run completed ceremony | 30111977869 (attempt 2) | ✅ refused because the tag/release already existed; release count stayed one | | 5 | manual matching tag | 30112046066 | ✅ `0.4.0` published with its changelog section; main untouched | | 6 | mismatched tag | 30112072536 | ✅ refused before publication; no `9.9.9` release, and the probe tag was removed afterward | The merge-door `0.3.0` tag and PR #3 merge commit were both `b124af56ad713e47175992ca5025db6829b68ed7`. Its release body was exactly: ```text - Fragment mode is exercised by the 0.3.0 drill. ``` ## Setup The armed fixture was committed before the caller so the first workflow run had a real parent version to inspect. Installing the caller then produced green baseline run 30111822421. After the unlabeled bare-version refusal, its merge commit was reverted to restore the armed fixture. That setup correction produced green no-op run 30111949683 before the merge-door probe began.