KS
Killer-Skills

release-skills — how to use release-skills how to use release-skills, release-skills alternative, release-skills setup guide, what is release-skills, release-skills vs Claude Code, release-skills install, universal release workflow, multi-language changelog generation, auto-detect project configuration

v1.0.0
GitHub

About this Skill

Perfect for Development Agents needing automated release workflow management with multi-language changelog generation. release-skills is a Claude Code plugin that provides a universal release workflow, supporting Node.js, Python, Rust, and other project types with auto-detection and customizable formulas.

Features

Auto-detects project configurations for Node.js, Python, Rust, and Claude Plugin projects
Supports multi-language changelog generation
Uses package.json, pyproject.toml, Cargo.toml, and other version files for auto-detection
Compatible with Generic projects using VERSION or version.txt files
Initiates release workflow with the `/release-skills` command

# Core Topics

mj-meyer mj-meyer
[27]
[2]
Updated: 2/23/2026

Quality Score

Top 5%
59
Excellent
Based on code quality & docs
Installation
SYS Universal Install (Auto-Detect)
Cursor IDE Windsurf IDE VS Code IDE
> npx killer-skills add mj-meyer/choo-choo-ralph/release-skills

Agent Capability Analysis

The release-skills MCP Server by mj-meyer is an open-source Categories.community integration for Claude and other AI agents, enabling seamless task automation and capability expansion. Optimized for how to use release-skills, release-skills alternative, release-skills setup guide.

Ideal Agent Persona

Perfect for Development Agents needing automated release workflow management with multi-language changelog generation.

Core Value

Empowers agents to automate release workflows with structured formulas, supporting multi-language changelog generation for various project types, including Node.js, Python, Rust, and Claude Plugin, using files like package.json, pyproject.toml, and Cargo.toml.

Capabilities Granted for release-skills MCP Server

Automating release workflows for Node.js projects
Generating multi-language changelogs for Python applications
Streamlining Rust project releases with Cargo.toml

! Prerequisites & Limits

  • Requires project configuration files like package.json or pyproject.toml
  • Limited to supported project types
Project
SKILL.md
13.3 KB
.cursorrules
1.2 KB
package.json
240 B
Ready
UTF-8

# Tags

[No tags]
SKILL.md
Readonly

Release Skills

Universal release workflow supporting any project type with multi-language changelog.

Quick Start

Just run /release-skills - auto-detects your project configuration.

Supported Projects

Project TypeVersion FileAuto-Detected
Node.jspackage.json
Pythonpyproject.toml
RustCargo.toml
Claude Pluginmarketplace.json + plugin.json
GenericVERSION / version.txt

Options

FlagDescription
--dry-runPreview changes without executing
--majorForce major version bump
--minorForce minor version bump
--patchForce patch version bump

Workflow

Step 1: Detect Project Configuration

  1. Check for .releaserc.yml (optional config override)
  2. Auto-detect version file by scanning (priority order):
    • package.json (Node.js)
    • pyproject.toml (Python)
    • Cargo.toml (Rust)
    • marketplace.json or .claude-plugin/marketplace.json (Claude Plugin) - also update plugin.json or .claude-plugin/plugin.json if present
    • VERSION or version.txt (Generic)
  3. Scan for changelog files using glob patterns:
    • CHANGELOG*.md
    • HISTORY*.md
    • CHANGES*.md
  4. Identify language of each changelog by filename suffix
  5. Display detected configuration

Language Detection Rules:

Filename PatternLanguage
CHANGELOG.md (no suffix)en (default)
CHANGELOG.zh.md / CHANGELOG_CN.md / CHANGELOG.zh-CN.mdzh
CHANGELOG.ja.md / CHANGELOG_JP.mdja
CHANGELOG.ko.md / CHANGELOG_KR.mdko
CHANGELOG.de.md / CHANGELOG_DE.mdde
CHANGELOG.fr.md / CHANGELOG_FR.mdfr
CHANGELOG.es.md / CHANGELOG_ES.mdes
CHANGELOG.{lang}.mdCorresponding language code

