Phase 1: Identify Version
Goal: Determine release version from current branch or argument.
Actions:
- •If
$ARGUMENTSprovided, use it as version - •Otherwise, extract from current branch:
git branch --show-current(striprelease/prefix)
Phase 2: Pre-finish Checks
Goal: Run tests before finishing.
Actions:
- •Identify test commands (check package.json, Makefile, etc.)
- •Run tests if available; exit if tests fail
Phase 3: Update Changelog
Goal: Generate changelog from commits.
Actions:
- •Get previous tag:
git tag --sort=-v:refname | head -1 - •Collect commits per
${CLAUDE_PLUGIN_ROOT}/references/changelog-generation.md - •Update CHANGELOG.md per
${CLAUDE_PLUGIN_ROOT}/examples/changelog.md - •Commit:
chore: update changelog for v$VERSIONwithCo-Authored-Byfooter
Phase 4: Finish Release
Goal: Complete release using git-flow-next CLI.
Actions:
- •Run
git flow release finish $VERSION -m "Release v$VERSION" - •Push all:
git push origin main develop --tags
Phase 5: GitHub Release
Goal: Create GitHub release.
Actions:
- •Extract changelog for this version from CHANGELOG.md
- •Run
gh release create v$VERSION --title "v$VERSION" --notes "<changelog>"