Problem
Consumers adopt forge partly by copying text out of forge's docs into their own repo — CI workflow YAML (docs/ci-recipe.md), .githooks/pre-commit customizations, .claude/settings.json hook wiring, etc. When forge changes that text, nothing tells a consumer their pasted copy is now stale.
Live example: PR #29 changed the CI recipe so pytest is invoked with explicit --durations flags (the previous bare-pytest recipe produced an empty slow-tests report in a consumer repo). A consumer who pasted the old recipe has no signal to update it. New CLIs (forge-slow-tests-report), a raised Python floor (>=3.11), new pre-commit steps, and new hooks have the same property.
Goal
A release-note history, keyed to forge version, that a consumer can scan after a forge-upgrade to know what — if anything — they must change in their repo. Emphasis on "consumer action required" items (workflow/recipe/config changes), not just internal refactors.
Why this is tractable in forge specifically
- Releases are already tagged
vX.Y.Z; plugin.json rolling-next + /promote mark minor/major boundaries.
- Squash-merge messages on
main are already conventional-commit formatted, <=50 words, 3–5 bullets (enforced by forge-pr-squash-comment / pr-manager). That's a clean, pre-curated changelog source — git log <prev-tag>..<tag> on main is already release-note-shaped.
Proposed direction (for the implementing PR, not this issue)
- A
CHANGELOG.md (Keep-a-Changelog style) or docs/release-notes.md, one section per released version, with a dedicated "Consumer action required" subsection when a release touches copy-pasted surface (CI recipe, hook config, requires-python, new mandatory step).
- Consider a
forge-gen-changelog CLI that derives entries from squash messages between tags (mirrors forge-gen-cli-reference / forge-gen-api-digest), so the changelog stays single-sourced and low-effort — generated, not hand-curated.
- Surface the relevant section after
forge-upgrade (it already prints post-upgrade reminders) and link it from the README adoption flow.
- Backfill notable consumer-affecting changes from existing tags (the
--durations recipe change, the 3.11 floor, new CLIs/hooks).
Relates to #33 (adoption-docs clarity) — both are about consumer-facing transparency.
Problem
Consumers adopt forge partly by copying text out of forge's docs into their own repo — CI workflow YAML (
docs/ci-recipe.md),.githooks/pre-commitcustomizations,.claude/settings.jsonhook wiring, etc. When forge changes that text, nothing tells a consumer their pasted copy is now stale.Live example: PR #29 changed the CI recipe so
pytestis invoked with explicit--durationsflags (the previous bare-pytestrecipe produced an empty slow-tests report in a consumer repo). A consumer who pasted the old recipe has no signal to update it. New CLIs (forge-slow-tests-report), a raised Python floor (>=3.11), new pre-commit steps, and new hooks have the same property.Goal
A release-note history, keyed to forge version, that a consumer can scan after a
forge-upgradeto know what — if anything — they must change in their repo. Emphasis on "consumer action required" items (workflow/recipe/config changes), not just internal refactors.Why this is tractable in forge specifically
vX.Y.Z;plugin.jsonrolling-next +/promotemark minor/major boundaries.mainare already conventional-commit formatted, <=50 words, 3–5 bullets (enforced byforge-pr-squash-comment/pr-manager). That's a clean, pre-curated changelog source —git log <prev-tag>..<tag>onmainis already release-note-shaped.Proposed direction (for the implementing PR, not this issue)
CHANGELOG.md(Keep-a-Changelog style) ordocs/release-notes.md, one section per released version, with a dedicated "Consumer action required" subsection when a release touches copy-pasted surface (CI recipe, hook config, requires-python, new mandatory step).forge-gen-changelogCLI that derives entries from squash messages between tags (mirrorsforge-gen-cli-reference/forge-gen-api-digest), so the changelog stays single-sourced and low-effort — generated, not hand-curated.forge-upgrade(it already prints post-upgrade reminders) and link it from the README adoption flow.--durationsrecipe change, the 3.11 floor, new CLIs/hooks).Relates to #33 (adoption-docs clarity) — both are about consumer-facing transparency.