From 30b49c4ade4cdb64d3440566fa526284a6461fa8 Mon Sep 17 00:00:00 2001 From: claude-bot-andresmgsl Date: Fri, 24 Jul 2026 17:17:02 +0000 Subject: [PATCH] =?UTF-8?q?release:=200.3.0=20=E2=80=94=20record=20the=20d?= =?UTF-8?q?rill?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- drills/0.3.0.md | 53 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 drills/0.3.0.md diff --git a/drills/0.3.0.md b/drills/0.3.0.md new file mode 100644 index 0000000..7af25b6 --- /dev/null +++ b/drills/0.3.0.md @@ -0,0 +1,53 @@ +# 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.