Merge pull request #2766 from pikasTech/docs/2745-tasktree-schema-migration

docs: 定义 CI/CD 语义范围与 no-op 合同
This commit is contained in:
Lyon
2026-07-21 18:56:14 +08:00
committed by GitHub
2 changed files with 13 additions and 1 deletions
@@ -155,11 +155,20 @@ L2 与 L3 发布必须使用 `plan -> 人工审阅 -> trigger` 的受控手动
范围相对 owning YAML 声明的发布意图扩大时,`plan` 必须明确列出新增项。操作者应先修正源码、配置或 planner,使范围回到预期后重新生成计划;不得通过确认参数、白名单、忽略 warning 或扩大资源预算继续触发。
- 依赖与 component path 重叠时必须保持同一语义判定:
- `package.json` 只按 dependencies、engine 和模块类型等运行字段参与服务范围与 hash;
- scripts、格式或其他开发元数据变化不得因 owning YAML 重复声明 `package.json` 而进入服务 changed paths
- planner hash 算法升级后,必须从 catalog source commit 按新算法重算并识别 metadata drift
- source tree 在新算法下未变化时不得把 metadata drift 判为构建或 rollout。
- `build=0``rollout=0``affected=0` 的计划是终态 no-op
- 不得发送 webhook 或创建 PipelineRun
- 动态 `next` 必须明确结束,不得指向 `release trigger`
- Renderer rollout 范围必须对应实际 GitOps Pod template diff
- renderer 重建完整 runtime tree 并改写未选 workload 的 source identity 时,`plan` 必须把全部实际受影响 workload 计入 rollout
- 只有未选 workload 的 manifest 和 source identity 均保持不变时,才允许显示局部 rollout;
- renderer 入口拆分到子模块后,全部参与 runtime materialization 的源码路径仍必须属于 planner 的 renderer 输入集合。
唯一 mutation 是受控手动 `trigger`。它必须显式选择 target、lane、精确 source commit 和 pipeline intent,并向 PaC 发送 webhookPaC 从同一 source authority 创建 commit-pinned PipelineRun。触发前必须先审阅当前输入的 plan;计划输入或范围已变化时必须重新 plan。禁止 CLI 直建或裸创建 PipelineRun、由 PR 合并回调 trigger,或为兼容旧自动链保留第二入口。
唯一 mutation 是受控手动 `trigger`。它必须显式选择 target、lane、精确 source commit 和 pipeline intent,并向 PaC 发送 webhookPaC 从同一 source authority 创建 commit-pinned PipelineRun。触发前必须先审阅当前输入的非空 plan;计划输入或范围已变化时必须重新 plan。禁止对零范围 plan 触发,禁止 CLI 直建或裸创建 PipelineRun、由 PR 合并回调 trigger,或为兼容旧自动链保留第二入口。
`trigger` 被 PaC 接收后,动态 `next` 必须指向同一 source commit 的只读 `delivery-observe`。不得引导旧 `closeout`、自动同步、人工 PipelineRun 或 Argo mutation;触发失败或输入变化时只能回到重新 plan。