tag-release — Claude Code skill: what it does, how to install
Automates cutting Git release tags based on existing project conventions. It calculates the next version, checks CI status, and tracks remote release workflows.
npx skills add jssblck/agents --skill tag-release -a claude-codeWhat tag-release does
The skill inspects remote repository history to determine the right version bump, whether patch, minor, or major. It operates directly against the fetched remote HEAD ref. Because of this, dirty working directories or diverged local branches cannot pollute the release.
It detects existing repository conventions, including package prefixes, leading v markers, and whether tags are lightweight, annotated, or GPG-signed. If global git configurations enforce signing but the project uses unsigned tags, it applies --no-sign to match. The agent queries commit checks via gh api and waits for clean CI. Once pushed, it can generate a GitHub release and track completion through gh run watch.
You need both git and the GitHub CLI (gh) configured with write access to the target repository. If CI status checks fail on the release commit, the workflow stops rather than releasing broken code.
What it helps with
- determine the next semantic version without manual tag inspection
- create a matching git tag directly from the remote default branch HEAD
- verify that CI checks are passing before pushing a new release
- publish the GitHub release and monitor the pipeline until green
Example prompts for the agent
- Cut a patch release for the default branch
- Tag the next minor version and verify that CI passes
- Prepare a major release following our repository conventions
How to install tag-release
1Skills CLI (Vercel)
npx skills add jssblck/agents --skill tag-release -a claude-code2Manually: put the files in place
~/.claude/skills/tag-release/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/tag-release/
1Skills CLI (Vercel)
npx skills add jssblck/agents --skill tag-release -a codex2Manually: put the files in place
.agents/skills/tag-release/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add jssblck/agents --skill tag-release -a cursor2Manually: put the files in place
.cursor/skills/tag-release/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install jssblck/agents tag-release2Manually: put the files in place
.github/skills/tag-release/SKILL.md1Skills CLI (Vercel)
npx skills add jssblck/agents --skill tag-release -a gemini-cli2Platform CLI
gemini skills install https://github.com/jssblck/agents --path skills/tag-releaseManually: put the files in place
.devin/skills/tag-release/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add jssblck/agents --skill tag-release -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about tag-release
How do I install tag-release in Claude Code?
Run npx skills add jssblck/agents --skill tag-release -a claude-code in your terminal.
What does the tag-release skill do?
It inspects repository version history, computes the next SemVer bump, tags the remote commit, and monitors the release workflow until finished.
How does it handle local uncommitted changes?
It targets the remote tracking branch commit directly without touching your working tree, so uncommitted local files will not alter the release.