From 728b97df8a9ef05ec68cb28e5561c7bbfc4e5eda Mon Sep 17 00:00:00 2001 From: codex-bot-andresmgsl <244098813+codex-bot-andresmgsl@users.noreply.github.com> Date: Fri, 24 Jul 2026 13:55:28 +0000 Subject: [PATCH] feat: convert unreleased changelog to fragments --- .github/pull_request_template.md | 4 ++-- CHANGELOG.md | 24 ------------------------ CONTRIBUTING.md | 12 +++++++----- changelog.d/103.md | 3 +++ changelog.d/105.md | 3 +++ changelog.d/106.md | 3 +++ changelog.d/109.md | 3 +++ changelog.d/112.md | 8 ++++++++ changelog.d/119.md | 3 +++ changelog.d/120.md | 3 +++ changelog.d/123.md | 3 +++ changelog.d/133.md | 3 +++ changelog.d/136.md | 3 +++ changelog.d/63.md | 3 +++ changelog.d/95.md | 3 +++ changelog.d/README.md | 10 ++++++++++ 16 files changed, 60 insertions(+), 31 deletions(-) create mode 100644 changelog.d/103.md create mode 100644 changelog.d/105.md create mode 100644 changelog.d/106.md create mode 100644 changelog.d/109.md create mode 100644 changelog.d/112.md create mode 100644 changelog.d/119.md create mode 100644 changelog.d/120.md create mode 100644 changelog.d/123.md create mode 100644 changelog.d/133.md create mode 100644 changelog.d/136.md create mode 100644 changelog.d/63.md create mode 100644 changelog.d/95.md create mode 100644 changelog.d/README.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index af54b9a..9f98f78 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -12,8 +12,8 @@ to the issue for triage to amend, not silently unshipped. --> ## Changelog -- [ ] One line under `## Unreleased` — inserted **above** the heading below - it, never over it — or no behavior change, stated here. +- [ ] One `changelog.d/.md` fragment containing the exact publishable + prose — or no behavior change, stated here. ## Round log diff --git a/CHANGELOG.md b/CHANGELOG.md index dc9cb27..2a28051 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,30 +4,6 @@ History before 0.1.0 lives in git — rig grew its version surface (`VERSION`, `rig --version`, the side-by-side `versions/` install layout; #35/#36) on the way to cutting its first release, and this file starts there. -## Unreleased - -### Added - -- `drill/drill.sh` — the drill has an instrument: pinned-ref assertion, a mechanical idempotence diff, and a `drills/.md` record emitter (#105) -- GitHub entry templates route humans to Discussions and prefill triage work orders and pull requests (#123) -- `rig platform` prints a stable machine `ID`, derived from `/etc/machine-id`, never the raw value (#95) -- Platform, drill, docs and labels changes receive dedicated scope labels (#119) -- CI drills the install lifecycle against a real tree — install from the checkout, converge to an empty diff, uninstall to proven absence (#106) -- `rig bootstrap --undo` removes only a tailnet join rig can prove it made (#63) -- `kimi-box` joins the box tenant roles — the Kimi CLI agent guest (#109) -- The `changelog-armed` guard returns, version-keyed (#112, ceremony#13) -- The `.ceremony/` doctrine mirror, verified by `docs-sync` on every PR (#112, ceremony#19) - -### Changed - -- `bootstrap --host yes` installs a pinned box release instead of `main` (#103) -- Release and labels machinery is consumed from heavy-duty/ceremony@0.1.0 by reference — the workflows shrink to caller stubs, the guard scripts and their tests move upstream (#112, ceremony#13) - -### Fixed - -- The drill's docs no longer claim both installers default to `main` — box installs the `BOX_RELEASE` pin, rig the latest release, and its `--box-ref` example is now a tag (#133) -- `kimi-bot-andresmgsl` is on the review panel — the roster predated it joining the bench (#120) - ## 0.3.0 — 2026-07-21 ### Fixed diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 38b4a68..bb23a6e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -25,14 +25,16 @@ genuinely rig's. round-trip (`test/db-integration.sh`) executes in CI where Docker is present. The release guards (`changelog-armed`, `changelog-monotonic`, `drill-recorded`, `docs-sync`) run as ceremony's pinned actions. -4. **Feature PRs land their changelog entry as part of the PR**: add it - under `CHANGELOG.md`'s `## Unreleased` heading — that section becomes - the release notes verbatim when a release is cut. +4. **Feature PRs land their changelog entry as part of the PR**: write + `changelog.d/.md` — the release PR assembles those fragments into + the release notes verbatim. ## Changelog entries -Every PR that changes behaviour adds one line to `## Unreleased`. One line is -the whole rule — if it wraps more than twice in your editor, cut it down. +Every PR that changes behaviour writes one `changelog.d/.md` fragment. +The fragment keeps the relevant `### Added` / `### Changed` / `### Fixed` +heading above its entry. One line is the whole rule — if it wraps more than +twice in your editor, cut it down. - **Say what changed, and stop.** Why it was wrong, how it was found, what it cost, what it implies — that belongs in the PR body and the commit message, diff --git a/changelog.d/103.md b/changelog.d/103.md new file mode 100644 index 0000000..0a4d7e0 --- /dev/null +++ b/changelog.d/103.md @@ -0,0 +1,3 @@ +### Changed + +- `bootstrap --host yes` installs a pinned box release instead of `main` (#103) diff --git a/changelog.d/105.md b/changelog.d/105.md new file mode 100644 index 0000000..a427bd8 --- /dev/null +++ b/changelog.d/105.md @@ -0,0 +1,3 @@ +### Added + +- `drill/drill.sh` — the drill has an instrument: pinned-ref assertion, a mechanical idempotence diff, and a `drills/.md` record emitter (#105) diff --git a/changelog.d/106.md b/changelog.d/106.md new file mode 100644 index 0000000..4cde402 --- /dev/null +++ b/changelog.d/106.md @@ -0,0 +1,3 @@ +### Added + +- CI drills the install lifecycle against a real tree — install from the checkout, converge to an empty diff, uninstall to proven absence (#106) diff --git a/changelog.d/109.md b/changelog.d/109.md new file mode 100644 index 0000000..92f4569 --- /dev/null +++ b/changelog.d/109.md @@ -0,0 +1,3 @@ +### Added + +- `kimi-box` joins the box tenant roles — the Kimi CLI agent guest (#109) diff --git a/changelog.d/112.md b/changelog.d/112.md new file mode 100644 index 0000000..fc2aad2 --- /dev/null +++ b/changelog.d/112.md @@ -0,0 +1,8 @@ +### Added + +- The `changelog-armed` guard returns, version-keyed (#112, ceremony#13) +- The `.ceremony/` doctrine mirror, verified by `docs-sync` on every PR (#112, ceremony#19) + +### Changed + +- Release and labels machinery is consumed from heavy-duty/ceremony@0.1.0 by reference — the workflows shrink to caller stubs, the guard scripts and their tests move upstream (#112, ceremony#13) diff --git a/changelog.d/119.md b/changelog.d/119.md new file mode 100644 index 0000000..d5acd27 --- /dev/null +++ b/changelog.d/119.md @@ -0,0 +1,3 @@ +### Added + +- Platform, drill, docs and labels changes receive dedicated scope labels (#119) diff --git a/changelog.d/120.md b/changelog.d/120.md new file mode 100644 index 0000000..ec82a87 --- /dev/null +++ b/changelog.d/120.md @@ -0,0 +1,3 @@ +### Fixed + +- `kimi-bot-andresmgsl` is on the review panel — the roster predated it joining the bench (#120) diff --git a/changelog.d/123.md b/changelog.d/123.md new file mode 100644 index 0000000..da56e16 --- /dev/null +++ b/changelog.d/123.md @@ -0,0 +1,3 @@ +### Added + +- GitHub entry templates route humans to Discussions and prefill triage work orders and pull requests (#123) diff --git a/changelog.d/133.md b/changelog.d/133.md new file mode 100644 index 0000000..244ea91 --- /dev/null +++ b/changelog.d/133.md @@ -0,0 +1,3 @@ +### Fixed + +- The drill's docs no longer claim both installers default to `main` — box installs the `BOX_RELEASE` pin, rig the latest release, and its `--box-ref` example is now a tag (#133) diff --git a/changelog.d/136.md b/changelog.d/136.md new file mode 100644 index 0000000..54d0a77 --- /dev/null +++ b/changelog.d/136.md @@ -0,0 +1,3 @@ +### Changed + +- Changelog entries land in per-issue fragments assembled by the release PR (#136) diff --git a/changelog.d/63.md b/changelog.d/63.md new file mode 100644 index 0000000..0610b80 --- /dev/null +++ b/changelog.d/63.md @@ -0,0 +1,3 @@ +### Added + +- `rig bootstrap --undo` removes only a tailnet join rig can prove it made (#63) diff --git a/changelog.d/95.md b/changelog.d/95.md new file mode 100644 index 0000000..511d39b --- /dev/null +++ b/changelog.d/95.md @@ -0,0 +1,3 @@ +### Added + +- `rig platform` prints a stable machine `ID`, derived from `/etc/machine-id`, never the raw value (#95) diff --git a/changelog.d/README.md b/changelog.d/README.md new file mode 100644 index 0000000..1c529b2 --- /dev/null +++ b/changelog.d/README.md @@ -0,0 +1,10 @@ +# changelog.d/ — the next release's section, one fragment per issue + +Machine-assembled by `bin/changelog-assemble` (#112): every PR that changes +behavior writes one file here — `.md`, the exact prose that will be +published, nothing else — and the release PR folds them all into the next +`## X.Y.Z — DATE` section of `CHANGELOG.md`, consuming them. Distinct +filenames never conflict, which is this directory's whole reason to exist. +This README is the marker that keeps the directory tracked when it holds no +fragments (#112 D1) — `changelog-armed` refuses a tree without it; do not +delete it.