babysit-pr

babysit-pr is a skill for Claude Code, Codex from auerbachb/claude-code-config. It costs 172 tokens per session (16,560 once invoked), scanned A, original, MIT.

A watcher for one GitHub pull request, which is a proposed code change awaiting review and merging. It repeatedly checks the request and chooses the next action when its state changes.

In plain words
What is it for?
Use it to monitor an eligible pull request, dispatch fixes for recoverable blockers, and hand off merge-ready requests.
Why use it?
It removes the need to monitor a pull request manually. It can send recoverable problems for fixing or finish when the merge requirements are met.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/auerbachb/claude-code-config/babysit-pr
Any agent
npx skills add auerbachb/claude-code-config --skill babysit-pr
Clone the repo
git clone --depth 1 https://github.com/auerbachb/claude-code-config

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for babysit-pr

README.md
[![agentmods](https://agentmods.dev/badge/skills/auerbachb/claude-code-config/babysit-pr.svg)](https://agentmods.dev/skills/auerbachb/claude-code-config/babysit-pr)
Your own site
<a href="https://agentmods.dev/skills/auerbachb/claude-code-config/babysit-pr"><img src="https://agentmods.dev/badge/skills/auerbachb/claude-code-config/babysit-pr.svg" alt="Measured on agentmods" height="20"></a>
Per session 172 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 16,560 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00172 $0.16560
Opus 5 $0.00086 $0.08280
Sonnet 5 $0.00034 $0.03312
Haiku 4.5 $0.00017 $0.01656

Measured 4d ago against content hash 663bb035c9e1, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

babysit-pr scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/babysit-pr/SKILL.md · 862 lines

How it starts

The opening of the file, as written. The whole thing — 862 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Watch one PR and drive it toward merge without looping forever. Each tick reads the PR's state through the shared scripts, classifies it, and dispatches the right skill — /fixpr to fix recoverable blockers, /wrap to merge when the gate is met — then re-arms the poll until a terminal condition fires.

/babysit-pr is a thin orchestrator: it never re-implements PR-state aggregation, the merge gate, fix logic, or the merge flow. It reads pr-state.sh + merge-gate.sh, and it dispatches /fixpr / /wrap. All code-verification, thread resolution, CI fixing, and merge-gate enforcement stay inside those skills (fixpr/SKILL.md, wrap/SKILL.md, cr-merge-gate.md). This skill only decides which to call and when to stop.

This is reused by /pr-monitor-and-manage (issue #460): that skill invokes /babysit-pr per discovered PR rather than re-implementing the per-PR decision tree.

Safety boundaries (HARD STOPS — non-negotiable, safety.md / #450)

/babysit-pr is read-only plus the dispatches below. It MUST NOT:

  • Never babysit a PR you did not author (issue #733, safety.md). Enrolling a PR in a watch loop is a "touch". Before the first tick, gate the target with "$PR_AUTHORSHIP_SH" <PR> (exit 0 = yours). Not yours / undetermined → refuse with one line naming the authorship guard, and do NOT enrol — unless the user named this specific PR in chat this session (per-PR override; say you are operating under it). polling-state-gate.sh --ensure-session also refuses non-author enrolment as a fail-safe (bypass only with --allow-nonauthor under that override).
  • Never modify branch protection — no calls to .../branches/.../protection.
  • Never dismiss human-authored reviews. Only /fixpr's dismiss-stale-bot-changes.sh (bot allowlist, wrong commit_id) may dismiss, and only bot reviews.
  • Never resolve a review thread itself — thread resolution happens only inside /fixpr Steps 1–4 after code-verification. /babysit-pr does not call resolveReviewThread.
  • Never bypass /fixpr's code-verification step — it dispatches the full /fixpr workflow, never a shortcut.
  • Never post @coderabbitai full review without cr-review-hourly.sh --check passing first. The only sanctioned trigger path in this skill is the T1b pre-flight (pr-preflight.sh, issue #493), which gates CR on cr-review-hourly.sh (--check + atomic --record-explicit) automatically, never triggers Greptile, and never flips another user's draft. /fixpr owns any further triggers after a push.

A human CHANGES_REQUESTED on HEAD is hard-blocked → record and exit. Never auto-dismiss it.

  • Auto-resolve mode (--auto-resolve-conflicts) performs unattended rebases and force-pushes. The resolver (.claude/skills/merge-conflict/resolve_merge_conflicts.py) only applies mechanically-simple hunks per its "when in doubt, complex" contract; any complex hunk aborts the rebase and reports the specific file + line range + reason instead of applying it. Because unattended force-pushes are a bigger authorization step than the rest of the dispatch table, this mode is opt-in — the default on CONFLICTING is a conservative stop that recommends /merge-conflict.

Read the full file on GitHub · 862 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 862 lines · 172 tokens per session scan A 663bb035c9e1

Subscribe to this mod's changes

babysit-pr is a skill published in the GitHub repository auerbachb/claude-code-config (5 stars, last pushed 5d ago), licensed MIT. It adds 172 tokens to every session and 16,560 once invoked, about $0.0009 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.