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. This aggregates all pending fragments to determine the appropriate version bump and creates an annotated tag.
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: Check for Pending Fragments
List all files in changelog.d/ directory:
ls -la changelog.d/
If no fragments exist (only .gitkeep or empty), inform the user there's nothing to release.
Step 2: Get Current Version
Find the latest tag:
git tag --sort=-v:refname | head -1
If no tags exist, start from v0.0.0.
Step 3: Analyze Fragments for Version Bump
Examine all fragment files to determine the highest-impact change type:
Priority order: breaking > feature > bugfix > doc = misc
The highest-priority fragment type determines the version bump:
- Any
.breaking.mdexists → bump major (e.g., v1.2.3 → v2.0.0) - Any
.feature.mdexists → bump minor (e.g., v1.2.3 → v1.3.0) - Only
.bugfix.md,.doc.md, or.misc.md→ bump patch (e.g., v1.2.3 → v1.2.4)
Step 4: Propose Version
Show the user:
- Current version
- Fragments found (list them with their types)
- Proposed next version based on the analysis
- Ask for confirmation or allow override
Step 5: Check for [skip ci] in HEAD
IMPORTANT: Tags pointing to commits with [skip ci] in the message will NOT trigger the release workflow.
Check the HEAD commit message:
git log -1 --format="%s" HEAD
If the message contains [skip ci], [ci skip], or [no ci]:
- Inform the user that tagging this commit would prevent the release workflow from running
- Create a release preparation commit:
git commit --allow-empty -m "chore: prepare release [version]"
git push origin HEAD
This empty commit gives us a clean commit to tag that will trigger CI.
Step 6: Create and Push Tag
If confirmed (and after Step 5 if needed):
git tag -a [version] -m "[Brief description summarizing the fragments]"
git push origin [version]
Step 7: 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
- Brief tag message: Summarize the release in 1-2 sentences
- Never tag [skip ci] commits: Tags on commits with
[skip ci]won't trigger CI - always create a preparation commit first