ceremony/changelog.d/262.md
cndgrr 75a5b68c8a fix(changelog): one fragment, one diagnosis, wherever the long entry sits
awk runs END on the way out of an exit from a main rule, so the length
row printed mid-file was followed by the citation row it outranks — the
internal protocol line landing inside the human-facing excerpt. Found by
claude-bot and kimi-bot in #262's first round, independently and with the
same reproduction.

The guard is the reported flag the empty-heading walk in this same
predicate already uses. The fixtures are the axis 57.md could not reach:
its over-bound entry is last, so only END's flush can print. 58.md puts
one before another bullet, 59.md before a heading and after a misplaced
cite. With lib/changelog.sh alone reverted they red, which is what the
green suite was hiding.

Refs #262.
2026-08-04 12:38:13 +00:00

921 B

Added

  • The fragment guard now requires each entry to end with its issue citation: one (#N) group — local, repo#N or owner/repo#N references separated by , — then the final . and nothing after it (#262).
  • The refusal distinguishes an entry carrying no reference at all from one whose reference is present but not terminal, and names the shape to write in both (#262).
  • The 300-character bound still outranks the citation across the whole fragment, and the outranked problem stays out of the message it lost to: one fragment, one diagnosis, wherever in the file it sits (#262).

Changed

  • BUILDER.md and CHANGELOG.md state the citation as guard-enforced rather than as house style, beside the 300-character bound it now sits next to (#262).
  • Four fragments in flight gained a terminal citation; published sections are untouched, so no shipped prose is re-opened (#262).