一键导入
release
Analyze changes, determine semantic version bump, build executables, and cut a GitHub release with Claude-written minimalist notes.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Analyze changes, determine semantic version bump, build executables, and cut a GitHub release with Claude-written minimalist notes.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | release |
| description | Analyze changes, determine semantic version bump, build executables, and cut a GitHub release with Claude-written minimalist notes. |
| allowed-tools | Read, Bash, Grep, Glob |
Automatically analyze changes, determine semantic versioning, build binaries, and create GitHub releases with custom Claude-written release notes.
This skill automates the complete release process:
make build-allmake release RELEASE_NOTES=/tmp/release-notes.mdThe releaser agent writes minimalist, actionable release notes that:
Tone: Professional, direct, minimal. Think release notes from tools like ripgrep or fd.
Analyze commits since the last tag to determine the version bump:
MAJOR (x.0.0) - Breaking changes:
BREAKING CHANGE: in body or footer! after type (e.g., feat!:, fix!:)MINOR (0.x.0) - New features:
feat:PATCH (0.0.x) - Bug fixes and small improvements:
fix:refactor:, docs:, test:, chore:Default: If no conventional commits, use PATCH.
Get the current version and commits since last tag:
# Get latest tag (current version)
git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0"
# Get commits since last tag
git log $(git describe --tags --abbrev=0 2>/dev/null || git rev-list --max-parents=0 HEAD)..HEAD --oneline
# Get detailed commit messages for analysis
git log $(git describe --tags --abbrev=0 2>/dev/null || git rev-list --max-parents=0 HEAD)..HEAD --format="%h %s%n%b"
Based on commits:
BREAKING CHANGE or ! → MAJORfeat: → MINORCalculate new version:
# Example: current v1.2.3
# MAJOR: v2.0.0
# MINOR: v1.3.0
# PATCH: v1.2.4
Use the Makefile to build for all platforms:
make build-all
This builds:
bin/day-night-cycle-darwin-amd64 (macOS Intel)bin/day-night-cycle-darwin-arm64 (macOS Apple Silicon)git tag -a v1.3.0 -m "Release v1.3.0"
git push origin v1.3.0
Write minimalist notes following this format:
[One sentence summary of the release]
## Changes
- [User-facing change 1]
- [User-facing change 2]
- [User-facing change 3]
## Fixes
- [Bug fix 1]
- [Bug fix 2]
Guidelines:
Examples of good vs bad notes:
✅ Good:
❌ Bad:
CRITICAL: You MUST always write custom release notes. Never use auto-generated notes.
Write the release notes to a temporary file, then use the Makefile to create the release:
# Write notes to a file
cat > /tmp/release-notes.md << 'EOF'
[One sentence summary of the release]
## Changes
- [User-facing change 1]
- [User-facing change 2]
## Fixes
- [Bug fix 1]
EOF
# Create release with custom notes
make release RELEASE_NOTES=/tmp/release-notes.md
This will:
make build-allIMPORTANT: Always provide the RELEASE_NOTES parameter. The Makefile has a fallback to auto-generated notes, but you must never use it. Claude-written release notes are required for all releases.
Before completing the release:
make build-allbin/make release RELEASE_NOTES=/tmp/release-notes.md (REQUIRED)User: "Cut a new release"
Expected workflow:
git describe --tags --abbrev=0 to get current version (e.g., v1.2.0)git log v1.2.0..HEAD --format="%h %s%n%b" to get commitsfeat: add Cursor IDE pluginfix: handle timezone edge caserefactor: simplify main.gomake build-all to build binariesgit tag -a v1.3.0 -m "Release v1.3.0"git push origin v1.3.0cat > /tmp/release-notes.md << 'EOF'
Add Cursor IDE support and fix timezone handling.
## Changes
- Add support for Cursor IDE theme switching
## Fixes
- Fix timezone handling for negative offsets
EOF
make release RELEASE_NOTES=/tmp/release-notes.md to create GitHub releaseIf git describe --tags fails, this is the first release:
v0.1.0 or v1.0.0 depending on maturityIf only fix:, docs:, chore:, refactor: commits:
If BREAKING CHANGE: found:
/tmp/release-notes.md before running make releaseRELEASE_NOTES=/tmp/release-notes.md to the make release commandmake release target requires GitHub CLI (gh)