用途:关闭那些已超过陈旧阈值、仍在等待作者的贡献者拉取请求(PR)。它既不是合并,也不是 VISION 判定,也不是 factory-ship 关闭。
主要能力与参数:从 triage charter 或调用处读取参数,不要硬编码。repo 为目标仓库的 OWNER/NAME,每次 gh 调用都必填,不要克隆。owner 为队长个人 GitHub 登录名,需豁免,除最后手段移植且原 PR 也已陈旧或已关闭外,绝不关闭该登录名的 PR。disclosure-line 为必需关闭评论的首行原文。stale-days 默认 14。firstmate-mark 为 firstmate 评论必须开头的文本,通常即披露行。结果标记为 closed-stale-<stale-days>d,默认即 closed-stale-14d。
计时规则:等待作者指先前 triage 结果为 waiting-author、waiting-author-no-mistakes 或等价的“请推送/修复 CI/处理评审”且仍由作者负责。时钟从最后一次作者推送、作者评论、作者评审或 diff 上的行内评审线程回复开始。firstmate-mark 评论和机器人评论不重置时钟。仅当时钟至少达到 stale-days 时才关闭。
不得关闭:CLEAN 且可合并的 PR(mergeable MERGEABLE、merge state CLEAN);队长保留项(hold、waiting-captain、captain-hold 或队长仍欠决定的评论);最后手段移植(Last-resort port of #N),除非原 #N 也已超过 stale-days 或已关闭;仍需队长标记的安全项;非最后手段移植的 owner 作者 PR;自动化作者(dependabot、github-actions、release-please、renovate、[bot]、app/、Greptile 等);非等待作者的草稿;最后作者推送、评论或评审新于 stale-days 的任何内容。
必需评论:关闭评论必须以 disclosure-line 参数开头,说明等待作者的 stale-days 天数,并以 HTML 标记结尾:<disclosure-line> this pull request has been waiting on the author for <stale-days> days with no author push, comment, or review, so I am closing it. Reopen if you intend to continue. 以及 <!-- triage: <ISO8601> outcome=closed-stale-<stale-days>d -->。使用 gh pr close <n> --repo <OWNER/NAME> --comment "<body>"。不要省略 --repo。不要克隆目标仓库。除非 charter 要求,不要删除分支。
禁止:不要为整理队列而关闭;不要把 firstmate 或机器人闲聊当作作者活动;不要把 CLEAN 可合并 PR 当作陈旧关闭。