release-dry-run — Claude Code skill for release checks
This skill reviews changes since the latest release tag and recommends a MAJOR, MINOR, or PATCH bump. Use it to assess a release before changing the version.
npx skills add dyoshikawa/rulesync --skill release-dry-run -a claude-codeWhat release-dry-run does
The skill fetches Git tags, identifies the latest one, then compares it with the current HEAD. Its report lists commits and file-change statistics, grouping the work into breaking changes, new features, bug fixes, and other changes.
It then recommends a semantic version bump and explains the reasoning. Removed features or changed behavior in an existing feature point toward a MAJOR bump. The run is read-only: it changes no files and creates no commits.
Git tags and repository history are needed; the workflow runs git fetch --tags before comparing revisions. The skill supports Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, and OpenCode.
What it helps with
- list commits since the latest release tag
- group repository changes by category
- assess the required version bump
- draft a reasoned release recommendation
Example prompts for the agent
- Compare
HEADwith the latest release tag and recommend a version bump. - Summarize the commits and changed files since the last release, then classify the changes.
- Check for breaking changes and explain the recommended version bump.
How to install release-dry-run
1Skills CLI (Vercel)
npx skills add dyoshikawa/rulesync --skill release-dry-run -a claude-code2Manually: put the files in place
~/.claude/skills/release-dry-run/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/release-dry-run/
1Skills CLI (Vercel)
npx skills add dyoshikawa/rulesync --skill release-dry-run -a codex2Manually: put the files in place
.agents/skills/release-dry-run/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add dyoshikawa/rulesync --skill release-dry-run -a cursor2Manually: put the files in place
.cursor/skills/release-dry-run/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install dyoshikawa/rulesync release-dry-run2Manually: put the files in place
.github/skills/release-dry-run/SKILL.md1Skills CLI (Vercel)
npx skills add dyoshikawa/rulesync --skill release-dry-run -a gemini-cli2Platform CLI
gemini skills install https://github.com/dyoshikawa/rulesync --path .rulesync/skills/release-dry-runManually: put the files in place
.devin/skills/release-dry-run/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add dyoshikawa/rulesync --skill release-dry-run -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 release-dry-run
How do I install release-dry-run in Claude Code?
Run npx skills add dyoshikawa/rulesync --skill release-dry-run -a claude-code. The skill file is located at ~/.claude/skills/release-dry-run/SKILL.md.
What does release-dry-run do?
It compares the latest release tag with the current HEAD, summarizes commits and file changes, then recommends a MAJOR, MINOR, or PATCH bump with a rationale.
Does release-dry-run modify files or make commits?
No. It reports a recommendation without changing files or creating commits.
Source text
SKILL.md · MIT
---
name: release-dry-run
description: "Dry run for release: summarize changes since last release and suggest version bump."
targets:
- "*"
---
This is a dry run command for release. It will summarize the changes since the last release and suggest the appropriate version bump based on semantic versioning.
## Steps
1. Get the latest release tag.
- Run `git fetch --tags` to ensure all tags are available.
- Run `git describe --tags --abbrev=0` to get the latest tag.
- Assign the result to $latest_tag.
2. Compare code changes between the latest tag and the current HEAD.
- Run `git log ${latest_tag}..HEAD --oneline` to get the commit list.
- Run `git diff ${latest_tag}..HEAD --stat` to get the file change statistics.
3. Analyze the changes and create a summary in the following format:
```
## Changes Summary
### Commits since ${latest_tag}
- List of commits with their messages
### Changed Files
- Summary of file changes (added, modified, deleted)
### Change Categories
- **Breaking Changes**: List any breaking changes (API changes, removed features, etc.)
- **New Features**: List new features added
- **Bug Fixes**: List bug fixes
- **Other Changes**: List other changes (refactoring, documentation, tests, etc.)
```
4. Based on the analysis, suggest the appropriate version bump following semantic versioning rules:
- **MAJOR** (X.0.0): Breaking changes that are not backward compatible
- Removed or renamed public APIs
- Changed behavior of existing features
- Dropped support for older Node.js versions
- **MINOR** (x.Y.0): New features that are backward compatible
- New CLI commands or options
- New configuration options
- New tool support
- **PATCH** (x.y.Z): Bug fixes and minor improvements
- Bug fixes
- Documentation updates
- Internal refactoring without API changes
- Dependency updates (unless they cause breaking changes)
**Important**: Whenever the changes include any feature removal or a change in the behavior of an existing feature, do not hesitate to choose a MAJOR version bump. Prioritize protecting users from unexpected breakage over keeping the version number low.
5. Output the final recommendation in the following format:
```
## Version Bump Recommendation
Current version: ${latest_tag}
Recommended bump: MAJOR / MINOR / PATCH
Suggested new version: vX.Y.Z
### Reasoning
- Explain why this version bump is recommended based on the changes.
```
**Note**: This is a dry run only. No files will be modified and no commits will be made.
© dyoshikawa · MIT · dyoshikawa/rulesync