用途
pdd-merge 用于 PDD 拉取请求的合并决策环节。当 Autopilot 在某个 PR 上获得全新的独立检查器 PASS、需要决定合并、写下“would merge”,还是交由人工处理时使用。
主要能力
- 先读取事实:pdd.json 中的 autopilot.mode、issue 作者、检查器结论、PR head 及其检查结果。若 autopilot.mode 缺失或为 off,则按 RUNBOOK §2 由人工合并。
- 区分“证据”与“批准”:全新的独立检查器 PASS 只是证据,绝不等于批准;不得编造批准措辞或推断更广泛的权限。严格的批准、信任与仓库要求的人工评审仍然适用。
- 无检查器结论的 PR(检查器无法运行或未给出结论):添加 pdd:no-verdict 标签,不合并,转下一个 issue。
- 合并前需满足 $pdd-autopilot 的全部合并条件。
- 在 Autopilot 运行中,读取 owner notes 以确认被归属的操作者动作或委托及其范围;对于覆盖的非严格闸门,就绪且前置条件满足后,通过 pdd workflow approve N --said -(安全 stdin,RUNBOOK §2)记录该实际动作,无需重复批准。
- 发布一条 PR 评论,说明人员实际的显式合并授权(不得伪造引用),并给出结论、head 与检查器信息;同时列出用户可见的新措辞(命令名、帮助文本、错误消息)及每处界面变更的截图路径和一行说明,供发布前查看。这些不阻止合并;评论发布失败则停止。
- 若 PR 1 有 PASS 但无运行时结论,则合并,并在该 PR 上添加 pdd:no-verdict 标签。
- 合并前后都要求 pdd autopilot check-base RUN PR 退出码为 0;拒绝情况需报告,合并后不一致视为事故。
- 合并时复查 head,然后运行 gh pr merge PR --merge --match-head-commit <sha>,绝不使用 --auto;head 变化即停止,并回读合并状态。
- PR 1 之后给 issue 添加 pdd:code-pending 标签;代码 PR 之后,对等待它的每个 issue 以“Fixed in #PR”关闭并移除 pdd:code-pending,同时移除 pdd:working 标签。
- 每次自动合并后执行合并后审计。
使用方式
在 Autopilot 流程中,依据 pdd.json 配置与 owner notes 判断授权情况,按上述条件决定 observe(写“Would merge”评论交人工)或 auto(满足条件则自动合并),并严格使用规定的命令与标签操作。
适用场景
适用于配置了 PDD Autopilot、存在独立检查器且需要对其 PR 做合并决策与合并后收尾的工程流程。
限制
严格模式必须由人员终端操作,不得绕过或改写批准字段;没有覆盖性授权时须等待实际批准;缺少检查器结论不得合并。