Skip to content
Back to skills

Release Skills

ASecurity

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"

  • 11 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added February 10, 2026
devopspythonrustgobashnodegitapiperformancedocumentation

Works with

  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned February 12, 2026

npx -y skills add wpank/ai --skill release-skills --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Release Skills?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Release Skills
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/wpank-release-skills/badge)](https://www.skillsdirectory.com/skills/wpank-release-skills)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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 |


## Installation

### OpenClaw / Moltbot / Clawbot

```bash
npx clawhub@latest install release-skills
```


---

## 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

```bash
LAST_TAG=$(git tag --sort=-v:refname | head -1)
git log ${LAST_TAG}..HEAD --oneline
```

Categorize by conventional commit:
- `feat:` → Features
- `fix:` → Fixes  
- `docs:` → Documentation
- `refactor:` → Refactor
- `perf:` → Performance
- `chore:` → Skip in changelog

**Breaking Change Detection**:
- `BREAKING CHANGE` in message or body
- Removed public APIs, renamed exports

Warn 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**:
```markdown
## 1.3.0 - 2026-01-22

### Features
- 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 table

baoyu-comic:
  - refactor: improve panel layout
  → No README updates
```

### Step 6: User Confirmation

Present:
- Changelog preview
- Proposed version bump
- Changes summary

Ask:
1. Confirm version bump (show recommended)
2. Push to remote? (Yes/No)

### Step 7: Create Release

```bash
# Stage files
git add <version-file> CHANGELOG*.md

# Commit
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:

```yaml
version:
  file: package.json
  path: $.version

changelog:
  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`:
- Show all proposed changes
- Preview changelog entries
- List commits to create
- No actual changes made

---

## 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:
- Clear changelog entries describing user-facing changes
- Proper contributor attribution
- Consistent multi-language content
- No orphaned tags (always with commit)
- Version bump matches change significance

---

## NEVER

- Force push to main/master
- Skip user confirmation before push
- Create tags without commits
- Include internal/chore changes in user-facing changelog
- Push without explicit user consent
- Add Co-Authored-By to release commits (they're automated)

Files in this skill

  • README.md1.8 KB
  • SKILL.md5.6 KB
  • scripts/prepare_release.py17.4 KB
  • scripts/release_notes.py12.9 KB
  • scripts/roadmap_changelog.py14.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.