Maintain Changelog Release
Overview
Keep CHANGELOG.md user-facing, concise, and release-ready.
Drive release notes from the versioned changelog section instead of raw commit history.
Core Rules
- •Treat
CHANGELOG.mdas the single source of truth for release notes. - •Write only user-visible impact (behavior, UX, compatibility, security, operations).
- •Omit internal-only noise (
chore(spec), CI-only churn, refactor-only internals without user impact). - •Use only these category headers:
Added,Changed,Deprecated,Removed,Fixed,Security. - •Keep entries short, concrete, and outcome-focused.
See detailed wording patterns in references/changelog-writing.md.
Workflow 1: Update Unreleased
- •Review merged or pending changes with user impact.
- •Add bullets under
## [Unreleased]in the correct category. - •Remove placeholder lines (for example
_No user-facing changes yet._) from categories that now have real entries. - •Keep unaffected categories unchanged.
- •Run:
bash
bash scripts/changelog.sh check
Workflow 2: Cut A Release Section
- •Choose release tag and date (
vX.Y.Z,YYYY-MM-DD). - •Move finalized entries from
## [Unreleased]into:md## [vX.Y.Z] - YYYY-MM-DD
- •Recreate/retain
Unreleasedcategories for future work. - •Validate structure:
bash
bash scripts/changelog.sh check
- •Verify release-note extraction matches the target tag:
bash
bash scripts/changelog.sh extract --tag vX.Y.Z --output release-notes.md
See the full checklist in references/release-playbook.md.
Workflow 3: Publish Release (If User Asks To Execute)
- •Ensure release section exists in
CHANGELOG.mdfor the exact tag. - •Run changelog checks (and optionally full CI when requested):
bash
bash scripts/release-preflight.sh --tag vX.Y.Z --output release-notes.md
- •Commit changelog changes.
- •Create and push tag:
bash
git tag vX.Y.Z git push origin main --tags
- •Confirm GitHub Actions release workflow consumes the extracted section.
Output Expectations
- •When asked to draft changelog text, produce ready-to-paste markdown grouped by allowed categories.
- •When asked to execute, run validation commands and report exact pass/fail outcomes.
- •When tag/section mismatches exist, stop and fix
CHANGELOG.mdbefore release steps.
References
- •
references/changelog-writing.md: entry-writing rubric and examples. - •
references/release-playbook.md: release cut and tag checklist.