mcpField
B
babysit-pr

babysit-pr

github.com/doodledood开发78103 次安装1 天前更新
代码仓库

关于 babysit-pr

babysit-pr 是推动现有 Pull Request 完成作者侧流程的技能,直至其可合并、由人员合并,或需要人员处理。它以 Manifest 指导工作,可从仅追加的日志恢复上下文,并且不会自行合并 PR。

主要功能

  1. 01从当前分支推断 Pull Request,或接收其 URL
  2. 02恢复或为 PR 创建 Manifest
  3. 03通过 do 执行 Manifest 工作流
  4. 04以仅追加日志保存尝试记录和上下文
  5. 05支持单步 CI 运行并报告等待状态

适用场景

  1. 01处理 PR 中可执行的 CI 故障和评审意见
  2. 02依据已记录的 Manifest 和日志恢复 PR 工作
  3. 03每次 CI 调用推进一次 PR
  4. 04准备好待合并的 PR,但不执行合并

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/doodledood/manifest-dev --skill babysit-pr

安装后在 Claude Code 中输入/babysit-pr确认已加载。

详细介绍

通过运行 manifest 工作流来跟进现有 PR:推动作者侧生命周期进展,直到状态变为绿色且可合并。审查者(无论是人员还是技能)只能通过 GitHub PR 状态进入此流程。

输入。 可接受 PR URL、--manifest <path>、两者兼有,或两者皆无,另可指定 --ci,并可通过 --no-log 禁用默认日志。不提供 PR URL 时,推断当前分支的上游/开放 PR;如果无法推断出唯一一个 PR,则停止并提供可执行的错误提示。--manifest <path> 提供最可靠的 PR 依据,并跳过重新综合。若未提供 --manifest,则恢复此 PR 的早前跟进任务在日志(日志记录)中记录的 Manifest,视同通过了 --manifest,以便继续采用此后所做的修订;只有在找不到仍然存在的已记录 Manifest 文件时,才调用 define,并使用 --babysit <pr-url> --autonomous,读取其 Manifest complete: 路径,然后继续。

日志记录。 除非指定 --no-log,否则应在整个跟进过程中保留持久的追加式日志,以便温热会话在生命周期中途压缩后仍能保持连续性——包括已经尝试并放弃的事项,以及操作备注(重新触发、等待)。日志保存了 GitHub 状态无法还原的死路记忆:尝试后又撤销的修复方案,以及经过考虑但因未产生提交而被放弃的方法。默认路径为 ~/.manifest-dev/logs/babysit-<owner>-<repo>-<N>.md(~ = $HOME / %USERPROFILE%;创建目录,仅当主目录不可写时才回退到可写的临时路径)。路径以 PR 为键,因此再次调用时会找到并复用现有文件,并附加新的运行边界;如果文件不存在,则创建一个。运行一旦解析或综合出 Manifest,就立即追加一行 Manifest: <absolute path>,后续运行恢复此类记录中最新的路径。指定 --no-log 或没有日志时,就没有可供恢复的记录,因此每次运行都会重新综合;若要保留已跟进的 Manifest,请传入 --manifest。只允许追加,绝不重写先前条目。将先前的证据、问题处置结果和已验证的修复方案传给 /do,以便依据当前标准和 PR 状态检查其适用性。在临时运行器上日志不可用时,根据 GitHub 重建当前 PR 状态,并记录无法恢复先前放弃的尝试。

PR 依据。 Manifest 是跟进任务的意图来源:优先使用通过 --manifest 传入的文件,其次是日志记录的文件,最后才是 define 根据拉取请求综合出的文件。评论是信号,而非权威依据;单凭评论并不要求修改代码或修订 Manifest。若项目有 NORTH_STAR.md——通常已通过项目上下文文件载入上下文——应将其作为对该意图的持续检查,而不是另一种意图来源:它不包含此 PR 的意图,因此不能与包含意图的来源进行排序。若某项已采纳的请求在此处有充分依据,但仍与明确陈述的原则相冲突——即 Principles 条目,或旧版九字段格式 North Star 中的 Never:这是该文档中可检查的部分,其余内容用于提供参考,而不用于路由——则应通过修订 Manifest 或升级处理,并明确指出冲突,绝不能默默拒绝。 无人值守启动。 在独立 PR 跟进开始时,在调用 /define 或 /do 之前,先建立持久的 PR 跟进目标设定后备机制。它涵盖清单发现或生成以及 /do,包括跳过 /define 的 --manifest 路径;在 /do 执行期间,它还包含下方的门槛条款。它是本次跟进的外层后备机制:在此看护后备机制存在期间,嵌套的 /define 交接文本和 /do 无人值守启动文本都不应设定或打印与之竞争、范围更窄的目标。逐字输出下方的区块,并将 <pr-url> 替换为相应内容。不得总结、缩短、改写或更改标点。若执行框架提供目标设定、续接或持久完成条件功能,则通过该功能设定;若没有,则以可复制粘贴的形式打印出来,供用户通过自己的续接机制使用。按顺序输出 PR 跟进前缀、PR 目标区块、门槛条款,将其作为一份契约:由你自己写的一句话引出一个不带标签的区块,因为围栏及其标签是本文件的标记,并非你要输出的内容。

