feat(workflow): add risk-based release gates

This commit is contained in:
john
2026-07-27 10:38:24 +08:00
parent c88623855f
commit dfab78c75a
17 changed files with 794 additions and 69 deletions
+12 -2
View File
@@ -2,9 +2,19 @@
本文件供所有在仓库内工作的 AI 编码助手阅读。仓库级开发、测试、发布规范以 [ENGINEERING_WORKFLOW_RULES.md](ENGINEERING_WORKFLOW_RULES.md) 为准;生产发布规范以 [PRODUCTION_RELEASE_RULES.md](PRODUCTION_RELEASE_RULES.md) 为准。
## 必读:单一开发分支硬闸门
以下规则适用于 Codex、Cursor、Cloud、Claude、人工操作及其它任何自动化工具,不得绕过:
1.`main` 外,同一时间只允许存在一个尚未闭环的本地开发分支;同时只允许一个开发 worktree。已有开发分支或开发 worktree 时,严禁通过 `git switch -c``git checkout -b``git worktree add`、IDE、云端任务或脚本再创建第二个分支/worktree。
2. 当前开发分支未完成全部改动、仍有未提交文件、仍有未推送提交、尚未并入 `main`、其提交尚未进入 `origin/main`,或该分支/worktree 尚未删除时,Codex、Cursor 及其它 Agent 一律不得创建新分支。不得以并行开发、临时修复、试验、续作、PR、冲突处理或“先开分支再说”等理由例外处理。
3. 一个开发分支必须完整闭环后才能开始下一分支,顺序固定为:完成开发 → 执行对应测试/verify → 提交全部应交付改动 → 取得规则要求的明确批准 → 合并进本地 `main` → 推送并确认远端 `origin/main` 已包含该分支提交 → 删除开发 worktree(如有)→ 删除本地开发分支 → 删除同名远端开发分支(如曾创建)。
4. 新建分支前必须先执行只读检查,确认工作区干净、当前位于已同步的 `main`、不存在其它本地开发分支、不存在其它开发 worktree,且上一分支的 HEAD 已是 `origin/main` 的祖先。任一检查不满足,必须停止并继续完成或清理上一分支,禁止创建新分支。
5. 分支闭环中的 `push`、合并 `main`、删除分支等动作仍分别受本文的测试、明确批准和发布闸门约束;本节只增加“未闭环不得开新分支”的硬阻断,不构成对这些动作的预先授权。
## 必读:分支与发布闸门
生产 `103` 发布还必须完整遵守 [docs/production-release-guardian.md](docs/production-release-guardian.md)。该文档定义 160 个场景族、合法 `not_applicable` 条件、Gate report 和发布硬阻断规则;自动守门员尚未完整落地前,不得声称已满足新发布条件
生产 `103` 发布还必须完整遵守 [docs/production-release-guardian.md](docs/production-release-guardian.md)。该文档维护 187 个完整回归场景族;常规发布执行 16 项核心场景加自动影响域场景,高风险或无法识别影响范围时自动升级为全量 Gate。不得手工删减选择结果或绕过 Gate report 硬阻断
1. 新建分支前必须先同步远端主线,推荐执行 `bash scripts/new-branch.sh feature/xxx`
2. 在“修复 bug / 开发中”阶段,默认只允许本地修改、本地运行、本地测试;**没有用户明确批准,不允许 `git push`、不允许生成或发布任何 `103` 相关 runtime/artifact、不允许合并或并入 `main`、不允许触发任何生产动作。**
@@ -22,7 +32,7 @@
bash scripts/check-release-ready.sh
```
12. `check-release-ready.sh` 只是源码闸门,不代表业务场景闸门通过;生产发布还必须取得与同一 commit、同一 runtime artifact 绑定的完整 Gate report。
12. `check-release-ready.sh` 只是源码闸门,不代表业务场景闸门通过;生产发布还必须取得与同一 commit、同一 runtime artifact 绑定、且可从 Git diff 重现选择结果的风险分层或全量 Gate report。
## 必读:历史分支处置登记