用途:单次自主流水线,识别并解决 PR 的合并阻塞项(冲突、CI 失败、评审评论)。每次调用只处理当前阻塞,跨调用的迭代收敛由 loop 技能负责。
用法:以 $ARGUMENTS 传入 PR;未指定则从当前分支检测,检测失败即停止。草稿 PR 直接跳过。检测后加并发锁,防止同一 PR 并发运行,所有退出路径(含提前退出与报错)都要释放锁。
流水线按阶段顺序执行,每阶段后把发现追加写入 /tmp/pr-merge-prep-log-{pr-number}.md。推送规则:每阶段批量提交后在该阶段边界推送一次。CI 等待规则:推送后读取 CI 状态的下一阶段需等检查到达终态;仍挂起则记为不确定并继续,只有阶段 6 硬性依赖 CI 终态。
阶段 1 合并冲突:更新 PR 分支以包含基分支最新改动(即使 diff 为空),解决单侧修改或非重叠区域的冲突,其余记为未解决;分支更新失败则记“阶段 1 失败”并继续。阶段 2 CI 失败:先分诊——基分支同样失败的预先存在失败跳过;基础设施失败(DNS、偶发测试、无代码原因的超时)触发重跑;代码原因失败读日志定位根因并修复,每个修复为原子提交,提交前跑项目测试,失败则回滚并记为不可解决;找不到测试命令则跳过验证并记录假设。阶段 3 评审评论:一次性分诊所有未解决评论,需结合机器人/人类标注与完整线程上下文,分类为可操作、误报、不确定;可操作则修复、测试、原子提交、回复并解决整个线程;误报则回复理由并解决线程;不确定则回复说明并保持线程开放。每条评论都要回复,作为审计轨迹。阶段 4 最终 CI 检查:若阶段 3 产生提交,按 CI 等待规则等待后检查新失败,最多再走一次阶段 2 流程。阶段 5 PR 描述同步:读取完整 diff 与现有描述,保留无法从 diff 推导的内容(issue 引用、动机、部署说明),重写“变更内容”与标题。阶段 6 重新评审请求:仅当阶段 1 无未解决冲突、无失败/挂起/不确定 CI、可操作与误报线程均已解决、且已分配评审者时执行;diff 为空或 CI 未达终态则跳过。阶段 7 状态报告:追加已采取动作、跳过项及原因、剩余阻塞、PR 合并就绪状态。
限制与注意:机器人评论在推送后会重复出现,本技能只做单遍,不追新发现;线程解决不可逆,须先回复再解决;rebase 会改写历史使评论位置过时,应按内容正常分诊;CI 重跑仅适用于基础设施失败;重写描述可能丢失上下文;崩溃后锁超时视为过期;测试命令发现方式因项目而异,找不到则跳过并记录。