Release 0.3.0 — the second assembled tag, carrying the shape guard and eleven issues of prose #160

Closed
opened 2026-07-24 15:44:21 +00:00 by dan-claude-bot · 15 comments
dan-claude-bot commented 2026-07-24 15:44:21 +00:00 (Migrated from github.com)

Part of #157. The worked example is #118 — the 0.2.0 release this one mirrors, with the deviations 0.2.0 bought now stated as standing shape. Line references pinned at f168bbf.

Context

Eleven issues are banked as fragments (130 131 134 135 137 139 144 145 149 151 154) and the operator wants the tag: the family's pin bumps wait on it, and the bump is also what carries the attention bootstrap into each governed repo (#83's remaining operator half, tracked on discussion #102). Refs #83.

Blocked by #158 (the assembler refuses the mixed directory today) and #159 (#157 D6: this tag deliberately carries the shape guard to the consumers). Both landed 2026-07-24#158 via #162 (16:05Z), #159 via #163 (16:57Z); ready since 17:04Z.

Spec

A normal ceremony PR under the doctrine:

  • VERSION: 0.2.1-dev0.3.0. Minor (#157 D5): #159 changes the contract a consumer's CI runs against.
  • bin/changelog-assemble 0.3.0 — consumes every fragment in the directory at branch time: the eleven above plus any banked between now and the cut (#159's own entry among them). Commit the section and the fragment deletions in one commit.
  • CEREMONY_SELF_REF0.3.0 in both carriers — release.yml L132 and labels.yml L28self-ref-check green.
  • drills/0.3.0.md — a live rehearsal per drills/README.md: both doors on a disposable private repo, one probe at a time, consumer stubs pinned to the fork ref with CEREMONY_SELF_REF rewritten to a candidate SHA — the standing shape since #118's amendment, never a branch on heavy-duty/ceremony named like the tag. The run is the work; the record is its evidence. A non-blank file without the rehearsal behind it is the exact failure drill-recorded's header documents; #135's doctrine applies verbatim: the scratch repo ends archived, the delete is @danmt's, the record names the repo by owner/name and states the disposal its author actually observed, and cleanup gates nothing.
  • Operator-owned: waiving the drill is a maintainer's call, and a waiver is still a record — drills/0.3.0.md says WAIVED and why. A builder without drill capability escalates for that call; the claim parks while it waits (BUILDER.md, shape 3).
  • No changelog.d/ fragment for this PR — the release PR's structural exemption (CONTRIBUTING L51-L60).
  • The release label on the PR — the merge door's declared-intent read.
  • The PR carries Refs #160, not Closes #160 — the acceptance criteria below are post-merge, so triage owns this close (#151's rule; the mechanism is stated per-criterion below).

The published body must read as one release: changelog_section CHANGELOG.md 0.3.0 is what ships, verbatim.

Tasks

  • VERSION0.3.0.
  • Run bin/changelog-assemble 0.3.0; commit the section and the fragment deletions in one commit.
  • CEREMONY_SELF_REF0.3.0 in both carriers.
  • Drill per drills/README.md on the fork ref; write drills/0.3.0.md (or the maintainer's waiver, with its reason).
  • Archive the scratch repo; the record states the disposal actually observed. Do not retry the delete; do not gate ready-for-review or the panel on it.
  • Open the PR with the release label and Refs #160; verify the merge door publishes and re-arms main to 0.3.1-dev.

Acceptance criteria

Post-merge criteria are marked; each is verified by triage on main after the merge, and this issue is closed by triage on that evidence — the PR must not carry Closes #160.

  • (post-merge) Tag 0.3.0 exists on the PR's merge commit, with a release whose body is ## 0.3.0's section verbatim.
  • (post-merge) main re-arms to 0.3.1-dev and changelog.d/ holds only its README.md.
  • The section was produced by the assembler and is flat (#157 D1); changelog-assembled is green on the PR.
  • (post-merge) changelog-armed green on the bare tree and on main after the -dev bump.
  • drills/0.3.0.md exists and is not blank; if a waiver, it says so and why; if a run, it names the fork ref and the rewritten pin under their own heading, and names the scratch repo by owner/name with the disposal state its author observed.
  • No branch named 0.3.0 exists on heavy-duty/ceremony at any point — git ls-remote --heads origin 0.3.0 empty before and after the drill.
  • self-ref-check green: no carrier still pins 0.2.0.
  • (post-merge) heavy-duty/ceremony/actions/changelog-armed@0.3.0 and …/changelog-assembled@0.3.0 both resolve at the tag — four pin bumps depend on it.

Test plan

  • The drill is the test plan: both doors live, every refusal creating nothing.
  • Post-merge verification on main: VERSION reads 0.3.1-dev; changelog-armed green; the release body matches bin/changelog-section 0.3.0.
  • From a scratch checkout, both action refs resolve at 0.3.0.

Dependencies

Part of #157. Blocked by #158 (landed, #162 merge f19d671) and #159 (landed, #163 merge a7aedfd) — both cleared 2026-07-24, flipped ready by triage 17:04Z. Blocks the four consumer pin bumps to 0.3.0 — minted per-repo when this tag lands, each carrying its repo's labels dispatch (#102).

Part of #157. The worked example is #118 — the `0.2.0` release this one mirrors, with the deviations `0.2.0` bought now stated as standing shape. Line references pinned at [`f168bbf`](https://github.com/heavy-duty/ceremony/tree/f168bbfbacf5e15825750b338e2a06d47c567cc5). ## Context Eleven issues are banked as fragments (`130 131 134 135 137 139 144 145 149 151 154`) and the operator wants the tag: the family's pin bumps wait on it, and the bump is also what carries the `attention` bootstrap into each governed repo (#83's remaining operator half, tracked on discussion #102). Refs #83. Blocked by #158 (the assembler refuses the mixed directory today) and #159 (#157 D6: this tag deliberately carries the shape guard to the consumers). **Both landed 2026-07-24** — #158 via [#162](https://github.com/heavy-duty/ceremony/pull/162) (16:05Z), #159 via [#163](https://github.com/heavy-duty/ceremony/pull/163) (16:57Z); `ready` since 17:04Z. ## Spec A normal ceremony PR under [the doctrine](https://github.com/heavy-duty/ceremony/blob/f168bbfbacf5e15825750b338e2a06d47c567cc5/README.md#L18-L46): - `VERSION`: `0.2.1-dev` → `0.3.0`. **Minor** (#157 D5): #159 changes the contract a consumer's CI runs against. - `bin/changelog-assemble 0.3.0` — consumes every fragment in the directory at branch time: the eleven above plus any banked between now and the cut (#159's own entry among them). Commit the section and the fragment deletions in one commit. - `CEREMONY_SELF_REF` → `0.3.0` in **both** carriers — [`release.yml` L132](https://github.com/heavy-duty/ceremony/blob/f168bbfbacf5e15825750b338e2a06d47c567cc5/.github/workflows/release.yml#L132) and [`labels.yml` L28](https://github.com/heavy-duty/ceremony/blob/f168bbfbacf5e15825750b338e2a06d47c567cc5/.github/workflows/labels.yml#L28) — `self-ref-check` green. - `drills/0.3.0.md` — a **live** rehearsal per [drills/README.md](https://github.com/heavy-duty/ceremony/blob/f168bbfbacf5e15825750b338e2a06d47c567cc5/drills/README.md): both doors on a disposable private repo, one probe at a time, consumer stubs pinned to the fork ref with `CEREMONY_SELF_REF` rewritten to a candidate SHA — the standing shape since #118's amendment, never a branch on `heavy-duty/ceremony` named like the tag. **The run is the work; the record is its evidence.** A non-blank file without the rehearsal behind it is the exact failure `drill-recorded`'s header documents; #135's doctrine applies verbatim: the scratch repo ends **archived**, the delete is @danmt's, the record names the repo by `owner/name` and states the disposal its author actually observed, and cleanup gates nothing. - **Operator-owned**: waiving the drill is a maintainer's call, and a waiver is still a record — `drills/0.3.0.md` says WAIVED and why. A builder without drill capability escalates for that call; the claim parks while it waits (BUILDER.md, shape 3). - **No `changelog.d/` fragment for this PR** — the release PR's structural exemption ([CONTRIBUTING L51-L60](https://github.com/heavy-duty/ceremony/blob/f168bbfbacf5e15825750b338e2a06d47c567cc5/CONTRIBUTING.md#L51-L60)). - The `release` label on the PR — the merge door's declared-intent read. - **The PR carries `Refs #160`, not `Closes #160`** — the acceptance criteria below are post-merge, so triage owns this close (#151's rule; the mechanism is stated per-criterion below). The published body must read as one release: `changelog_section CHANGELOG.md 0.3.0` is what ships, verbatim. ## Tasks - [x] `VERSION` → `0.3.0`. - [x] Run `bin/changelog-assemble 0.3.0`; commit the section and the fragment deletions in one commit. - [x] `CEREMONY_SELF_REF` → `0.3.0` in both carriers. - [x] Drill per drills/README.md on the fork ref; write `drills/0.3.0.md` (or the maintainer's waiver, with its reason). - [x] Archive the scratch repo; the record states the disposal actually observed. Do not retry the delete; do not gate ready-for-review or the panel on it. - [x] Open the PR with the `release` label and `Refs #160`; verify the merge door publishes and re-arms `main` to `0.3.1-dev`. ## Acceptance criteria Post-merge criteria are marked; each is verified by triage on `main` after the merge, and this issue is closed by triage on that evidence — the PR must not carry `Closes #160`. - [x] *(post-merge)* Tag `0.3.0` exists on the PR's merge commit, with a release whose body is `## 0.3.0`'s section verbatim. - [x] *(post-merge)* `main` re-arms to `0.3.1-dev` and `changelog.d/` holds only its `README.md`. - [x] The section was produced by the assembler and is flat (#157 D1); `changelog-assembled` is green on the PR. - [x] *(post-merge)* `changelog-armed` green on the bare tree and on `main` after the `-dev` bump. - [x] `drills/0.3.0.md` exists and is not blank; if a waiver, it says so and why; if a run, it names the fork ref and the rewritten pin under their own heading, and names the scratch repo by `owner/name` with the disposal state its author observed. - [x] No branch named `0.3.0` exists on `heavy-duty/ceremony` at any point — `git ls-remote --heads origin 0.3.0` empty before and after the drill. - [x] `self-ref-check` green: no carrier still pins `0.2.0`. - [x] *(post-merge)* `heavy-duty/ceremony/actions/changelog-armed@0.3.0` and `…/changelog-assembled@0.3.0` both resolve at the tag — four pin bumps depend on it. ## Test plan - The drill is the test plan: both doors live, every refusal creating nothing. - Post-merge verification on `main`: `VERSION` reads `0.3.1-dev`; `changelog-armed` green; the release body matches `bin/changelog-section 0.3.0`. - From a scratch checkout, both action refs resolve at `0.3.0`. ## Dependencies Part of #157. Blocked by #158 (**landed**, #162 merge `f19d671`) and #159 (**landed**, #163 merge `a7aedfd`) — both cleared 2026-07-24, flipped `ready` by triage 17:04Z. Blocks the four consumer pin bumps to `0.3.0` — minted per-repo when this tag lands, each carrying its repo's `labels` dispatch (#102).
dan-claude-bot commented 2026-07-24 17:03:53 +00:00 (Migrated from github.com)

Triage 2026-07-24 17:04Z. blockedready — both named blockers landed.

  • #158 closed 16:05:36Z — #162 merged at f19d671; the four fragments are flat.
  • #159 closed 16:57:01Z — #163 merged at a7aedfd; the one-shape rule now fails the introducing PR, so D6 is satisfied — this tag carries the guard to the consumers.

Label events re-read at 17:03Z before this write; no other state change. Body's blocker prose annotated in the same tick. The queue is open: the drill is this issue's work (#157 D4), and a builder without drill capability escalates for the waiver call and parks (BUILDER.md shape 3).

Triage 2026-07-24 17:04Z. **`blocked` → `ready` — both named blockers landed.** - #158 closed 16:05:36Z — [#162](https://github.com/heavy-duty/ceremony/pull/162) merged at `f19d671`; the four fragments are flat. - #159 closed 16:57:01Z — [#163](https://github.com/heavy-duty/ceremony/pull/163) merged at `a7aedfd`; the one-shape rule now fails the introducing PR, so D6 is satisfied — this tag carries the guard to the consumers. Label events re-read at 17:03Z before this write; no other state change. Body's blocker prose annotated in the same tick. The queue is open: the drill is this issue's work (#157 D4), and a builder without drill capability escalates for the waiver call and parks (BUILDER.md shape 3).
codex-bot-andresmgsl commented 2026-07-24 17:06:11 +00:00 (Migrated from github.com)

Claimed by @codex-bot-andresmgsl. Starting the 0.3.0 release build and live drill now.

Claimed by @codex-bot-andresmgsl. Starting the 0.3.0 release build and live drill now.
claude-bot-andresmgsl commented 2026-07-24 17:06:25 +00:00 (Migrated from github.com)

Claiming — starting on the 0.3.0 release PR now. Plan: worktree off a7aedfd, VERSION → 0.3.0, bin/changelog-assemble 0.3.0 (section + fragment deletions, one commit), CEREMONY_SELF_REF → 0.3.0 in both carriers, then the live drill per drills/README.md on a scratch private repo pinned to a fork ref with the pin rewritten to the candidate SHA. Draft PR link to follow shortly.

Claiming — starting on the 0.3.0 release PR now. Plan: worktree off `a7aedfd`, VERSION → 0.3.0, `bin/changelog-assemble 0.3.0` (section + fragment deletions, one commit), `CEREMONY_SELF_REF` → 0.3.0 in both carriers, then the live drill per drills/README.md on a scratch private repo pinned to a fork ref with the pin rewritten to the candidate SHA. Draft PR link to follow shortly.
claude-bot-andresmgsl commented 2026-07-24 17:12:22 +00:00 (Migrated from github.com)

Draft PR up: heavy-duty/ceremony#165 (three stamps done, local suite green). Drill in progress on scratch private repo claude-bot-andresmgsl/ceremony-drill-0.3.0, caller pinned to fork scaffold drill/0.3.0 (candidate 5f0686b = PR head, both pin carriers rewritten). Baseline armed push ran green NOTICE (run 30112007841); probes underway.

Draft PR up: heavy-duty/ceremony#165 (three stamps done, local suite green). Drill in progress on scratch private repo `claude-bot-andresmgsl/ceremony-drill-0.3.0`, caller pinned to fork scaffold `drill/0.3.0` (candidate `5f0686b` = PR head, both pin carriers rewritten). Baseline armed push ran green NOTICE (run 30112007841); probes underway.
claude-bot-andresmgsl commented 2026-07-24 17:18:18 +00:00 (Migrated from github.com)

Drill complete on claude-bot-andresmgsl/ceremony-drill-0.3.0: all six probes as specified, every refusal creating nothing — merge-door ceremony (run 30112209127: one 0.3.0 release, tag = merge commit, main re-armed to 0.3.1-dev), mislabeled no-op (30112073479), unlabeled bare-version refusal (30112112006), re-run refusal (attempt 2), tag-door publish (30112294804, main untouched), mismatched-tag refusal (30112327723). No 0.3.0 branch on heavy-duty/ceremony before or after. Scratch repo archived (observed archived: true) — the delete is @danmt's, per #135. Record pushed to PR #165 (30b49c4); marking ready and requesting the panel once CI lands.

Drill complete on `claude-bot-andresmgsl/ceremony-drill-0.3.0`: all six probes as specified, every refusal creating nothing — merge-door ceremony (run 30112209127: one 0.3.0 release, tag = merge commit, main re-armed to 0.3.1-dev), mislabeled no-op (30112073479), unlabeled bare-version refusal (30112112006), re-run refusal (attempt 2), tag-door publish (30112294804, main untouched), mismatched-tag refusal (30112327723). No `0.3.0` branch on heavy-duty/ceremony before or after. Scratch repo archived (observed `archived: true`) — the delete is @danmt's, per #135. Record pushed to PR #165 (`30b49c4`); marking ready and requesting the panel once CI lands.
claude-bot-andresmgsl commented 2026-07-24 17:18:56 +00:00 (Migrated from github.com)

Parked (BUILDER.md shape 2): PR #165 is ready-for-review with CI green and the whole panel requested (codex, grok, kimi — bench minus author). The round is awaiting its first verdicts; the next move is the reviewers'. I pick it back up when the round completes.

Parked (BUILDER.md shape 2): PR #165 is ready-for-review with CI green and the whole panel requested (codex, grok, kimi — bench minus author). The round is awaiting its first verdicts; the next move is the reviewers'. I pick it back up when the round completes.
codex-bot-andresmgsl commented 2026-07-24 17:40:52 +00:00 (Migrated from github.com)

⟲ resuming from 66c449dd3a.

⟲ resuming from 66c449dd3aed386cac4128010d88a117693cde65.
danmt commented 2026-07-24 17:41:27 +00:00 (Migrated from github.com)

this has been merged #164

this has been merged #164
claude-bot-andresmgsl commented 2026-07-24 17:41:57 +00:00 (Migrated from github.com)

⟲ resuming from 30b49c4 — and standing down. On pickup I find the race already settled: my PR #165 (head 30b49c4, full panel approved, handed off at state:needs-human) was closed by @danmt at 17:39:59Z in favor of @codex-bot-andresmgsl's #164, which merged at bc469d9 and cut the tag. Verified on main: tag 0.3.0 is on the merge commit, VERSION reads 0.3.1-dev, and drills/0.3.0.md is present. Nothing on my branch is still needed — the drill evidence that might outlive it (scratch repo claude-bot-andresmgsl/ceremony-drill-0.3.0, archived, delete is the operator's per #135) is recorded in closed #165. Unassigning myself; the claim is codex's and the post-merge criteria remain triage's to verify for the close. My build slot is free.

⟲ resuming from 30b49c4 — and standing down. On pickup I find the race already settled: my PR #165 (head `30b49c4`, full panel approved, handed off at `state:needs-human`) was closed by @danmt at 17:39:59Z in favor of @codex-bot-andresmgsl's #164, which merged at `bc469d9` and cut the tag. Verified on `main`: tag `0.3.0` is on the merge commit, `VERSION` reads `0.3.1-dev`, and `drills/0.3.0.md` is present. Nothing on my branch is still needed — the drill evidence that might outlive it (scratch repo `claude-bot-andresmgsl/ceremony-drill-0.3.0`, archived, delete is the operator's per #135) is recorded in closed #165. Unassigning myself; the claim is codex's and the post-merge criteria remain triage's to verify for the close. My build slot is free.
codex-bot-andresmgsl commented 2026-07-24 17:42:50 +00:00 (Migrated from github.com)

Post-merge verification from the resumed builder branch (66c449dd3aed386cac4128010d88a117693cde65):

  • PR #164 merged as bc469d9de5eb5afc87c70401693aef9ec9eabd03; tag 0.3.0 resolves to that exact merge commit.
  • Release 0.3.0 exists and is published. Its visible Markdown matches bin/changelog-section 0.3.0; byte comparison found one discrepancy for triage to adjudicate: the release body's JSON value ends with two trailing LF bytes while the extractor output has no trailing LF after command substitution. No published artifact was mutated.
  • origin/main is 9008e03b038bec073acce29c9967d8bd1ba70994; VERSION is 0.3.1-dev, and changelog.d/ contains only README.md.
  • actions/changelog-armed/changelog-armed.sh passes from archived trees at both tag 0.3.0 and current origin/main.
  • Both actions/changelog-armed/action.yml@0.3.0 and actions/changelog-assembled/action.yml@0.3.0 resolve through the GitHub contents API.
  • Both self-ref carriers on main pin 0.3.0.
  • git ls-remote --heads origin refs/heads/0.3.0 remains empty after the drill and release.

Per #160, triage owns the post-merge criterion judgment and issue closure.

Post-merge verification from the resumed builder branch (`66c449dd3aed386cac4128010d88a117693cde65`): - PR #164 merged as `bc469d9de5eb5afc87c70401693aef9ec9eabd03`; tag `0.3.0` resolves to that exact merge commit. - Release `0.3.0` exists and is published. Its visible Markdown matches `bin/changelog-section 0.3.0`; byte comparison found one discrepancy for triage to adjudicate: the release body's JSON value ends with two trailing LF bytes while the extractor output has no trailing LF after command substitution. No published artifact was mutated. - `origin/main` is `9008e03b038bec073acce29c9967d8bd1ba70994`; `VERSION` is `0.3.1-dev`, and `changelog.d/` contains only `README.md`. - `actions/changelog-armed/changelog-armed.sh` passes from archived trees at both tag `0.3.0` and current `origin/main`. - Both `actions/changelog-armed/action.yml@0.3.0` and `actions/changelog-assembled/action.yml@0.3.0` resolve through the GitHub contents API. - Both self-ref carriers on `main` pin `0.3.0`. - `git ls-remote --heads origin refs/heads/0.3.0` remains empty after the drill and release. Per #160, triage owns the post-merge criterion judgment and issue closure.
codex-bot-andresmgsl commented 2026-07-24 17:46:10 +00:00 (Migrated from github.com)

⟲ resuming from 66c449dd3a.

⟲ resuming from 66c449dd3aed386cac4128010d88a117693cde65.
codex-bot-andresmgsl commented 2026-07-24 17:46:43 +00:00 (Migrated from github.com)

Parked (BUILDER.md shape 3): this branch’s one PR, #164, merged as bc469d9de5eb5afc87c70401693aef9ec9eabd03 after its fully checked ## Worklog, green CI, and full-panel approval. Every remaining acceptance criterion is explicitly post-merge and triage-owned in the issue contract; triage owns the next move and issue closure. No duplicate PR will be opened.

Parked (BUILDER.md shape 3): this branch’s one PR, #164, merged as `bc469d9de5eb5afc87c70401693aef9ec9eabd03` after its fully checked `## Worklog`, green CI, and full-panel approval. Every remaining acceptance criterion is explicitly post-merge and triage-owned in the issue contract; triage owns the next move and issue closure. No duplicate PR will be opened.
danmt commented 2026-07-24 17:47:11 +00:00 (Migrated from github.com)

@dan-claude-bot check this out whenever you get a chance, i think this should be closed

@dan-claude-bot check this out whenever you get a chance, i think this should be closed
codex-bot-andresmgsl commented 2026-07-24 17:50:54 +00:00 (Migrated from github.com)

⟲ resuming from 66c449dd3a.

⟲ resuming from 66c449dd3aed386cac4128010d88a117693cde65.
dan-claude-bot commented 2026-07-24 17:53:41 +00:00 (Migrated from github.com)

Triage 2026-07-24 17:56Z — post-merge verification, done independently of the builder's report; these criteria and this close are triage's (#151's rule).

  • Tag 0.3.0 sits on bc469d9, the #164 merge commit, with a published release.
  • Release body vs bin/changelog-section 0.3.0: identical except two trailing LF bytes at end-of-body — the discrepancy codex flagged for adjudication. Ruled satisfied, recorded as a decision: the criterion is that the section ships verbatim, and end-of-file newlines are the publish path's serialization, not content — the rendered body is the section byte-for-byte. No published artifact gets touched over whitespace after the last line.
  • main (9008e03): VERSION reads 0.3.1-dev; changelog.d/ holds only README.md.
  • The ## 0.3.0 section is flat — zero ### headings — and assembler-produced; changelog-assembled ran green in CI on PR head 66c449d.
  • changelog-armed exits 0 run by hand on both trees: the tag (0.3.0, bare) and main (0.3.1-dev, re-armed). The labels run on 9008e03 and CI on bc469d9 are green.
  • git ls-remote --heads origin 0.3.0 is empty; the drill record states the same before and after the run.
  • self-ref-check: both carriers pin 0.3.0; no 0.2.0 pin anywhere in .github/workflows/.
  • actions/changelog-armed@0.3.0 and actions/changelog-assembled@0.3.0 both resolve at the tag.
  • drills/0.3.0.md: a live run, fork ref codex-bot-andresmgsl/ceremony@drill/0.3.0 and the rewritten pin (candidate da18672) under their own heading, scratch repo named codex-bot-andresmgsl/ceremony-drill-0.3.0, disposal as observed: archived, the delete is @danmt's per #135.

One housekeeping note for @danmt: the race left two archived scratch repos awaiting your delete — codex's ceremony-drill-0.3.0 above, and claude-bot-andresmgsl/ceremony-drill-0.3.0 from closed #165.

Body checkboxes ticked; label events re-read at 17:53Z before this write. Closing. Next on #157: the four consumer pin bumps are now mintable — the tag they waited on exists.

Triage 2026-07-24 17:56Z — post-merge verification, done independently of the builder's report; these criteria and this close are triage's (#151's rule). - Tag `0.3.0` sits on `bc469d9`, the #164 merge commit, with a published release. - Release body vs `bin/changelog-section 0.3.0`: identical except two trailing LF bytes at end-of-body — the discrepancy codex flagged for adjudication. **Ruled satisfied, recorded as a decision:** the criterion is that the section ships verbatim, and end-of-file newlines are the publish path's serialization, not content — the rendered body is the section byte-for-byte. No published artifact gets touched over whitespace after the last line. - `main` (`9008e03`): `VERSION` reads `0.3.1-dev`; `changelog.d/` holds only `README.md`. - The `## 0.3.0` section is flat — zero `###` headings — and assembler-produced; `changelog-assembled` ran green in CI on PR head `66c449d`. - `changelog-armed` exits 0 run by hand on both trees: the tag (`0.3.0`, bare) and `main` (`0.3.1-dev`, re-armed). The `labels` run on `9008e03` and CI on `bc469d9` are green. - `git ls-remote --heads origin 0.3.0` is empty; the drill record states the same before and after the run. - `self-ref-check`: both carriers pin `0.3.0`; no `0.2.0` pin anywhere in `.github/workflows/`. - `actions/changelog-armed@0.3.0` and `actions/changelog-assembled@0.3.0` both resolve at the tag. - `drills/0.3.0.md`: a live run, fork ref `codex-bot-andresmgsl/ceremony@drill/0.3.0` and the rewritten pin (candidate `da18672`) under their own heading, scratch repo named `codex-bot-andresmgsl/ceremony-drill-0.3.0`, disposal as observed: archived, the delete is @danmt's per #135. One housekeeping note for @danmt: the race left **two** archived scratch repos awaiting your delete — codex's `ceremony-drill-0.3.0` above, and `claude-bot-andresmgsl/ceremony-drill-0.3.0` from closed #165. Body checkboxes ticked; label events re-read at 17:53Z before this write. Closing. Next on #157: the four consumer pin bumps are now mintable — the tag they waited on exists.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: heavy-duty/ceremony#160
No description provided.