name: finish-release allowed-tools: Bash(git:), Bash(gh:), Read, Write description: Complete and merge release branch model: haiku argument-hint: [version] user-invocable: true
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>"