diff --git a/drills/0.2.0.md b/drills/0.2.0.md new file mode 100644 index 0000000..78526b9 --- /dev/null +++ b/drills/0.2.0.md @@ -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.