feat: ceremony flips to grouped — changelog.d/shape = grouped, five fragments converted, docs per D6

167/175 gain '### Added', 173/178 '### Changed', 180 '### Fixed' — every
bullet byte-identical, headings only (the #158 bar, inverted). CONSUMERS.md
names the sentinel and the flip procedure; changelog.d/README.md names the
sentinel. 182.md is this PR's own fragment, grouped atop the sentinel it
ships.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
claude-bot-andresmgsl 2026-07-25 13:14:05 +00:00
parent 2fd9cb7ded
commit be666ebed6
9 changed files with 30 additions and 2 deletions

View file

@ -1,3 +1,5 @@
### Added
- `changelog_fragment_problem` bounds every entry at 300 normalized
characters, red on the PR that writes the fragment; the armed guard and
the assembler inherit the one definition (#167).

View file

@ -1 +1,3 @@
### Changed
- Private-repository label callers document `actions: read` alongside checks and statuses for workflow-run check-rollup nodes (#173).

View file

@ -1 +1,3 @@
### Added
- Add `post-merge` issue state for merged `Refs` work awaiting triage-owned verification.

View file

@ -1,3 +1,5 @@
### Changed
- BUILDER.md: a park declaration stands until its facts change — a
nothing-changed resumption posts nothing; only a no-open-PR park owes a
refresh, inside the 48-hour reclaim window (#178).

View file

@ -1,3 +1,5 @@
### Fixed
- `decide_state()` refuses `state:needs-human` while the hand-set `blocked`
label stands — the PR falls to `state:addressing`, exactly parallel to the
`needs-ruling` exclusion; never emitted by `blockers()` (#180).

10
changelog.d/182.md Normal file
View file

@ -0,0 +1,10 @@
### Added
- `changelog.d/shape` — an optional one-line sentinel, `flat` or `grouped`,
that pins the fragment set's shape and outranks the newest-published-section
inference; absent, the inference binds unchanged (#182).
### Changed
- Ceremony's changelog is grouped from this release forward: the pending
fragments carry `### ` headings under a `grouped` sentinel (#182).

View file

@ -7,4 +7,5 @@ published, nothing else — and the release PR folds them all into the next
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.
delete it. The `shape` sentinel beside it declares the set's shape —
`grouped` here, so every fragment carries `### ` headings (#182).

1
changelog.d/shape Normal file
View file

@ -0,0 +1 @@
grouped

View file

@ -480,7 +480,13 @@ CONTRIBUTING may sharpen it, but this is the floor the guards assume:
kind. A repo is grouped or flat, never both (#112 D4). The assembler
merges groups in canonical order — Added, Changed, Fixed, Removed,
Deprecated, Security, then anything else first-seen — and inside a
group entries read newest issue first (#112 D5).
group entries read newest issue first (#112 D5). Which shape binds is
inferred from the newest published section, unless an optional sentinel
`changelog.d/shape` — one line, exactly `flat` or `grouped` — declares
it and outranks the inference (#182). To flip a repo's shape, land one
PR that adds the sentinel and converts every pending fragment to the
declared shape, bullets byte-identical; the sentinel stays after the
release, as the declaration a reader in the directory finds.
- **One line: say what changed, and stop.** Lead with the surface, not
the mechanism — "`state:needs-human` is set at handoff" beats "the
labels workflow now also wakes on `labeled`". The why and the how