Output Example:

Project detected:
  Version file: package.json (1.2.3)
  Changelogs:
    - CHANGELOG.md (en)
    - CHANGELOG.zh.md (zh)
    - CHANGELOG.ja.md (ja)

Step 2: Analyze Changes Since Last Tag

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

Categorize by conventional commit types:

TypeDescription
featNew features
fixBug fixes
docsDocumentation
refactorCode refactoring
perfPerformance improvements
testTest changes
styleFormatting, styling
choreMaintenance (skip in changelog)

Breaking Change Detection:

  • Commit message starts with BREAKING CHANGE
  • Commit body/footer contains BREAKING CHANGE:
  • Removed public APIs, renamed exports, changed interfaces

If breaking changes detected, warn user: "Breaking changes detected. Consider major version bump (--major flag)."

Step 3: Determine Version Bump

Rules (in priority order):

  1. User flag --major/--minor/--patch → Use specified
  2. BREAKING CHANGE detected → Major bump (1.x.x → 2.0.0)
  3. feat: commits present → Minor bump (1.2.x → 1.3.0)
  4. Otherwise → Patch bump (1.2.3 → 1.2.4)

Display version change: 1.2.3 → 1.3.0

Step 4: Generate Multi-language Changelogs

For each detected changelog file:

  1. Identify language from filename suffix
  2. Detect third-party contributors:
    • Check merge commits: git log ${LAST_TAG}..HEAD --merges --pretty=format:"%H %s"
    • For each merged PR, identify the PR author via gh pr view <number> --json author --jq '.author.login'
    • Compare against repo owner (gh repo view --json owner --jq '.owner.login')
    • If PR author ≠ repo owner → third-party contributor
  3. Generate content in that language:
    • Section titles in target language
    • Change descriptions written naturally in target language (not translated)
    • Date format: YYYY-MM-DD (universal)
    • Third-party contributions: Append contributor attribution (by @username) to the changelog entry
  4. Insert at file head (preserve existing content)

Section Title Translations (built-in):

Typeenzhjakodefres
featFeatures新功能新機能새로운 기능FunktionenFonctionnalitésCaracterísticas
fixFixes修复修正수정FehlerbehebungenCorrectionsCorrecciones
docsDocumentation文档ドキュメント문서DokumentationDocumentationDocumentación
refactorRefactor重构リファクタリング리팩토링RefactoringRefactorisationRefactorización
perfPerformance性能优化パフォーマンス성능LeistungPerformanceRendimiento
breakingBreaking Changes破坏性变更破壊的変更주요 변경사항Breaking ChangesChangements majeursCambios importantes

Changelog Format:

markdown
1## {VERSION} - {YYYY-MM-DD} 2 3### Features 4- Description of new feature 5- Description of third-party contribution (by @username) 6 7### Fixes 8- Description of fix 9 10### Documentation 11- Description of docs changes

Only include sections that have changes. Omit empty sections.

Third-Party Attribution Rules:

  • Only add (by @username) for contributors who are NOT the repo owner
  • Use GitHub username with @ prefix
  • Place at the end of the changelog entry line
  • Apply to all languages consistently (always use (by @username) format, not translated)

Multi-language Example:

English (CHANGELOG.md):

markdown
1## 1.3.0 - 2026-01-22 2 3### Features 4- Add user authentication module (by @contributor1) 5- Support OAuth2 login 6 7### Fixes 8- Fix memory leak in connection pool

Chinese (CHANGELOG.zh.md):

markdown
1## 1.3.0 - 2026-01-22 2 3### 新功能 4- 新增用户认证模块 (by @contributor1) 5- 支持 OAuth2 登录 6 7### 修复 8- 修复连接池内存泄漏问题

Japanese (CHANGELOG.ja.md):

