# PR 合并驱动的全自动交付

- 来源：https://github.com/pikasTech/unidesk/issues/1755
- 范围：长期规则、CI/CD skill 与文档合同。
- 边界：不执行任何人工 CI/CD 触发、补跑或运行面修改。


## R1 [completed]

固化 PR 合并驱动的全自动交付与故障修复边界，来源：https://github.com/pikasTech/unidesk/issues/1755，完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R1_Task_Report.md)。
### R1.1 [completed]

盘点并收敛会误导人工触发或补跑的长期规则，引用：https://github.com/pikasTech/unidesk/issues/1755，完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R1.1_Task_Report.md)。
### R1.2 [completed]

更新 CI/CD reference 与 skill，明确 PR merge 唯一触发及自动链故障修复边界，引用：https://github.com/pikasTech/unidesk/issues/1755，完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R1.2_Task_Report.md)。
### R1.3 [completed]

补充轻量文档合同检查，阻止人工交付入口重新成为正式路径，完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R1.3_Task_Report.md)。
### R1.4 [completed]

完成静态验证、报告、提交、推送与非草稿 PR，禁止触发或部署 CI/CD，完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R1.4_Task_Report.md)。
## R2 [in_progress]

清理 migrated PaC status/help 中会诱导人工补跑的 NEXT、REPAIR 与长期指引漂移；来源：[UniDesk #1764](https://github.com/pikasTech/unidesk/issues/1764)，保持 GitHub PR merge 为唯一交付触发，完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R2_Task_Report.md)。

### R2.1 [in_progress]

盘点 migrated PaC 的 status/help/Next/REPAIR 与文档、skill 漂移，以 [UniDesk #1764](https://github.com/pikasTech/unidesk/issues/1764) 和 NC01 source 85abda3b 自动发布证据冻结删除边界，完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R2.1_Task_Report.md)。

### R2.2

修复 CLI renderer 与定向合同测试：migrated consumer 只提示只读 status/history/debug-step，不输出 apply、closeout、trigger、sync、flush、webhook-test 或人工 PipelineRun；legacy 显式入口保持可发现，完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R2.2_Task_Report.md)。

### R2.3

由主代理同步清理长期 reference/skill，合并后只观察新的 GitHub webhook→Gitea mirror/snapshot→PaC→Tekton→GitOps/Argo→runtime 自动事件，并完成 issue/报告收口，完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R2.3_Task_Report.md)。

## R3 [completed]

跟踪 [UniDesk #1802](https://github.com/pikasTech/unidesk/issues/1802) 暴露的 AgentRun PaC 成功后 GitOps/Argo revision 持续 stale；本轮只冻结自动链证据与架构边界，不手工补交付，完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R3_Task_Report.md)。

### R3.1 [completed]

记录 [AgentRun PR #301](https://github.com/pikasTech/agentrun/pull/301) 自动 Pipeline Succeeded、GitOps result 与 Argo/runtime provenance 未收敛的证据；确认涉及自动 GitOps/provenance 架构后保持 [UniDesk #1802](https://github.com/pikasTech/unidesk/issues/1802) open 并跳过实现，完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R3.1_Task_Report.md)。

## R4 [in_progress]

解决 [UniDesk #1802](https://github.com/pikasTech/unidesk/issues/1802) 并对齐 [UniDesk #1769](https://github.com/pikasTech/unidesk/issues/1769)：建立 source commit → immutable snapshot → artifact digest → GitOps commit → Argo revision → runtime digest 的单一、不可伪造自动交付 provenance；GitHub PR merge 仍是唯一触发，禁止人工补交付，完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R4_Task_Report.md)。

### R4.1 [in_progress]

冻结 [#1802](https://github.com/pikasTech/unidesk/issues/1802) / [#1769](https://github.com/pikasTech/unidesk/issues/1769) 的交付合同：定义 admission-owned outer-event provenance、标准 terminal roles/results、父子运行归属、commit/digest 关联和 fail-closed 判定，明确 YAML owner 与 controller 职责，完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R4.1_Task_Report.md)。

### R4.2

依赖 R4.1，让 YAML-owned pipeline 输出标准 terminal evidence，由单一 controller 自动 reconcile GitOps；Argo/status 必须针对同一 GitOps repository 和 commit graph 验证 exact/descendant，并把 source、artifact、GitOps、revision、runtime digest 形成可审计链，完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R4.2_Task_Report.md)。

### R4.3

依赖 R4.2，覆盖 provenance 缺失、伪造、stale revision、commit graph unavailable 和 runtime digest 不一致；最终只接受修复 PR merge 的新 webhook/PaC 事件自动收敛，禁止 mirror、PipelineRun、sync、flush、trigger、apply、closeout 或 runtime patch，完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R4.3_Task_Report.md)。

### R4.4

记录并后续解决 [UniDesk #1828](https://github.com/pikasTech/unidesk/issues/1828)：聚合 cicd status 对 sentinel/platform-infra 在 source、GitOps、Argo/runtime 已对齐时仍误报 pac-gitops-missing/relation unknown；统一专用 control-plane 与聚合器的 source→GitOps revision relation authority 和判定证据，本轮仅登记，不扩入 #1760 自动 delivery 修复，完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R4.4_Task_Report.md)。

### R4.5 [in_progress]

基于 [UniDesk #1802](https://github.com/pikasTech/unidesk/issues/1802) 修复当前 AgentRun NC01 自动交付阻塞：将 GitOps read/write、Argo repoURL 与 delivery provenance 从 legacy git-mirror 收敛到既有 Gitea internal 单一 authority；只做 owning YAML、既有 renderer/定向验证的最小必要修改，禁止人工 mirror、sync、flush、trigger、apply、closeout、PipelineRun 或 runtime patch，也禁止新增合同、租约、安全机制和围栏，完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R4.5_Task_Report.md)。
## R5 [in_progress]

解决 [UniDesk #1900](https://github.com/pikasTech/unidesk/issues/1900)：修复 NC01 PaC watcher 因 ServiceAccount token 的 node/pod 关系失败而 Pending，恢复 GitHub PR merge 驱动的唯一自动交付链，禁止人工补触发、第二权威或旁路，完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R5_Task_Report.md)。

### R5.1 [completed]

只读定位 [UniDesk #1900](https://github.com/pikasTech/unidesk/issues/1900) 的唯一根因，核对 watcher Pod、ServiceAccount token、node/pod 关系、owning YAML 与最近控制面变更，不改运行面，完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R5.1_Task_Report.md)。

### R5.2 [in_progress]

按 [UniDesk #1900](https://github.com/pikasTech/unidesk/issues/1900) 实施最小持久化修复和定向验证，不新增第二交付权威、合同、租约、安全机制或围栏，完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R5.2_Task_Report.md)。

### R5.3

合并修复 PR 后只观察新的 GitHub webhook→Gitea mirror→PaC→Tekton→GitOps/Argo 自动事件，验证 watcher Ready、TaskRun 创建及 AgentRun/Monitor runtime 收敛，不人工补齐既有 queued run，完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R5.3_Task_Report.md)。

## R6 [in_progress]

执行 [UniDesk #1981](https://github.com/pikasTech/unidesk/issues/1981)：固定仓库产品功能 schema 路径为 config/feature-config.schema.json，CI/CD 只读校验 schema 语法、值匹配和功能到唯一配置变量的一对一关系；缺失、非法、不匹配或重复仅输出 typed warning 并投影到 OTel/status/history/debug-step，必须继续 artifact、GitOps/Argo 和滚动上线，禁止写回、默认值、变量删除、功能关闭、架构切换及其他补救操作，完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R6_Task_Report.md)。
