name: release-harness description: “自动化Harness发布。一键完成CHANGELOG、版本、标签。当用户提及harness发布、harness版本升级时使用。不要用于:一般发布讨论、其他项目发布。” description-en: “Automate Harness release. CHANGELOG, version, tag in one click. Use when user mentions harness release, harness version bump. Do NOT load for: general release discussions, other project releases.” description-ja: “Harness リリース作業を自動化。CHANGELOG、バージョン、タグをポチッと一発。Use when user mentions harness release, harness version bump. Do NOT load for: general release discussions, other project releases.” allowed-tools: [“Read”, “Write”, “Edit”, “Bash”] argument-hint: “[patch|minor|major]” user-invocable: false context: fork
Harness发布技能
自动化claude-code-harness发布过程。
快速参考
- “发布新harness版本” ->
/release-harness - “升级补丁版本” ->
/release-harness patch - “创建次要发布” ->
/release-harness minor
执行流程
步骤1: 变更验证
并行运行:
git status- 检查未提交的更改git diff --stat- 列出更改的文件git log --format="%h|%s|%an|%ad" --date=short -10- 最近提交历史(结构化)
Git日志标志 (CC 2.1.30+)
使用结构化日志输出来生成发布说明。
发布说明的提交列表
# 结构化格式提交列表
git log --format="%s" vPREV..HEAD
# 排除合并提交(仅实际更改)
git log --cherry-pick --no-merges --format="%s" vPREV..HEAD
# 详细信息(带作者和日期)
git log --format="%h|%s|%an|%ad" --date=short vPREV..HEAD
关键用例
| 用例 | 标志 | 效果 |
|---|---|---|
| 发布说明生成 | --format="%s" |
仅提取提交消息 |
| 排除合并 | --cherry-pick --no-merges |
仅实际提交 |
| 详细列表 | --format="%h|%s|%an|%ad" |
结构化详细信息 |
| 更改文件 | --raw |
影响分析 |
步骤2: 版本确定
检查当前版本:
cat VERSION
根据更改确定版本(语义化版本):
- 补丁 (x.y.Z): 错误修复,小改进
- 次要 (x.Y.0): 新功能(向后兼容)
- 主要 (X.0.0): 破坏性更改
询问用户: “下一个版本应该是什么?(例如,2.5.23)”
步骤3: CHANGELOG更新(日文 + 英文)
重要: 关注面向用户的更改。内部修复保持简短。
更新 CHANGELOG_ja.md 和 CHANGELOG.md。
CHANGELOG规则
| 更改类型 | 如何记录 |
|---|---|
| 面向用户的影响 | What's Changed + 前后对比表 |
| 新功能 | Added 部分,简洁 |
| 内部(CI/测试/文档) | Internal 部分,一行 |
| 错误修复(面向用户) | Fixed 部分 |
| 错误修复(仅内部) | 省略或合并到 Internal |
模板
## [X.Y.Z] - YYYY-MM-DD
### What's Changed
**用户体验更改的一行描述**
| 之前 | 之后 |
|--------|-------|
| 先前状态 | 新状态 |
### Added
- 简洁的功能描述
### Internal
- 内部更改的一行摘要
前后对比表规则
- 仅用于 面向用户的更改
- 不需要用于内部修复(CI、测试、重构)
- 从 用户角度 编写,非技术细节
步骤3.5: README更新检查
检查是否需要更新README(日文/英文都检查)
步骤4: 版本文件更新
echo "X.Y.Z" > VERSION
同时更新 .claude-plugin/plugin.json:
"version": "X.Y.Z"
步骤5: 提交和标签
git add -A
git commit -m "chore: release vX.Y.Z"
git tag -a vX.Y.Z -m "Release vX.Y.Z"
步骤6: 推送
git push origin main
git push origin vX.Y.Z
步骤7: GitHub发布(可选)
gh release create vX.Y.Z \
--title "vX.Y.Z - Title" \
--notes "$(cat <<'EOF'
## What's Changed
**用户体验更改的一行描述**
| Before | After |
|--------|-------|
| Previous state | New state |
### Added / Changed / Fixed
- Concise description
---
Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"
GitHub发布格式
遵循 .claude/rules/github-release.md:
## What's Changed
**价值描述的一行**
| Before | After |
|--------|-------|
| Previous state | New state |
### Added / Changed / Fixed
- 简要描述
---
Generated with [Claude Code](https://claude.com/claude-code)
相关技能
verify- 发布前验证