markdown
1## 1.3.0 - 2026-01-22 2 3### 新機能 4- ユーザー認証モジュールを追加 (by @contributor1) 5- OAuth2 ログインをサポート 6 7### 修正 8- コネクションプールのメモリリークを修正

Step 5: Group Changes by Skill/Module

Analyze commits since last tag and group by affected skill/module:

  1. Identify changed files per commit
  2. Group by skill/module:
    • skills/<skill-name>/* → Group under that skill
    • Root files (CLAUDE.md, etc.) → Group as "project"
    • Multiple skills in one commit → Split into multiple groups
  3. For each group, identify related README updates needed

Example Grouping:

baoyu-cover-image:
  - feat: add new style options
  - fix: handle transparent backgrounds
  → README updates: options table

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

project:
  - docs: update CLAUDE.md architecture section

Step 6: Commit Each Skill/Module Separately

For each skill/module group (in order of changes):

  1. Check README updates needed:

    • Scan README*.md for mentions of this skill/module
    • Verify options/flags documented correctly
    • Update usage examples if syntax changed
    • Update feature descriptions if behavior changed
  2. Stage and commit:

    bash
    1git add skills/<skill-name>/* 2git add README.md README.zh.md # If updated for this skill 3git commit -m "<type>(<skill-name>): <meaningful description>"
  3. Commit message format:

    • Use conventional commit format: <type>(<scope>): <description>
    • <type>: feat, fix, refactor, docs, perf, etc.
    • <scope>: skill name or "project"
    • <description>: Clear, meaningful description of changes

Example Commits:

bash
1git commit -m "feat(baoyu-cover-image): add watercolor and minimalist styles" 2git commit -m "fix(baoyu-comic): improve panel layout for long dialogues" 3git commit -m "docs(project): update architecture documentation"

Common README Updates Needed:

Change TypeREADME Section to Check
New options/flagsOptions table, usage examples
Renamed optionsOptions table, usage examples
New featuresFeature description, examples
Breaking changesMigration notes, deprecation warnings
Restructured internalsArchitecture section (if exposed to users)

Step 7: Generate Changelog and Update Version

  1. Generate multi-language changelogs (as described in Step 4)
  2. Update version file:
    • Read version file (JSON/TOML/text)
    • Update version number
    • Write back (preserve formatting)

Version Paths by File Type:

FilePath
package.json$.version
pyproject.tomlproject.version
Cargo.tomlpackage.version
marketplace.json$.metadata.version and $.plugins[0].version
plugin.json$.version
VERSION / version.txtDirect content

Step 8: User Confirmation

Before creating the release commit, ask user to confirm:

Use AskUserQuestion with two questions:

  1. Version bump (single select):

    • Show recommended version based on Step 3 analysis
    • Options: recommended (with label), other semver options
    • Example: 1.2.3 → 1.3.0 (Recommended), 1.2.3 → 1.2.4, 1.2.3 → 2.0.0
  2. Push to remote (single select):

    • Options: "Yes, push after commit", "No, keep local only"

Example Output Before Confirmation:

Commits created:
  1. feat(baoyu-cover-image): add watercolor and minimalist styles
  2. fix(baoyu-comic): improve panel layout for long dialogues
  3. docs(project): update architecture documentation

Changelog preview (en):
  ## 1.3.0 - 2026-01-22
  ### Features
  - Add watercolor and minimalist styles to cover-image
  ### Fixes
  - Improve panel layout for long dialogues in comic

Ready to create release commit and tag.

Step 9: Create Release Commit and Tag

After user confirmation:

  1. Stage version and changelog files:

    bash
    1git add <version-file> 2git add CHANGELOG*.md
  2. Create release commit:

    bash
    1git commit -m "chore: release v{VERSION}"
  3. Create tag:

    bash
    1git tag v{VERSION}
  4. Push if user confirmed (Step 8):

    bash
    1git push origin main 2git push origin v{VERSION}

Note: Do NOT add Co-Authored-By line. This is a release commit, not a code contribution.

Post-Release Output:

Release v1.3.0 created.

Commits:
  1. feat(baoyu-cover-image): add watercolor and minimalist styles
  2. fix(baoyu-comic): improve panel layout for long dialogues
  3. docs(project): update architecture documentation
  4. chore: release v1.3.0

Tag: v1.3.0
Status: Pushed to origin  # or "Local only - run git push when ready"

Configuration (.releaserc.yml)

Optional config file in project root to override defaults:

yaml
1# .releaserc.yml - Optional configuration 2 3# Version file (auto-detected if not specified) 4version: 5 file: package.json 6 path: $.version # JSONPath for JSON, dotted path for TOML 7 8# Changelog files (auto-detected if not specified) 9changelog: 10 files: 11 - path: CHANGELOG.md 12 lang: en 13 - path: CHANGELOG.zh.md 14 lang: zh 15 - path: CHANGELOG.ja.md 16 lang: ja 17 18 # Section mapping (conventional commit type → changelog section) 19 # Use null to skip a type in changelog 20 sections: 21 feat: Features 22 fix: Fixes 23 docs: Documentation 24 refactor: Refactor 25 perf: Performance 26 test: Tests 27 chore: null 28 29# Commit message format 30commit: 31 message: "chore: release v{version}" 32 33# Tag format 34tag: 35 prefix: v # Results in v1.0.0 36 sign: false 37 38# Additional files to include in release commit 39include: 40 - README.md 41 - package.json

Dry-Run Mode

When --dry-run is specified:

=== DRY RUN MODE ===

Project detected:
  Version file: package.json (1.2.3)
  Changelogs: CHANGELOG.md (en), CHANGELOG.zh.md (zh)

Last tag: v1.2.3
Proposed version: v1.3.0

Changes grouped by skill/module:
  baoyu-cover-image:
    - feat: add watercolor style
    - feat: add minimalist style
    → Commit: feat(baoyu-cover-image): add watercolor and minimalist styles
    → README updates: options table

  baoyu-comic:
    - fix: panel layout for long dialogues
    → Commit: fix(baoyu-comic): improve panel layout for long dialogues
    → No README updates

Changelog preview (en):
  ## 1.3.0 - 2026-01-22
  ### Features
  - Add watercolor and minimalist styles to cover-image
  ### Fixes
  - Improve panel layout for long dialogues in comic

Changelog preview (zh):
  ## 1.3.0 - 2026-01-22
  ### 新功能
  - 为 cover-image 添加水彩和极简风格
  ### 修复
  - 改进 comic 长对话的面板布局

Commits to create:
  1. feat(baoyu-cover-image): add watercolor and minimalist styles
  2. fix(baoyu-comic): improve panel layout for long dialogues
  3. chore: release v1.3.0

No changes made. Run without --dry-run to execute.

Example Usage

/release-skills              # Auto-detect version bump
/release-skills --dry-run    # Preview only
/release-skills --minor      # Force minor bump
/release-skills --patch      # Force patch bump
/release-skills --major      # Force major bump (with confirmation)

When to Use

Trigger this skill when user requests:

  • "release", "发布", "create release", "new version", "新版本"
  • "bump version", "update version", "更新版本"
  • "prepare release"
  • "push to remote" (with uncommitted changes)

Important: If user says "just push" or "直接 push" with uncommitted changes, STILL follow all steps above first.

Related Skills

Looking for an alternative to release-skills or building a Categories.community AI Agent? Explore these related open-source MCP Servers.

View All

widget-generator

Logo of f
f

widget-generator is an open-source AI agent skill for creating widget plugins that are injected into prompt feeds on prompts.chat. It supports two rendering modes: standard prompt widgets using default PromptCard styling and custom render widgets built as full React components.

149.6k
0
Design

chat-sdk

Logo of lobehub
lobehub

chat-sdk is a unified TypeScript SDK for building chat bots across multiple platforms, providing a single interface for deploying bot logic.

73.0k
0
Communication

zustand

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
Communication

data-fetching

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
Communication