| name | dot-ai-tag-release |
| description | Create a release tag based on accumulated changelog fragments. Run when ready to cut a release. |
| user-invocable | true |
Create Release Tag
Create a semantic version tag based on accumulated changelog fragments.
When to Use
Run this skill when:
- Multiple PRs have been merged with changelog fragments
- You're ready to cut a release
- After the /prd-done workflow completes (not during it)
Workflow
Step 1: Analyze
Run the analysis script bundled with this skill:
bash .claude/skills/dot-ai-tag-release/analyze.sh
If the script fails (non-zero exit) or the output contains ERROR=true, show the MESSAGE to the user and stop.
If the output contains NO_FRAGMENTS=true, inform the user there's nothing to release and stop.
Step 2: Propose Version
Present the script output to the user:
- Current version (
CURRENT_VERSION)
- Fragments found (the
FRAGMENTS list with their types)
- Proposed next version (
PROPOSED_VERSION) based on bump type (BUMP_TYPE)
- Ask for confirmation or allow override
Step 3: Handle [skip ci]
If SKIP_CI=true, inform the user that tagging HEAD would prevent the release workflow from running. Create a preparation commit:
git commit --allow-empty -m "chore: prepare release [version]"
git push origin HEAD
Step 4: Create and Push Tag
After confirmation:
git tag -a [version] -m "[Brief description summarizing the fragments]"
git push origin [version]
Step 5: Confirm Success
Show the user:
- The tag created
- The tag URL on GitHub (if applicable)
- Note that CI/CD will generate release notes from the fragments
Guidelines
- Don't run during PR workflow: This is a separate release activity
- Review fragments first: Make sure all fragments are accurate before tagging
- Use semantic versioning: Follow semver strictly based on fragment types. While the project is pre-1.0 (
v0.x), the minor digit is the compatibility boundary, so breaking fragments bump the minor and feature/bugfix fragments are patch releases; from 1.0 onward, standard semver applies (breaking→major, feature→minor, bugfix→patch). The .claude/skills/dot-ai-tag-release/analyze.sh output already reflects this.
- Brief tag message: Summarize the release in 1-2 sentences
- Never tag [skip ci] commits: Always create a preparation commit first