Drive the pull request at <pr-url> until it is mergeable, a person merges it, or a blocker requires a person and no useful independent work remains. Never press merge. In CI one-shot mode, report an external wait as pending once no actionable work remains; otherwise keep tending through waits. Discover or synthesize the Manifest for this pull request. Record its path in a checkpoint note as soon as it exists.
Work until the Outcome and every current Acceptance Criterion and Global Invariant in the Manifest hold, each with fresh evidence, the workflow's bounded mandatory build work is settled, and completion has been reported.

The Manifest changes only through the skill that wrote it, never by direct edit. Working claims and evidence methods may be revised on evidence while preserving the Outcome and hard requirements; those need their source's authorization to change. Overall plan approval does not harden agent choices. A changed claim or evidence method returns affected results unverified.

Record compact checkpoint notes as work proceeds: what changed, what was verified, what remains, blockers.

Assume the user is AFK; make authorized decisions without asking questions. Surface blockers promptly and continue useful independent work. Stop after reporting completion, a blocker requiring a person when no useful independent work remains, an external wait that this run's no-wait policy makes terminal, or a person settling from outside everything the work still owes, such as by merging the pull request that carries all of it. Continue while authorized, actionable work remains.
Track the Outcome and every Acceptance Criterion and Global Invariant in the Manifest: its id, its latest verdict, the evidence behind that verdict, and whether that evidence is still fresh relative to the last relevant change to the gate's subject. Completion requires the Outcome and every current gate to hold on fresh evidence, with bounded mandatory build work settled and no unresolved amendment or necessary missing evidence. Unverified, failing, stale, actionably blocked, or escalation-pending gates do not satisfy successful completion. A terminal wait is reported as pending, never as success. A substantive change to a gate's subject after it passed marks it stale until re-judged, while re-reading, re-examining, and cosmetic or no-op edits do not. Never accept unevidenced self-attestation, "looks done", or a summary claim in place of the evidence the gate names.

执行。 解析清单路径后,对该路径调用 do。对于 --ci,向 /do 传递 CI 单次运行/不等待的上下文。除非存在 --no-log,否则将解析后的日志路径传递给 /do,使其在采取行动前读取先前的上下文,并在之后追加内容。存在 --no-log 时,将其转发给 /do,使退出记录的选项在此同样生效——否则,/do 自带的默认执行日志会重新创建用户选择不记录的内容。不要把后续命令作为主要结果打印出来;此技能负责 define→do 链。此后由 /do 负责执行,跟进在其 一次运行如何结束 所列的某条终止路径上结束。

CI 模式。 --ci 表示推进一次完整状态,然后退出。执行所有可立即采取行动的步骤,包括可信自动修复、测试、提交、推送、重新触发、安全的描述同步,以及安全的回复/解决操作。仅剩等待时,报告等待状态并成功退出;不要让运行器通过长时间休眠保持运行。下一个 GitHub 事件、计划运行或手动调度会重新调用此技能。每个 PR 同一时间只运行一个跟进——在 CI 中,使用以 PR 为键的并发组,将新运行排在正在运行的任务之后——因为两个同时运行的任务会读取相同状态并发布相同回复;设置 CI 跟进时要向用户说明这一点,只有当运行期间发现另一个跟进与之重叠时,才在报告中提及。

变更边界。 仅当 PR 头分支可信且可写时,才自动修复并推送:具备正常推送权限;头分支不是受保护分支或基分支;PR 不是带有特权密钥的不可信分叉路径;修复前本地检出与当前 PR 头 SHA 一致;推送是正常的快进分支更新。如果推送因不是快进而被拒绝,则说明运行期间头分支已变更:重新获取 PR,不得从过时的检出推送任何内容;在 --ci 下,本次运行以待处理状态结束,等待新头分支触发的运行,并在报告中注明新头分支,以便下一次运行从该分支开始;否则,从新头分支继续。绝不点击合并,绝不强制推送,绝不推送到基分支。目标是可合并,而非已合并。

失败处理。 如果无法推断 PR、define 不可用、未返回清单路径,或拒绝 PR URL,则停止并说明原因。如果用户提供了 --manifest,则将其作为依据读取,但在 /do 之前不得改写;之后出现的新范围或相互冲突的评论,均通过 /do 的修订/升级处理路径处理。

评论

支持 Markdown