name: 完成发布 allowed-tools: Bash(git:), Bash(gh:), Read, Write description: 当用户要求“完成发布”、“合并发布分支”、“完成发布”、“git flow release finish”或希望最终化发布并将其合并到main和develop分支并打标签时,应使用此技能。 model: haiku argument-hint: [版本] user-invocable: true
前置操作检查
验证工作树干净,并且当前分支匹配release/*,依据${CLAUDE_PLUGIN_ROOT}/references/invariants.md。
阶段1:识别版本
目标:从当前分支或参数确定发布版本。
操作:
- 如果提供了
$ARGUMENTS,则将其用作版本(去除’v’前缀,如果存在) - 否则,从当前分支提取:
git branch --show-current(去除release/前缀) - 存储干净的版本,不带’v’前缀(例如,“1.0.0”)
阶段2:完成前检查
目标:在完成前运行测试。
操作:
- 识别测试命令(检查package.json、Makefile等)
- 运行测试(如果可用);如果测试失败则退出
阶段3:更新变更日志
目标:从提交生成变更日志。
操作:
- 获取上一个标签:
git tag --sort=-v:refname | head -1 - 收集提交,依据
${CLAUDE_PLUGIN_ROOT}/references/changelog-generation.md - 更新CHANGELOG.md,依据
${CLAUDE_PLUGIN_ROOT}/examples/changelog.md - 提交:
chore: update changelog for v$VERSION,带有Co-Authored-By页脚
阶段4:完成发布
目标:使用git-flow-next CLI完成发布。
操作:
- 运行
git flow release finish $VERSION --tagname "v$VERSION" -m "Release v$VERSION" - 验证当前分支:
git branch --show-current(应该切换到develop) - 推送所有:
git push origin main develop --tags
阶段5:GitHub发布
目标:从现有标签创建GitHub发布。
操作:
- 从CHANGELOG.md提取此版本的变更日志
- 运行
gh release create "v$VERSION" --title "v$VERSION" --notes "<changelog>" --verify-tag