Skip to content

fix(mage): point every client's prompt at the real changelog - #115

Merged
josephschorr merged 1 commit into
mainfrom
fix/changelog-instruction
Sep 12, 2026
Merged

josephschorr merged 1 commit into
mainfrom
fix/changelog-instruction

Conversation

@josephschorr

Copy link
Copy Markdown
Member

All seven generation prompts ended with:

Update DESIGN.md changelog if needed.

The changelog is CHANGELOG.md, and DESIGN.md does not contain one. For as long as regeneration has existed it has been told to update a file that is not the changelog. #102 fixed the C# copy; this fixes the remaining six — and removes the copies.

One place, not seven

Seven byte-for-byte duplicates of a single instruction is precisely the duplication internal/clauderun was extracted to prevent — its own package comment says a third cross-cutting concern should trigger extraction. The text now lives there as ChangelogInstruction, and all seven clients reference it, C# included (its local const from #102 is removed).

A clause the old wording lacked

…never add a second ### Added/### Changed/### Fixed beside one that is already there: put your entry in the subsection that exists.

Not hypothetical tidiness. Writing changelog entries by hand for this repository I made exactly that mistake twice — in spicedb-ruby and spicedb-rust — and markdownlint's MD024 caught it both times, each costing a red build and a follow-up commit. Telling the generator up front is cheaper than letting it rediscover this the same way I did.

Verification

All seven Magefiles compile (mage -l), gofmt clean, go test -tags mage ./... passes. Two tests pin the instruction: that it names the right file and the right headings, and that it never again says "DESIGN.md changelog".

🤖 Generated with Claude Code

All seven generation prompts ended with "Update DESIGN.md changelog if
needed". The changelog is CHANGELOG.md, and DESIGN.md does not contain
one -- so for as long as regeneration has existed, it has been told to
update a file that is not the changelog. #102 fixed the C# copy; this
fixes the rest and stops there being copies at all.

Seven byte-for-byte duplicates of one instruction is the duplication
internal/clauderun was extracted to prevent, so the text lives there now
as ChangelogInstruction and all seven reference it, C# included.

It also gained a clause the old wording lacked: do not add a second
"### Added"/"### Changed"/"### Fixed" beside one already under
"## Unreleased", put the entry in the subsection that exists. That is not
hypothetical tidiness -- writing entries by hand for this repository, I
made exactly that mistake twice, in spicedb-ruby and spicedb-rust, and
markdownlint's MD024 caught it both times. Telling the generator up front
is cheaper than a red build and a follow-up commit.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@josephschorr
josephschorr merged commit 9069543 into main Sep 12, 2026
43 checks passed
@josephschorr
josephschorr deleted the fix/changelog-instruction branch September 12, 2026 01:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant