docs: keep completed branches as registered history

This commit is contained in:
john
2026-07-27 22:19:00 +08:00
parent a95681ea3a
commit aff6ddf9d3
2 changed files with 52 additions and 5 deletions
+5 -5
View File
@@ -6,11 +6,11 @@
以下规则适用于 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`、删除分支等动作仍分别受本文的测试、明确批准和发布闸门约束;本节只增加“未闭环不得开新分支”的硬阻断,不构成对这些动作的预先授权。
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(如有)→ 在 [docs/branch-disposition.md](docs/branch-disposition.md) 登记该分支“已提交/已进入 main/禁止再次引用”。本地分支可保留用于只读追溯,但不得再作为开发基线、合并来源、cherry-pick 来源或发布来源;远端功能分支默认删除,发布和审计依据必须使用 `main` commit、tag、CI 记录或 runtime manifest,而不是功能分支名
4. 新建分支前必须先执行只读检查,确认工作区干净、当前位于已同步的 `main`、不存在尚未闭环的本地开发分支、不存在其它开发 worktree,且上一分支的 HEAD 已是 `origin/main` 的祖先;若存在已登记为“禁止再次引用”的历史本地分支,它不阻塞新分支创建。任一检查不满足,必须停止并继续完成、同步或登记上一分支,禁止创建新分支。
5. 分支闭环中的 `push`、合并 `main`、删除 worktree、处置/登记历史分支等动作仍分别受本文的测试、明确批准和发布闸门约束;本节只增加“未闭环不得开新分支”的硬阻断,不构成对这些动作的预先授权。
## 必读:分支与发布闸门
+47
View File
@@ -9,6 +9,53 @@
- 不得从这类分支继续开发,不得 merge、cherry-pick、打包或发布。
- 不得把旧 worktree 中的未提交文件直接覆盖到当前主线;应先与最新 `origin/main` 逐文件比较。
- 若确需恢复历史代码,必须重新评估当前 `main`,在最新主线上建立新分支,并重新执行对应测试和 verify。
- 已提交、已合入并已进入 `origin/main` 的开发分支可以保留本地分支名;保留只用于审计和追溯,不代表还有待合并工作。
- 远端功能分支默认在闭环后删除;发布和审计依据使用 `main` commit、tag、CI 记录或 runtime manifest,不使用功能分支名。
- 这类保留分支必须在本文件登记清楚:分支名、最终 HEAD、进入 `origin/main` 的提交、验证摘要,以及“禁止再次引用”的状态。
## `feature/fix-rybbit-publication-tracking`
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
审计日期:2026-07-27
分支 HEAD`90ee4c3`
`origin/main` 对应提交:`90ee4c3`
### 原始用途
该分支用于补齐 `m.tkmind.cn` 发布页 Rybbit tracking
-`/u/:owner/pages/:slug``/MindSpace/:user/public/...` 发布页 HTML / shell 注入 Rybbit tracker。
- Portal bootstrap 在 Rybbit env secret 缺失时复用 `mindspace_config` 中存储的 MindSpace analytics secret。
- 补充发布页交付、domain bootstrap 与 Rybbit 配置测试。
### 已进入 `main` 的提交
| 提交 | 内容 |
|---|---|
| `c7718c6` | 注入 Rybbit tracking 到发布页交付链路 |
| `90ee4c3` | 修复空字符串 env secret 阻断存储 secret fallback |
### 验证摘要
本分支闭环前已通过:
- `node --test mindspace-rybbit.test.mjs server/portal-domain-services-bootstrap.test.mjs server/portal-published-page-delivery.test.mjs server/portal-publication-shell.test.mjs`
- `npm run verify:chat-finish-sync`
- `npm run verify:mindspace-publish-guards`
- `npm run verify:mindspace-publish-guards:full`
- `npm run verify:mindspace-page-sync-guards`
- `npm run verify:h5-session-patches`
- `npm run build`
- `npm test`
### 最终处置
- 保留本地分支名用于审计追溯。
- 远端功能分支如曾创建,应在确认 `origin/main` 包含对应提交后删除;发布依据是 `90ee4c3` 及后续 main/tag/manifest,不是该功能分支名。
- 不要从该分支继续开发。
- 不要 merge、cherry-pick 该分支提交或从该分支构建 runtime/artifact。
- 后续开发必须从最新 `origin/main` 新建分支。
## `codex/product-quality-p0`