feat: update manage-release

This commit is contained in:
2026-08-04 13:55:16 +08:00
parent 5018a1801d
commit 5ff8899b48
7 changed files with 168 additions and 80 deletions
+27 -15
View File
@@ -1,13 +1,13 @@
# manage-release
`manage-release` 帮助 Agent 管理从开发版本到发布的 Git 流程,包括 worktree、分支、
版本号、PR/MR、合并和 release tag。它可以只处理其中一个阶段,也可以从准备开发目录
一直执行到发布
`manage-release` 帮助 Agent 发布已经准备好的 Git commit,也能在发布前确有必要时管理
版本文件、worktree、分支、PR/MR 和合并。普通发布优先走“更新说明 + annotated tag”的
短路径;只有发布要求修改仓库内容时,才进入准备版本的分支流程
## 使用前准备
- 项目已经是 Git 仓库,并配置了可访问的远端。
- 项目已有版本文件或发布约定;没有时可以让 Agent 先给出版本建议。
- 项目已有版本来源或 tag 发布约定;没有时可以让 Agent 先给出版本建议。
- 创建或合并 PR/MR、创建 Forge Release 时,准备好 GitHub、GitLab、Gitea 或 Forgejo
对应的已认证 CLI。只发布 Git tag 时不要求 Forge CLI,但 Git remote 必须可读写。
- 请求里写清目标版本、基线分支,以及允许执行到哪一步。没有明确授权的远端写操作
@@ -54,11 +54,21 @@ Agent 只会在仓库要求全部满足后合并,不会使用管理员权限
### 为已合并版本发布 tag
```text
使用 manage-release,为已经合并到 main 的 1.6.0 发布 v1.6.0 tag。确认 tag 指向包含该版本号的 merged commit不要创建 Forge Release。
使用 manage-release,为已经合并到 main 的 1.6.0 发布 v1.6.0 tag。根据 v1.5.0 到目标 commit 的实际变化生成更新说明,把说明写入 annotated tag,并验证远端 tag 的 commit 和说明。不要创建 Forge Release。
```
适合依靠 Git tag 触发后续 CI 发布的项目。Agent 会分别验证版本文件、目标 commit 和
远端 tag,不会给未合并分支打正式 tag。
这是无需修改仓库文件时的默认短路径,适合依靠 Git tag 触发后续 CI 发布的项目。Agent
会分别验证目标 commit、更新说明和远端 tag,不会创建 worktree、发布分支或 PR,也不会
给未合并分支打正式 tag。
### 为已合并版本创建 Gitea Release
```text
使用 manage-release,发布已经合并到 main 的 1.6.0:生成更新说明,创建并验证附带说明的 v1.6.0 annotated tag,然后在 Gitea 创建使用同一份说明的 Release。
```
Agent 会先证明 tag 已存在、指向计划 commit 且包含更新说明,再创建 Gitea Release。
Release 创建失败时保留正确的 tag,从 Release 阶段恢复。
### 完成端到端发布
@@ -66,8 +76,9 @@ Agent 只会在仓库要求全部满足后合并,不会使用管理员权限
使用 manage-release 完成 1.6.0 发布:从 main 创建 worktree 和分支,完成版本更新和验证,创建 PR,检查通过后合并,推送 v1.6.0 tag,并创建 Forge Release。
```
这条请求授权完整流程。遇到 review 未通过、CI 失败、版本冲突或已有同名 tag 时,
Agent 会停止并说明卡在哪一步,不会绕过检查继续发布。
只有版本文件或仓库内 CHANGELOG 必须随发布修改时才使用这条长路径。tag 仍必须附带更新
说明,Forge Release 复用同一份说明。遇到 review 未通过、CI 失败、版本冲突或已有同名
tag 时,Agent 会停止并说明卡在哪一步,不会绕过检查继续发布。
### 发布紧急修复版本
@@ -89,18 +100,19 @@ Skill 会从 Git 和代码托管平台重新判断状态,再继续缺失的步
## Agent 会做什么
Agent 会先发现项目自己的版本、分支和发布规则,再检查本地 Git 与远端状态。它只执行
请求中明确授权的阶段,并在合并、tag 或 release 条件不满足时停止。完整流程结束后
结果中会分别列出 worktree、分支、版本、PR/MR、merged commit、tag 和 Forge Release
状态
Agent 会先发现项目自己的版本和发布规则、锁定远端目标 commit,再判断发布是否要求修改
仓库内容。不需要修改时直接生成更新说明并发布 annotated tag;需要修改时才准备分支
并只在隔离用户工作确有必要时创建 worktree。它只执行请求中明确授权的阶段,并在合并、
tag 或 release 条件不满足时停止
## 如何判断完成
- 只分析版本时,结果包含建议版本及依据。
- 创建开发环境时,结果包含 worktree 路径、分支和基线 commit。
- 创建或合并 PR/MR 时,结果包含 URL、检查状态和 merged commit。
- 发布 tag 时,远端 tag 解引用后的 commit 与 merged commit 一致
- 创建 Forge Release 时,结果包含可访问的 release URL
- 发布 tag 时,远端 tag 解引用后的 commit 与目标 commit 一致,而且 tag object 包含经过
核对的更新说明
- 创建 Forge Release 时,结果包含可访问的 release URL,正文与 tag 更新说明一致。
- 中途停止时,结果说明停在哪一步、为什么停止,以及下次如何继续。
## 不适用的场景