release
Cut a Release
Trigger the Cut Release workflow to bump the version, tag, and publish a GitHub Release.
1. Pre-flight checks
-
Confirm you are on
releaseand up to date:git checkout release && git pull origin release -
Check that CI is green on release:
gh run list --branch release --limit 3 --json status,conclusion,nameIf the latest CI run is not successful, warn the user and ask whether to proceed.
-
Check for any existing draft releases that need to be published or deleted first:
gh release list --json isDraft,tagName --jq '.[] | select(.isDraft == true)'If a draft exists, tell the user and ask what to do (publish it, delete it, or abort).
2. Show what's shipping
- Read the current version from
plugins/tiger-marketing-skills/.claude-plugin/plugin.json. - Show PRs merged since the last tag:
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "") if [ -n "$LAST_TAG" ]; then SINCE=$(git log -1 --format=%aI "$LAST_TAG") gh pr list --state merged --search "merged:>=${SINCE}" --base release --json number,title,labels --limit 50 else echo "No previous tags — this will be the first release" fi - Group the PRs by label category (skill, enhancement/feature, fix/bug, infra, docs) and present them. This previews what the release notes will look like.
3. Choose bump type
Ask the user which version bump to use:
- patch — Bug fixes, minor improvements
- minor — New skills or features
- major — Breaking changes (rare)
If the user already specified the bump type (e.g., /release patch), use it without asking.
Also ask if they want to create it as a draft first (to edit release notes before publishing). Default is no.
4. Trigger the release
gh workflow run cut-release.yml --ref release -f bump=<bump_type> -f draft=<true|false>
5. Monitor the release
Wait a few seconds, then check the workflow run status:
gh run list --workflow=cut-release.yml --limit 1 --json status,conclusion,url,databaseId
If still in progress, poll until complete. Report the workflow URL so the user can follow along.
6. Confirm
Once complete:
- Pull latest:
git pull origin release - Read the updated version from
plugin.json. - Report the new version number.
- Link to the GitHub Release:
gh release view --json tagName,url - If the release was created as a draft, remind the user to edit and publish it when ready.