Release Skills
by @wpank
WHAT: Universal release workflow with auto-detection, multi-language changelogs, semantic versioning, and git tagging. WHEN: User wants to create a release, bump version, update changelog, push a new version, or prepare for deployment. KEYWORDS: "release", "ๅๅธ", "new version", "ๆฐ็ๆฌ", "bump version", "update version", "ๆดๆฐ็ๆฌ", "push", "ๆจ้", "create release", "prepare release", "tag version"
clawhub install release-skills๐ About This Skill
name: release-skills model: fast description: | WHAT: Universal release workflow with auto-detection, multi-language changelogs, semantic versioning, and git tagging. WHEN: User wants to create a release, bump version, update changelog, push a new version, or prepare for deployment. KEYWORDS: "release", "ๅๅธ", "new version", "ๆฐ็ๆฌ", "bump version", "update version", "ๆดๆฐ็ๆฌ", "push", "ๆจ้", "create release", "prepare release", "tag version"
Release Skills
Universal release workflow supporting any project type with multi-language changelog generation.
Supported Projects
| Type | Version File | Auto-Detected | |------|--------------|---------------| | Node.js | package.json | โ | | Python | pyproject.toml | โ | | Rust | Cargo.toml | โ | | Claude Plugin | marketplace.json | โ | | Generic | VERSION / version.txt | โ |
Options
| Flag | Description |
|------|-------------|
| --dry-run | Preview changes without executing |
| --major | Force major version bump |
| --minor | Force minor version bump |
| --patch | Force patch version bump |
Workflow
Step 1: Detect Configuration
1. Check for .releaserc.yml (optional config)
2. Auto-detect version file (priority: package.json โ pyproject.toml โ Cargo.toml โ marketplace.json โ VERSION)
3. Scan for changelog files: CHANGELOG*.md, HISTORY*.md, CHANGES*.md
4. Identify language of each changelog by suffix
Language Detection:
| Pattern | Language |
|---------|----------|
| CHANGELOG.md (no suffix) | en |
| CHANGELOG.zh.md / CHANGELOG_CN.md | zh |
| CHANGELOG.ja.md / CHANGELOG_JP.md | ja |
| CHANGELOG.{lang}.md | Corresponding language |
Output:
Project detected:
Version file: package.json (1.2.3)
Changelogs: CHANGELOG.md (en), CHANGELOG.zh.md (zh)
Step 2: Analyze Changes
LAST_TAG=$(git tag --sort=-v:refname | head -1)
git log ${LAST_TAG}..HEAD --oneline
Categorize by conventional commit:
feat: โ Featuresfix: โ Fixes docs: โ Documentationrefactor: โ Refactorperf: โ Performancechore: โ Skip in changelogBreaking Change Detection:
BREAKING CHANGE in message or bodyWarn if breaking changes: "Consider major version bump (--major)."
Step 3: Determine Version
Priority:
1. User flag (--major/--minor/--patch)
2. BREAKING CHANGE โ Major (1.x.x โ 2.0.0)
3. feat: present โ Minor (1.2.x โ 1.3.0)
4. Otherwise โ Patch (1.2.3 โ 1.2.4)
Display: 1.2.3 โ 1.3.0
Step 4: Generate Changelogs
For each changelog file:
1. Identify language from filename
2. Detect third-party contributors via merged PRs
3. Generate content in that language:
- Section titles in target language
- Date format: YYYY-MM-DD
- Attribution: (by @username) for non-owner contributors
4. Insert at file head, preserve existing content
Section Titles: | Type | en | zh | ja | |------|----|----|-----| | feat | Features | ๆฐๅ่ฝ | ๆฐๆฉ่ฝ | | fix | Fixes | ไฟฎๅค | ไฟฎๆญฃ | | docs | Documentation | ๆๆกฃ | ใใญใฅใกใณใ | | breaking | Breaking Changes | ็ ดๅๆงๅๆด | ็ ดๅฃ็ๅคๆด |
Format:
## 1.3.0 - 2026-01-22Features
Add user authentication (by @contributor1)
Support OAuth2 login Fixes
Fix memory leak in connection pool
Step 5: Group by Module (Optional)
For monorepos, group commits by affected skill/module:
baoyu-cover-image:
- feat: add new style options
โ README updates: options tablebaoyu-comic:
- refactor: improve panel layout
โ No README updates
Step 6: User Confirmation
Present:
Ask: 1. Confirm version bump (show recommended) 2. Push to remote? (Yes/No)
Step 7: Create Release
# Stage files
git add CHANGELOG*.mdCommit
git commit -m "chore: release v{VERSION}"Tag
git tag v{VERSION}Push (if confirmed)
git push origin main
git push origin v{VERSION}
Output:
Release v1.3.0 created.
Tag: v1.3.0
Status: Pushed to origin
Scripts
| Script | Purpose |
|--------|---------|
| scripts/prepare_release.py | Prepare release with version bump |
| scripts/release_notes.py | Generate release notes from commits |
| scripts/roadmap_changelog.py | Generate changelog from roadmap |
Configuration (.releaserc.yml)
Optional overrides:
version:
file: package.json
path: $.versionchangelog:
files:
- path: CHANGELOG.md
lang: en
- path: CHANGELOG.zh.md
lang: zh
commit:
message: "chore: release v{version}"
tag:
prefix: v
Dry-Run Mode
With --dry-run:
Version Paths
| File | Path |
|------|------|
| package.json | $.version |
| pyproject.toml | project.version |
| Cargo.toml | package.version |
| marketplace.json | $.metadata.version |
| VERSION | Direct content |
Quality Criteria
Good releases:
NEVER
โ๏ธ Configuration
| Flag | Description |
|------|-------------|
| --dry-run | Preview changes without executing |
| --major | Force major version bump |
| --minor | Force minor version bump |
| --patch | Force patch version bump |