agent-exec transport c40e652385634327f58e6f1946d49604/5001e4ce8764
governance / governance (pull_request) Successful in 14s

This commit is contained in:
agent-exec-transport
2026-10-17 19:55:36 +00:00
parent 6c04eb24f4
commit c1b0b35352
2 changed files with 91 additions and 0 deletions
@@ -0,0 +1,88 @@
# 分层分支交付与规范精简 r1
- 状态:已批准实施(2026-10-18 用户指示按计划实施);推进中
- 负责人:weichen(需求与批准)
- 实施:Dev 治理大任务 `feature/delivery-model-v3`
- 适用范围:Agent-System-Dev 开发流程与规范
- 更新时间:2026-10-18
## 1. 背景
用户提出的需求:
- 减少合入 Dev main 的次数,让其他分支不必反复同步、反复跑 CI。
- L2 合入 L1 要轻;按任务类别分别处理,修复优先。
- 测试、验收、审批放在合适的层级,不在每一层重复。
- 去掉 Agent 的长时间 sleep 等待;精简膨胀的规范。
2026-10-18 只读基线(均为 **SELF** 观察):
- main 推进:14 天共 410 次(first-parent),峰值 85 次/天。按 PR 标题粗分,闭合任务卡约 40%、功能约 30%、组件 pin 约 20%、修复约 6%。
10-14 启用合入窗口后仍约 17 次/天,闭合 PR 仍占约 40%。
- 分层使用:近期 291 个已合入 PR 中 288 个 base 为 main,initiative/child 模型只用过一次。
- CI:3.3 天跑了 200 次,单次中位 8.3 分钟;闭合相关运行约占 31% 机时;main 的 push CI 有 95% 在复测与 PR head 完全相同的树;每个 PR 平均 2.4 次 CI。
- 等待:Git 远端往返约 0.35 秒。长等待来自 Agent 手写 `sleep N; curl` 轮询 CI,以及串行克隆 105 个嵌套子模块(实际只有 13 个不同仓;并行 `--jobs 8` 实测约 26 秒)。
- 规范体量:日常必读规范约 4.6 万字符;同一段 Agent 路由规则写了 7 处;归档任务卡中位 113 KB,原因是证据工具把完整 JSON 收据写进了卡。
结论:频繁触发的主因不是层级不够,而是记账类改动也在推进 main,加上每一层都执行同样重的门禁。
## 2. 目标与成功标准
- 任务卡在合入前随 PR 折叠闭合,不再单独开闭合 PR。
- 统一一个阻塞式的 CI 等待入口,按精确 SHA 等待结果。
- 完整门禁只在进入 main 时执行;L2 合入 L1 只做轻量检查。
- 任务分通道:修复直接进 main 并优先;其他类别按主题聚合进 L1。
- 规范单一权威、更精简;任务卡变小。
成功标准:采纳两周后按本次基线复测。main 推进次数、CI 次数与机时、每 PR 平均 CI 次数均下降;闭合 PR 数降到零(存量清理除外)。
## 3. 方案要点
### 3.1 固定两级分支
- L1 大任务:从 main 切出,最终一次合入 main。L2 子任务:从 L1 切出,合入 L1。
- L2 内部用 agent-exec 单元控制上下文长度,单元不开 PR,是最轻的一层。
- 不再加深层级:main 的推进次数只取决于根层交付次数;每多一层就多一条同步链,集成也被推迟;现行 Guidelines 与工具只定义了两级。
- 太大时横向拆:L1 超过约 2 周或 6–8 个子任务时拆成多个并列 L1;L2 太大就拆成兄弟 L2 或更多单元。
### 3.2 L1 章程
- 章程写在 L1 任务卡顶部:用途与目标、接纳范围与非目标、方案和计划链接、子任务登记、分级测试策略、验收条件、追加的领域规则、生命周期。
- 建 L1 时立即开一个 base 为 main 的 [WIP] PR,用于分流发现,评论区同时作为仓外调度记录。
- L1 不追 main,只在三种情况下合入最新 main:最终交付窗口;需要 main 上的某个修复;长周期 L1 到达里程碑或每周一次。
### 3.3 任务通道
- 修复:`fix/` 直接进 main 并优先排队;P0 用 `hotfix/`。
- 完善:按领域放进“完善列车” L1。
- 扩展:加入(JOIN)同主题的在途 L1。
- 新增:新建 L1 并写章程。
- 治理与规范:集中在一个治理 L1 中。
- 记录类改动不单独推进 main;组件 pin 跟随用到它的 L1 一起推进。
### 3.4 按层级分配门禁
- 单元合入 L2:worker 自检,host 做最小直接检查。
- L2 合入 L1:先同步 L1 头,跑受影响模块的测试,由一个全新会话做独立 Review,轻量 CI 作为 GATE。
不排合入窗口,不需要分流收据、三段证据和人工审批。
- L1 的 WIP PR:完整 CI 照常运行,作为不阻塞任何人的提前预警。
- L1 或修复合入 main:合入窗口、完整 CI、整体 Review、三段证据,以及一次用户专属验收。
- 人工审批只保留三处:L1 章程确认、L1 最终的用户专属验收、高后果双钥匙操作。
## 4. 阶段与关联任务
| 阶段 | 内容 | 状态 |
|---|---|---|
| R | 本主记录、PROJECT.md 链接、治理 L1 及其 WIP PR | 推进中 |
| P1 | 合入前折叠闭合并清理存量卡;`make ci-wait` 与等待规则;子模块并行物化 | 待实施 |
| P2 | CI 按 PR base 区分完整与轻量;L2 免分流、免合入窗口、免三段证据;三种卡模板;通道写入 delivery.md | 待实施 |
| P3 | 规范精简:AGENTS.md 改为入口;delivery.md 作为单一权威并并入 merge-queue;矩阵与采纳记录改为引用;证据摘要入卡、完整收据出卡 | 待实施 |
| M | 采纳两周后按本次基线复测 | 待执行 |
实时进度以 Dev 治理大任务的任务卡和 PR 为准;本记录只在阶段完成时更新。
## 5. 未纳入与限制
- 分支保护等平台设置不在本方案范围内;如需变更,由用户按双钥匙规则亲手执行。
- 不引入自动合入队列、合入列车或调度服务。
- 基线数字按 PR 标题粗分,只用于判断方向;实际效果以复测结果为准。
+3
View File
@@ -4,6 +4,9 @@
本索引负责导航与差异提示,规划正文、批准范围和验收条件仍以链接的主记录及其批准版本为准。
合入授权不批准新方向、不调整里程碑范围、不启动新的业务任务。
[分层分支交付与规范精简 r1](2026-10-18-delivery-model-v3.md):2026-10-18 经用户批准实施;
由 Dev 治理大任务 `feature/delivery-model-v3` 推进,实时进度见该任务卡与 PR。
待评审(收录不是批准):[svc 插件组合部署(--with)方案 r1](2026-10-14-svc-plugin-compose-deploy.md);
[分层 Python 环境方案 r1](2026-10-15-layered-python-env.md)(8788 无法生成 docx 的环境层;白名单自动批准,其余审批)。