name: release-har description: “通用发布自动化。支持CHANGELOG、提交、标签、GitHub Release。当用户提及发布、版本升级、创建标签、发布发布时使用。请勿用于:harness release(请使用x-release-harness代替)。” description-en: “Universal release automation. CHANGELOG, commit, tag, GitHub Release supported. Use when user mentions release, version bump, create tag, publish release. Do NOT load for: harness release (use x-release-harness instead).” 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: “[patch|minor|major]” context: fork
Release Har 技能
通用发布自动化技能。适用于任何项目。
快速参考
- “release” ->
/release-har - “bump version” ->
/release-har patch - “minor release” ->
/release-har minor
执行流程
步骤 1: 检查当前状态
并行运行:
# 未提交的更改
git status
# 更改的文件
git diff --stat
# 最近的提交历史
git log --oneline -10
# 现有标签
git tag --sort=-v:refname | head -5
步骤 2: 确定版本
基于语义化版本控制:
| 版本 | 更改类型 |
|---|---|
| patch (x.y.Z) | 错误修复,小改进 |
| minor (x.Y.0) | 新功能(向后兼容) |
| major (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: release 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 Release(可选)
用户确认后,创建GitHub Release:
gh release create vX.Y.Z \
--title "vX.Y.Z - 标题" \
--notes "$(cat <<'EOF'
## 更改内容
- 更改 1
- 更改 2
**完整更新日志**: https://github.com/OWNER/REPO/compare/vPREV...vX.Y.Z
EOF
)"
选项
| 选项 | 描述 |
|---|---|
patch |
自动递增补丁版本 |
minor |
自动递增次要版本 |
major |
自动递增主要版本 |
--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- 发布前验证