# 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 is archived, pending the operator's delete. ## 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 (discussion #132). 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.