name: release-har description: “通用发布自动化。支持CHANGELOG、提交、标签、GitHub Release。当用户提到发布、版本升级、创建标签、发布版本时使用。不要加载用于:harness发布(使用x-release-harness代替)。” description-en: “通用发布自动化。支持CHANGELOG、提交、标签、GitHub Release。当用户提到发布、版本升级、创建标签、发布版本时使用。不要加载用于:harness发布(使用x-release-harness代替)。” description-ja: “汎用リリース自動化。CHANGELOG、コミット、タグ、GitHub Release をサポート。Use when user mentions release, version bump, create tag, publish release. Do NOT load for: harness release (use x-release-harness instead).” allowed-tools: [“读取”, “写入”, “编辑”, “Bash”] argument-hint: “[补丁|次要|主要]” context: 分支
发布自动化技能
通用发布自动化技能。适用于任何项目。
快速参考
- “发布” ->
/release-har - “升级版本” ->
/release-har 补丁 - “次要发布” ->
/release-har 次要
执行流程
步骤 1: 检查当前状态
并行运行:
# 未提交的更改
git status
# 更改的文件
git diff --stat
# 最近的提交历史
git log --oneline -10
# 现有标签
git tag --sort=-v:refname | head -5
步骤 2: 确定版本
基于语义化版本控制:
| 版本 | 更改类型 |
|---|---|
| 补丁 (x.y.Z) | 错误修复、小改进 |
| 次要 (x.Y.0) | 新功能(向后兼容) |
| 主要 (X.0.0) | 重大更改 |
询问用户:“下一个版本应该是什么?(例如,1.2.3)”
步骤 3: 更新 CHANGELOG(如果存在)
如果项目有 CHANGELOG.md,更新它:
## [X.Y.Z] - YYYY-MM-DD
### 新增
- 新功能
### 更改
- 更改描述
### 修复
- 错误修复
如果 CHANGELOG 不存在,则跳过
步骤 4: 更新版本文件(项目相关)
基于项目配置更新版本文件:
| 文件 | 更新方法 |
|---|---|
package.json |
"version": "X.Y.Z" |
pyproject.toml |
version = "X.Y.Z" |
VERSION |
直接内容更新 |
Cargo.toml |
version = "X.Y.Z" |
如果没有适用的文件存在,则跳过
步骤 5: 提交和标签
# 暂存
git add -A
# 提交(仅当存在更改时)
git commit -m "chore: 发布 vX.Y.Z"
# 创建标签
git tag -a vX.Y.Z -m "发布 vX.Y.Z"
步骤 6: 推送
# 推送分支
git push origin $(git branch --show-current)
# 推送标签
git push origin vX.Y.Z
步骤 7: GitHub 发布(可选)
用户确认后,创建 GitHub 发布:
gh release create vX.Y.Z \
--title "vX.Y.Z - 标题" \
--notes "$(cat <<'EOF'
## 更改内容
- 更改 1
- 更改 2
**完整更改日志**: https://github.com/所有者/仓库/compare/v前一个版本...vX.Y.Z
EOF
)"
选项
| 选项 | 描述 |
|---|---|
补丁 |
自动增加补丁版本 |
次要 |
自动增加次要版本 |
主要 |
自动增加主要版本 |
--dry-run |
仅预览,不执行 |
项目特定处理
Node.js (package.json)
npm version patch --no-git-tag-version
Python (pyproject.toml)
手动更新 version = "X.Y.Z"
Rust (Cargo.toml)
手动更新 version = "X.Y.Z"
相关技能
x-release-harness- Harness 插件特定发布(仅本地)verify- 预发布验证