pr-finish 是面向收尾拉取请求(PR)的技能,在 PR 已审查收敛,并且已获得合并、收尾或交付到主分支的授权后使用;授权可以来自本任务早先的指令,不需要重复确认。
用途
把“和最新目标分支整合、验证、合并”一次完成,并在合并后处理交接、关联问题与工作树/分支回收。
规则来源
仓库特有的部分(检查入口、合并入口、合并方式、交接约定)一律读取仓库自己的文档,例如 AGENTS.md、贡献指南、质量门禁文档;仓库没有声明时,使用技能给出的默认做法。
主要步骤
-
核对起点:确认 PR 为 OPEN、本地 HEAD 等于远端 PR head、工作区干净。有未提交改动(含上一轮已验证未推的修复)先按 $git-prefs「提交」处理并推送,该提交也属于本次收尾的受审提交。
-
整合目标分支:先 fetch,再把最新的 origin/<base> 合进当前分支(git merge origin/<base>);仓库文档规定了整合方式就照它。默认用 merge,只需把每处冲突解决一次,并保留已推送历史和审查评论的锚点。
-
清理基线:修掉目标分支带入、阻塞合并或构成重大风险的编译、lint、测试问题,与本 PR 改动分开提交;测试失败按 $pr-review-loop「测试失败处置」分诊处置,其余按该技能「分级」记录。提交并推送后运行仓库声明的合并前检查,完成标准是远端 PR head 的必需检查实际通过。
-
收尾复核:第 1 至 3 步推送触发的审查沿用 $pr-review-loop 的账本与预算,轮数不重置;只核对本次整合和基线修复带来的改动,blocker 修完再推,其余按「分级」回复,不为此开新的修复轮;审查者超时按「等待上限只花一次」跳过。
-
合并:用仓库声明的合并入口;没有声明时 gh pr merge <号> --match-head-commit <HEAD>,合并方式取仓库默认。合并的就是第 4 步复核过的提交。若期间目标分支又前进:允许时直接合并,要求最新时回到第 2 步。完成标准是 PR 状态为 MERGED。
-
交接后续工作:在仓库 AGENTS.md 和 .agents/skills/ 里找交接约定;有遗留事项或需求还有未完成端/阶段时,按约定输出交接提示词并写明交给哪台设备。测试遗留项沿用 $pr-review-loop 的记录;其他不阻塞的基线问题按仓库约定登记,独立问题在问题追踪里各建一条;只有属于本需求后续段的才写交接提示词。
-
关闭关联问题:整条需求全部落地时按对应技能标为完成;还有后续 PR 时保持进行中。
-
回收工作树与分支:调用本技能即视为用户明确要求删除当前工作树——删除远端分支(已自动删除则跳过);记下主仓库 git 目录与当前分支名;在链接工作树中时,先切到工作树根,运行 node <git-prefs 技能目录>/scripts/empty-worktree.mjs(清空内容、保留目录壳,使绑定此目录的 shell 继续可用),再 git --git-dir <主仓库 git 目录> branch -D <分支>;删工作树只用这个脚本,目录一旦消失,本线程 shell 会永久失效。在主检出上则切回目标分支、拉取后删除本地分支。本机装了 T3 Code(有 ~/.t3/worktrees)时,再跑 $t3-code 的 t3-worktree-gc.mjs --purge-build 预演,确认后加 --apply。
汇报内容
合并提交、整合时解决的冲突与基线修复、收尾复核结果(审查者、轮数、有无 blocker)、交接提示词、关联问题状态、回收结果。
适用场景与限制
适用于已获授权、审查已收敛的 PR 收尾;不适用于尚未获得合并授权或审查未收敛的 PR。具体合并入口、检查命令、交接约定以各仓库文档为准;相关资料未提供更多细节。