Generate the stable Combyne release changelog at releases/v{version}.md by reading commits, changesets, and merged PR context since the last stable tag.
Generate the user-facing changelog for the stable Combyne release.
Output:
releases/v{version}.mdImportant rule:
1.2.3-canary.0, the changelog file stays releases/v1.2.3.mdBefore generating anything, check whether the file already exists:
ls releases/v{version}.md 2>/dev/null
If it exists:
Find the last stable tag:
git tag --list 'v*' --sort=-version:refname | head -1
git log v{last}..HEAD --oneline --no-merges
The planned stable version comes from one of:
doc/RELEASING.mdDo not derive the changelog version from a canary tag or prerelease suffix.
Collect release data from:
.changeset/*.md filesgh when availableUseful commands:
git log v{last}..HEAD --oneline --no-merges
git log v{last}..HEAD --format="%H %s" --no-merges
ls .changeset/*.md | grep -v README.md
gh pr list --state merged --search "merged:>={last-tag-date}" --json number,title,body,labels
Look for:
major changesetsBREAKING: or BREAKING CHANGE: commit signalsKey commands:
git diff --name-only v{last}..HEAD -- packages/db/src/migrations/
git diff v{last}..HEAD -- packages/db/src/schema/
git diff v{last}..HEAD -- server/src/routes/ server/src/api/
git log v{last}..HEAD --format="%s" | rg -n 'BREAKING CHANGE|BREAKING:|^[a-z]+!:' || true
If the requested bump is lower than the minimum required bump, flag that before the release proceeds.
Use these stable changelog sections:
Breaking ChangesHighlightsImprovementsFixesUpgrade Guide when neededExclude purely internal refactors, CI changes, and docs-only work unless they materially affect users.
Guidelines:
Template:
# v{version}
> Released: {YYYY-MM-DD}
## Breaking Changes
## Highlights
## Improvements
## Fixes
## Upgrade Guide
Omit empty sections except Highlights, Improvements, and Fixes, which should usually exist.
Before handing it off:
-canary language in the title or filenameThis skill never publishes anything. It only prepares the stable changelog artifact.