From 04ec96651b42e970b3f6506dea4e764befc8a1a9 Mon Sep 17 00:00:00 2001 From: pikastech Date: Tue, 21 Jul 2026 11:34:11 +0200 Subject: [PATCH] docs: govern renderer rollout scope --- .agents/skills/unidesk-cicd/SKILL.md | 5 +++++ .../PJ2026-01/specs/PJ2026-010601-controlled-release.md | 5 +++++ .../specs/PJ2026-01060107-nc01-ci-resource-governance.md | 6 ++++++ 3 files changed, 16 insertions(+) diff --git a/.agents/skills/unidesk-cicd/SKILL.md b/.agents/skills/unidesk-cicd/SKILL.md index 4891e52c..d4e5a80f 100644 --- a/.agents/skills/unidesk-cicd/SKILL.md +++ b/.agents/skills/unidesk-cicd/SKILL.md @@ -71,6 +71,11 @@ bun scripts/cli.ts hwlab nodes control-plane legacy-cicd --help - 当前 GitOps catalog 落后 source 时,plan 必须把累计发布欠账与本次 base 到 source 的请求范围分开显示; - 有效范围大于请求范围时标记 `expanded`,`release trigger` 必须在发送 webhook 前拒绝; - 计划范围扩大时先修复 source range、源码、YAML 或项目 planner,再重新 plan; + - renderer rollout 范围必须对应实际 GitOps Pod template diff: + - renderer 重建完整 runtime tree 并改写未选 workload 的 source identity 时,plan 必须把全部实际受影响 workload 计入 rollout; + - renderer-only 变化不得误计为镜像构建; + - 只有未选 workload 的 manifest 和 source identity 均保持不变时才允许显示局部 rollout; + - renderer 拆分后的全部 materialization 源码路径必须纳入 planner 输入集合; - artifact catalog 必须从 owning YAML 声明、且与 Argo/promotion 相同的 GitOps read URL 与 branch 恢复;禁止用 source mirror 中的同名 branch 代替 GitOps authority; - 审阅通过后运行 `release trigger --confirm`;该命令只向 PaC 发送 webhook,由 PaC 创建 PipelineRun; - 禁止裸创建 PipelineRun、由 CLI 直建 PipelineRun,或恢复 Gitea 自动 hook; diff --git a/project-management/PJ2026-01/specs/PJ2026-010601-controlled-release.md b/project-management/PJ2026-01/specs/PJ2026-010601-controlled-release.md index 43b21a8d..408ca5fe 100644 --- a/project-management/PJ2026-01/specs/PJ2026-010601-controlled-release.md +++ b/project-management/PJ2026-01/specs/PJ2026-010601-controlled-release.md @@ -155,6 +155,11 @@ L2 与 L3 发布必须使用 `plan -> 人工审阅 -> trigger` 的受控手动 范围相对 owning YAML 声明的发布意图扩大时,`plan` 必须明确列出新增项。操作者应先修正源码、配置或 planner,使范围回到预期后重新生成计划;不得通过确认参数、白名单、忽略 warning 或扩大资源预算继续触发。 +- 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 发送 webhook;PaC 从同一 source authority 创建 commit-pinned PipelineRun。触发前必须先审阅当前输入的 plan;计划输入或范围已变化时必须重新 plan。禁止 CLI 直建或裸创建 PipelineRun、由 PR 合并回调 trigger,或为兼容旧自动链保留第二入口。 `trigger` 被 PaC 接收后,动态 `next` 必须指向同一 source commit 的只读 `delivery-observe`。不得引导旧 `closeout`、自动同步、人工 PipelineRun 或 Argo mutation;触发失败或输入变化时只能回到重新 plan。 diff --git a/project-management/PJ2026-01/specs/PJ2026-01060107-nc01-ci-resource-governance.md b/project-management/PJ2026-01/specs/PJ2026-01060107-nc01-ci-resource-governance.md index 78e469a5..7209a6af 100644 --- a/project-management/PJ2026-01/specs/PJ2026-01060107-nc01-ci-resource-governance.md +++ b/project-management/PJ2026-01/specs/PJ2026-01060107-nc01-ci-resource-governance.md @@ -86,6 +86,12 @@ CoreDNS 和 k3s 控制面使用 Kubernetes 系统关键优先级。Sub2API 和 `plan` 必须针对精确 source commit 在一次只读输出中披露:YAML configRef、env identity、env reuse/build 判定、待构建镜像数量与服务列表、待 rollout 服务、全部受影响服务、范围基线、新增范围、触发层 concurrency、构建层 max parallel、批次数、step/sidecar 资源合同、priority class 和核心保护摘要。`status` 和 `diagnosis` 必须披露运行/排队 TaskRun 数与稳定意图键状态。共享读取超时只能投影为 warning 或 unavailable,不得把全部 consumer 伪装为真实失败。 +- Renderer 范围判定必须符合以下规则: + - renderer 输入或配置变化会重建完整 runtime tree,并改写未选 workload 的 source identity 时,`plan` 必须显示全部实际 rollout 服务; + - 镜像构建范围继续由 env、组件输入和 artifact provenance 独立决定; + - 禁止用局部源码影响范围替代实际 GitOps Pod template diff; + - 只有未选 workload 的 manifest 和 source identity 均保持不变时,才允许报告局部 rollout。 + ### 5.6 CI-RESOURCE-REQ-006 中心自动触发禁用 中心 PaC owning YAML 必须声明 `deliveryTrigger.mode=manual-plan-confirm` 和 `deliveryTrigger.mechanism=pac-webhook`。PaC webhook 接收端继续作为唯一 PipelineRun 创建入口,但 Gitea push hook、PR merge callback、branch follower、poller 和其他自动发送方不得调用它;PR merge 后只允许 source mirror 或 authority 更新。受控 apply 必须删除或禁用 Gitea 自动 hook,并在 status 中把自动发送方启用视为配置漂移。