ceremony/drills/0.6.0.md
cndgrr fb8f8282a9 release: cut 0.6.0
Thirty-five fragments assembled into '## 0.6.0 — 2026-08-05'; VERSION to
bare 0.6.0; the three CEREMONY_SELF_REF carriers stamped "0.6.0" in this
one commit; the three docs/CONSUMERS.md availability markers cleared to
name 0.6.0 — refs-not-closing (#218), the RELEASES.md mirror entry (#248)
and the vendored-manifest completeness guarantee (#251).

drills/0.6.0.md opens with the measurement that decides its shape: the
doors-unchanged conditions do NOT all hold at this candidate, because
lib/changelog.sh moved on the release path since the last rehearsed tag
0.4.0. A full disposable-repo rehearsal is owed and is in progress; the
record is committed early and filled from the runs as they happen.

Refs #249.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 00:01:03 +00:00

2.8 KiB

0.6.0 — drill record

IN PROGRESS — this record is being written as the rehearsal runs. It is committed early so the candidate carries evidence at every head rather than appearing at the end; the release PR is a draft until it is complete, and no probe row below is written before its run exists.

Run 2026-08-05 by cndgrr against the 0.6.0 release PR (Refs #249), candidate branch build/249-release-0-6-0.

Scope ruling — a full rehearsal is owed, and doors-unchanged is refused

This record's shape was measured, not chosen. drills/README.md allows the doors-unchanged shape only when all three of its conditions hold at the candidate head; the first one does not.

The baseline is the last rehearsed tag, never the previous tag: drills/0.4.1.md and drills/0.5.0.md are both doors-unchanged records, so the anchor is 0.4.0, whose record is a full disposable-repo rehearsal, whose release is published, and after which main was re-armed to 0.4.1-dev (84bb1a4). Condition 3 holds.

The release path is exactly the output of .github/scripts/release-path.sh at this head — .github/workflows/release.yml, bin/, lib/version.sh, lib/decide.sh, lib/facts.sh, lib/changelog.sh. Condition 2 holds.

Condition 1 fails. Measured at this candidate:

$ git diff 0.4.0..HEAD -- $(.github/scripts/release-path.sh)
 .github/workflows/release.yml |  2 +-
 lib/changelog.sh              | 83 ++++++++++++++++++++++++++++++++++++++---

release.yml's two lines are the CEREMONY_SELF_REF pin, which the condition exempts. lib/changelog.sh is not exempt and is not empty: it carries 72fa3e0 (the terminal issue-citation rule joining the fragment guard, #262) and 75a5b68 (one fragment, one diagnosis, #262). That file is on the release path because the merge door sources it to assemble and read the release section — this is a door byte, not a neighbouring library, and the last-rehearsed anchor exists precisely so an accumulated change like this forces a new rehearsal rather than chaining a third doors-unchanged assertion off the second.

So this release owes the disposable-repo rehearsal, and this record is it.

Where

Pending — the scratch repo's full owner/name and its disposal state as observed by this record's author are written here when the rehearsal runs.

Candidate-ref deviation

Pending — the fork ref carrying the candidate tree and the canonical candidate SHA its CEREMONY_SELF_REF carriers are rewritten to.

Probes

Pending — one row per probe, written from its run, never before it.

# probe run result
1 merge-door ceremony
2 mislabeled ordinary PR
3 bare-version PR without release
4 re-run completed ceremony
5 manual matching tag
6 mismatched tag