release-skills by jimliu/baoyu-skills
npx skills add https://github.com/jimliu/baoyu-skills --skill release-skills支持任意项目类型、具备多语言更新日志的通用发布工作流。
只需运行 /release-skills - 自动检测您的项目配置。
| 项目类型 | 版本文件 | 自动检测 |
|---|---|---|
| Node.js | package.json | ✓ |
| Python | pyproject.toml | ✓ |
| Rust | Cargo.toml | ✓ |
| Claude 插件 | marketplace.json | ✓ |
| 通用项目 | VERSION / version.txt | ✓ |
| 标志 | 描述 |
|---|
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
--dry-run | 预览更改而不执行 |
--major | 强制主版本号升级 |
--minor | 强制次版本号升级 |
--patch | 强制修订版本号升级 |
.releaserc.yml(可选的配置覆盖)
package.json (Node.js)pyproject.toml (Python)Cargo.toml (Rust)marketplace.json 或 .claude-plugin/marketplace.json (Claude 插件)VERSION 或 version.txt (通用项目)CHANGELOG*.mdHISTORY*.mdCHANGES*.md项目钩子契约:
如果 .releaserc.yml 定义了 release.hooks,则保持发布工作流通用,并将项目特定的打包/发布任务委托给这些钩子。
支持的钩子:
| 钩子 | 目的 | 预期职责 |
|---|---|---|
prepare_artifact | 使一个目标可发布 | 验证目标是自包含的,同步/嵌入本地依赖项,可选地暂存额外文件 |
publish_artifact | 发布一个可发布的目标 | 上传准备好的目标(如果项目使用暂存目录,则上传暂存目录),附加版本/更新日志/标签 |
支持的占位符:
| 占位符 | 含义 |
|---|---|
{project_root} | 仓库根目录的绝对路径 |
{target} | 正在发布的模块/技能的绝对路径 |
{artifact_dir} | 当项目使用暂存目录时,此目标的临时暂存目录的绝对路径 |
{version} | 发布工作流选择的版本 |
{dry_run} | true 或 false |
{release_notes_file} | 包含发布说明/更新日志文本的 UTF-8 文件的绝对路径 |
执行规则:
prepare_artifact 存在,则在每个目标上运行一次,然后再运行需要最终可发布目标状态的发布相关检查。publish_artifact;不要将多行更新日志文本内联到 shell 命令中。语言检测规则:
更新日志文件遵循模式 CHANGELOG_{LANG}.md 或 CHANGELOG.{lang}.md,其中 {lang} / {LANG} 是语言或地区代码。
| 模式 | 示例 | 语言 |
|---|---|---|
| 无后缀 | CHANGELOG.md | en (默认) |
_{LANG} (大写) | CHANGELOG_CN.md, CHANGELOG_JP.md | 对应语言 |
.{lang} (小写) | CHANGELOG.zh.md, CHANGELOG.ja.md | 对应语言 |
.{lang-region} | CHANGELOG.zh-CN.md | 对应地区变体 |
常见语言代码:zh (中文), ja (日语), ko (韩语), de (德语), fr (法语), es (西班牙语)。
输出示例:
Project detected:
Version file: package.json (1.2.3)
Changelogs:
- CHANGELOG.md (en)
- CHANGELOG.zh.md (zh)
- CHANGELOG.ja.md (ja)
LAST_TAG=$(git tag --sort=-v:refname | head -1)
git log ${LAST_TAG}..HEAD --oneline
git diff ${LAST_TAG}..HEAD --stat
按约定式提交类型分类:
| 类型 | 描述 |
|---|---|
| feat | 新功能 |
| fix | 错误修复 |
| docs | 文档 |
| refactor | 代码重构 |
| perf | 性能改进 |
| test | 测试变更 |
| style | 格式化、样式 |
| chore | 维护(在更新日志中跳过) |
破坏性变更检测:
BREAKING CHANGE 开头BREAKING CHANGE:如果检测到破坏性变更,警告用户:"检测到破坏性变更。请考虑主版本号升级 (--major 标志)。"
规则(按优先级顺序):
--major/--minor/--patch → 使用指定的feat: 提交 → 次版本升级 (1.2.x → 1.3.0)显示版本变更:1.2.3 → 1.3.0
对于每个检测到的更新日志文件:
git log ${LAST_TAG}..HEAD --merges --pretty=format:"%H %s"gh pr view <number> --json author --jq '.author.login' 识别 PR 作者gh repo view --json owner --jq '.owner.login')(by @username)章节标题翻译(内置):
| 类型 | en | zh | ja | ko | de | fr | es |
|---|---|---|---|---|---|---|---|
| feat | Features | 新功能 | 新機能 | 새로운 기능 | Funktionen | Fonctionnalités | Características |
| fix | Fixes | 修复 | 修正 | 수정 | Fehlerbehebungen | Corrections | Correcciones |
| docs | Documentation | 文档 | ドキュメント | 문서 | Dokumentation | Documentation | Documentación |
| refactor | Refactor | 重构 | リファクタリング | 리팩토링 | Refactoring | Refactorisation | Refactorización |
| perf | Performance | 性能优化 | パフォーマンス | 성능 | Leistung | Performance | Rendimiento |
| breaking | Breaking Changes | 破坏性变更 | 破壊的変更 | 주요 변경사항 | Breaking Changes | Changements majeurs | Cambios importantes |
更新日志格式:
## {VERSION} - {YYYY-MM-DD}
### Features
- Description of new feature
- Description of third-party contribution (by @username)
### Fixes
- Description of fix
### Documentation
- Description of docs changes
仅包含有变更的章节。省略空章节。
第三方归属规则:
(by @username)@ 前缀的 GitHub 用户名(by @username) 格式,不翻译)多语言示例:
英文 (CHANGELOG.md):
## 1.3.0 - 2026-01-22
### Features
- Add user authentication module (by @contributor1)
- Support OAuth2 login
### Fixes
- Fix memory leak in connection pool
中文 (CHANGELOG.zh.md):
## 1.3.0 - 2026-01-22
### 新功能
- 新增用户认证模块 (by @contributor1)
- 支持 OAuth2 登录
### 修复
- 修复连接池内存泄漏问题
日文 (CHANGELOG.ja.md):
## 1.3.0 - 2026-01-22
### 新機能
- ユーザー認証モジュールを追加 (by @contributor1)
- OAuth2 ログインをサポート
### 修正
- コネクションプールのメモリリークを修正
分析自上次标签以来的提交,并按受影响的技能/模块分组:
skills/<skill-name>/* → 分组到该技能下分组示例:
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
对于每个技能/模块组(按变更顺序):
检查所需的 README 更新:
README*.md 中对此技能/模块的提及暂存并提交:
git add skills/<skill-name>/* git add README.md README.zh.md # If updated for this skill git commit -m "<type>(<skill-name>): <meaningful description>"
提交消息格式:
<type>(<scope>): <description><type>: feat, fix, refactor, docs, perf 等<scope>: 技能名称或 "project"<description>: 清晰、有意义的变更描述提交示例:
git commit -m "feat(baoyu-cover-image): add watercolor and minimalist styles"
git commit -m "fix(baoyu-comic): improve panel layout for long dialogues"
git commit -m "docs(project): update architecture documentation"
常见的 README 更新需求:
| 变更类型 | 需要检查的 README 部分 |
|---|---|
| 新选项/标志 | 选项表、使用示例 |
| 重命名的选项 | 选项表、使用示例 |
| 新功能 | 功能描述、示例 |
| 破坏性变更 | 迁移说明、弃用警告 |
| 重构的内部结构 | 架构部分(如果暴露给用户) |
按文件类型的版本路径:
| 文件 | 路径 |
|---|---|
| package.json | $.version |
| pyproject.toml | project.version |
| Cargo.toml | package.version |
| marketplace.json | $.metadata.version |
| VERSION / version.txt | 直接内容 |
在创建发布提交之前,请用户确认:
使用 AskUserQuestion 提出两个问题:
版本升级(单选):
1.2.3 → 1.3.0 (Recommended), 1.2.3 → 1.2.4, 1.2.3 → 2.0.0推送到远程(单选):
确认前的输出示例:
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.
用户确认后:
暂存版本和更新日志文件:
git add <version-file> git add CHANGELOG*.md
创建发布提交:
git commit -m "chore: release v{VERSION}"
创建标签:
git tag v{VERSION}
如果用户确认了(步骤 8):
git push origin main git push origin v{VERSION}
注意:请勿添加 Co-Authored-By 行。这是一个发布提交,不是代码贡献。
发布后输出:
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"
项目根目录中的可选配置文件,用于覆盖默认值:
# .releaserc.yml - Optional configuration
# Version file (auto-detected if not specified)
version:
file: package.json
path: $.version # JSONPath for JSON, dotted path for TOML
# Changelog files (auto-detected if not specified)
changelog:
files:
- path: CHANGELOG.md
lang: en
- path: CHANGELOG.zh.md
lang: zh
- path: CHANGELOG.ja.md
lang: ja
# Section mapping (conventional commit type → changelog section)
# Use null to skip a type in changelog
sections:
feat: Features
fix: Fixes
docs: Documentation
refactor: Refactor
perf: Performance
test: Tests
chore: null
# Commit message format
commit:
message: "chore: release v{version}"
# Tag format
tag:
prefix: v # Results in v1.0.0
sign: false
# Additional files to include in release commit
include:
- README.md
- package.json
当指定 --dry-run 时:
=== 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.
/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)
当用户请求时触发此技能:
重要:如果用户说 "just push" 或 "直接 push" 且有未提交的更改,仍然首先遵循上述所有步骤。
每周安装数
11.3K
仓库
GitHub 星标数
10.8K
首次出现
Jan 19, 2026
安全审计
安装于
opencode10.0K
gemini-cli9.7K
codex9.5K
github-copilot8.8K
amp8.5K
kimi-cli8.5K
Universal release workflow supporting any project type with multi-language changelog.
Just run /release-skills - auto-detects your project configuration.
| Project Type | Version File | Auto-Detected |
|---|---|---|
| Node.js | package.json | ✓ |
| Python | pyproject.toml | ✓ |
| Rust | Cargo.toml | ✓ |
| Claude Plugin | marketplace.json | ✓ |
| Generic | VERSION / version.txt | ✓ |
| Flag | Description |
|---|---|
--dry-run | Preview changes without executing |
--major | Force major version bump |
--minor | Force minor version bump |
--patch | Force patch version bump |
.releaserc.yml (optional config override)
package.json (Node.js)pyproject.toml (Python)Cargo.toml (Rust)marketplace.json or .claude-plugin/marketplace.json (Claude Plugin)VERSION or version.txt (Generic)Project Hook Contract :
If .releaserc.yml defines release.hooks, keep the release workflow generic and delegate project-specific packaging/publishing to those hooks.
Supported hooks:
| Hook | Purpose | Expected Responsibility |
|---|---|---|
prepare_artifact | Make one target releasable | Validate the target is self-contained, sync/embed local dependencies, optionally stage extra files |
publish_artifact | Publish one releasable target | Upload the prepared target (or a staged directory if the project uses one), attach version/changelog/tags |
Supported placeholders:
| Placeholder | Meaning |
|---|---|
{project_root} | Absolute path to repository root |
{target} | Absolute path to the module/skill being released |
{artifact_dir} | Absolute path to a temporary staging directory for this target, when the project uses one |
{version} | Version selected by the release workflow |
{dry_run} | true or false |
Execution rules:
prepare_artifact exists, run it once per target before publish-related checks that need the final releasable target state.publish_artifact; do not inline multiline changelog text into shell commands.Language Detection Rules :
Changelog files follow the pattern CHANGELOG_{LANG}.md or CHANGELOG.{lang}.md, where {lang} / {LANG} is a language or region code.
| Pattern | Example | Language |
|---|---|---|
| No suffix | CHANGELOG.md | en (default) |
_{LANG} (uppercase) | CHANGELOG_CN.md, CHANGELOG_JP.md | Corresponding language |
.{lang} (lowercase) | CHANGELOG.zh.md, CHANGELOG.ja.md | Corresponding language |
Common language codes: zh (Chinese), ja (Japanese), ko (Korean), de (German), fr (French), es (Spanish).
Output Example :
Project detected:
Version file: package.json (1.2.3)
Changelogs:
- CHANGELOG.md (en)
- CHANGELOG.zh.md (zh)
- CHANGELOG.ja.md (ja)
LAST_TAG=$(git tag --sort=-v:refname | head -1)
git log ${LAST_TAG}..HEAD --oneline
git diff ${LAST_TAG}..HEAD --stat
Categorize by conventional commit types:
| Type | Description |
|---|---|
| feat | New features |
| fix | Bug fixes |
| docs | Documentation |
| refactor | Code refactoring |
| perf | Performance improvements |
| test | Test changes |
| style | Formatting, styling |
| chore | Maintenance (skip in changelog) |
Breaking Change Detection :
BREAKING CHANGEBREAKING CHANGE:If breaking changes detected, warn user: "Breaking changes detected. Consider major version bump (--major flag)."
Rules (in priority order):
--major/--minor/--patch → Use specifiedfeat: commits present → Minor bump (1.2.x → 1.3.0)Display version change: 1.2.3 → 1.3.0
For each detected changelog file:
git log ${LAST_TAG}..HEAD --merges --pretty=format:"%H %s"gh pr view <number> --json author --jq '.author.login'gh repo view --json owner --jq '.owner.login')(by @username) to the changelog entrySection Title Translations (built-in):
| Type | en | zh | ja | ko | de | fr | es |
|---|---|---|---|---|---|---|---|
| feat | Features | 新功能 | 新機能 | 새로운 기능 | Funktionen | Fonctionnalités | Características |
| fix | Fixes | 修复 | 修正 | 수정 | Fehlerbehebungen | Corrections | Correcciones |
| docs | Documentation | 文档 | ドキュメント | 문서 | Dokumentation | Documentation | Documentación |
| refactor |
Changelog Format :
## {VERSION} - {YYYY-MM-DD}
### Features
- Description of new feature
- Description of third-party contribution (by @username)
### Fixes
- Description of fix
### Documentation
- Description of docs changes
Only include sections that have changes. Omit empty sections.
Third-Party Attribution Rules :
(by @username) for contributors who are NOT the repo owner@ prefix(by @username) format, not translated)Multi-language Example :
English (CHANGELOG.md):
## 1.3.0 - 2026-01-22
### Features
- Add user authentication module (by @contributor1)
- Support OAuth2 login
### Fixes
- Fix memory leak in connection pool
Chinese (CHANGELOG.zh.md):
## 1.3.0 - 2026-01-22
### 新功能
- 新增用户认证模块 (by @contributor1)
- 支持 OAuth2 登录
### 修复
- 修复连接池内存泄漏问题
Japanese (CHANGELOG.ja.md):
## 1.3.0 - 2026-01-22
### 新機能
- ユーザー認証モジュールを追加 (by @contributor1)
- OAuth2 ログインをサポート
### 修正
- コネクションプールのメモリリークを修正
Analyze commits since last tag and group by affected skill/module:
skills/<skill-name>/* → Group under that skillExample 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
For each skill/module group (in order of changes):
Check README updates needed :
README*.md for mentions of this skill/moduleStage and commit :
git add skills/<skill-name>/* git add README.md README.zh.md # If updated for this skill git commit -m "<type>(<skill-name>): <meaningful description>"
Commit message format :
<type>(<scope>): <description><type>: feat, fix, refactor, docs, perf, etc.<scope>: skill name or "project"<description>: Clear, meaningful description of changesExample Commits :
git commit -m "feat(baoyu-cover-image): add watercolor and minimalist styles"
git commit -m "fix(baoyu-comic): improve panel layout for long dialogues"
git commit -m "docs(project): update architecture documentation"
Common README Updates Needed :
| Change Type | README Section to Check |
|---|---|
| New options/flags | Options table, usage examples |
| Renamed options | Options table, usage examples |
| New features | Feature description, examples |
| Breaking changes | Migration notes, deprecation warnings |
| Restructured internals | Architecture section (if exposed to users) |
Version Paths by File Type :
| File | Path |
|---|---|
| package.json | $.version |
| pyproject.toml | project.version |
| Cargo.toml | package.version |
| marketplace.json | $.metadata.version |
| VERSION / version.txt | Direct content |
Before creating the release commit, ask user to confirm:
Use AskUserQuestion with two questions :
Version bump (single select):
1.2.3 → 1.3.0 (Recommended), 1.2.3 → 1.2.4, 1.2.3 → 2.0.0Push to remote (single select):
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.
After user confirmation:
Stage version and changelog files :
git add <version-file> git add CHANGELOG*.md
Create release commit :
git commit -m "chore: release v{VERSION}"
Create tag :
git tag v{VERSION}
Push if user confirmed (Step 8):
git push origin main git 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"
Optional config file in project root to override defaults:
# .releaserc.yml - Optional configuration
# Version file (auto-detected if not specified)
version:
file: package.json
path: $.version # JSONPath for JSON, dotted path for TOML
# Changelog files (auto-detected if not specified)
changelog:
files:
- path: CHANGELOG.md
lang: en
- path: CHANGELOG.zh.md
lang: zh
- path: CHANGELOG.ja.md
lang: ja
# Section mapping (conventional commit type → changelog section)
# Use null to skip a type in changelog
sections:
feat: Features
fix: Fixes
docs: Documentation
refactor: Refactor
perf: Performance
test: Tests
chore: null
# Commit message format
commit:
message: "chore: release v{version}"
# Tag format
tag:
prefix: v # Results in v1.0.0
sign: false
# Additional files to include in release commit
include:
- README.md
- package.json
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.
/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)
Trigger this skill when user requests:
Important : If user says "just push" or "直接 push" with uncommitted changes, STILL follow all steps above first.
Weekly Installs
11.3K
Repository
GitHub Stars
10.8K
First Seen
Jan 19, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykWarn
Installed on
opencode10.0K
gemini-cli9.7K
codex9.5K
github-copilot8.8K
amp8.5K
kimi-cli8.5K
97,600 周安装
CHANGELOG*.mdHISTORY*.mdCHANGES*.md{release_notes_file} | Absolute path to a UTF-8 file containing release notes/changelog text |
.{lang-region} | CHANGELOG.zh-CN.md | Corresponding region variant |
| Refactor |
| 重构 |
| リファクタリング |
| 리팩토링 |
| Refactoring |
| Refactorisation |
| Refactorización |
| perf | Performance | 性能优化 | パフォーマンス | 성능 | Leistung | Performance | Rendimiento |
| breaking | Breaking Changes | 破坏性变更 | 破壊的変更 | 주요 변경사항 | Breaking Changes | Changements majeurs | Cambios importantes |