Agent skill

Pull Request Babysitter

by thedotmack in thedotmack/claude-mem

Keeps watching a pull request, fixing real review and CI problems and resolving stale threads, until it is clean and ready to merge.

Apache-2.0Auto-check passedDevelopment

Install Pull Request Babysitter

skills CLI
$ npx skills add thedotmack/claude-mem --skill babysit -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install thedotmack/claude-mem babysit --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/thedotmack/claude-mem.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugin/skills/babysit .claude/skills/babysit && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
babysit
GitHub stars
99k
Token cost
~1.1k tokens
SKILL.md length
314 words
Files
1
Skills in repo
26
Repo updated
First seen
Licence
Apache-2.0

At a glance

Keeps watching a pull request, fixing real review and CI problems and resolving stale threads, until it is clean and ready to merge.

  • Works in 7 steps: Identify the PR number, branch, and base… → Confirm the PR is not draft and inspect… → Watch pending checks until they finish.… → …
  • Monitoring an open PR through CI and review until it can merge
  • SKILL.md covers Workflow, GitHub CLI Checks and Operating Rules
  • Calls gh, jq and git

What it does

The agent stays with a pull request instead of stopping after one check. It identifies the PR number, branch and base, confirms the PR is not a draft, and reads mergeability, checks, review decision, comments and review threads. Pending checks are polled at a practical interval, usually 30-60 seconds unless you ask for another pace.

New comments and unresolved threads are read, with bot summaries treated as useful but checked against the code. Real issues get fixes in focused commits, relevant tests or builds are run, the changes are pushed and the loop starts again. Stale threads are resolved only after the code is verified to address them. Status comes from gh pr view, and unresolved review threads come from paginated GraphQL queries through gh api, filtered with jq.

The loop ends only when checks pass or are intentionally skipped, the review decision is acceptable, and no actionable comments or unresolved threads remain.

When your agent uses it

  • Monitoring an open PR through CI and review until it can merge
  • Working through reviewer and bot comments after pushing a pull request
  • Resolving stale review threads once the fix is verified

Example prompts

  • “Babysit the open PR on this branch until CI is green and every review thread is resolved.”
  • “Keep checking my pull request every minute and fix whatever the reviewers flag.”
  • “Watch the checks on this PR and tell me when it is ready to merge.”

Requirements

  • GitHub CLI (gh), authenticated for the repository
  • jq

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. Identify the PR number, branch, and base branch.
  2. Confirm the PR is not draft and inspect mergeability, checks, review decision, comments, and review threads.
  3. Watch pending checks until they finish. Poll at a practical interval, usually 30-60 seconds unless the user asks for a different cadence.
  4. Read new comments and unresolved review threads. Treat bot summaries as useful, but verify actionable findings against the code.
  5. Fix real issues in focused commits, run relevant tests/builds, push, and return to step 2.
  6. Resolve stale review threads only after verifying the code or generated artifact now addresses the comment.
  7. Stop only when checks are passing or intentionally skipped, review decision is acceptable, no actionable comments remain, and no…

What it can do on your machine

Read from SKILL.md and the folder at commit fa8ab09. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • jq
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh and git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Pull Request Babysitter loads about 1.1k tokens when it runs. Until then it costs about 49 tokens; SKILL.md has 314 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~49
When it runs · the whole SKILL.md, loaded when a task matches
~1.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from thedotmack/claude-mem at commit fa8ab09, republished under its Apache-2.0 licence (© thedotmack). 314 words, ~1,089 tokens.

Download SKILL.mdSave it as .claude/skills/babysit/SKILL.md (or your agent's skills folder).
name
babysit
description
Watch a pull request or review cycle until it is ready to merge. Use when asked to babysit, monitor, or keep checking PR comments, reviews, and CI until all actionable issues are resolved.

Babysit PR

Stay with the PR until it is actually clean. Do not stop after one check pass if comments or review threads are still unresolved.

Workflow

  1. Identify the PR number, branch, and base branch.
  2. Confirm the PR is not draft and inspect mergeability, checks, review decision, comments, and review threads.
  3. Watch pending checks until they finish. Poll at a practical interval, usually 30-60 seconds unless the user asks for a different cadence.
  4. Read new comments and unresolved review threads. Treat bot summaries as useful, but verify actionable findings against the code.
  5. Fix real issues in focused commits, run relevant tests/builds, push, and return to step 2.
  6. Resolve stale review threads only after verifying the code or generated artifact now addresses the comment.
  7. Stop only when checks are passing or intentionally skipped, review decision is acceptable, no actionable comments remain, and no unresolved review threads remain.

GitHub CLI Checks

Use gh pr view for the coarse status:

bash
gh pr view <number> --json \
  number,state,isDraft,mergeable,mergeStateStatus,reviewDecision,headRefOid,statusCheckRollup,url

Resolve the repository owner/name before using GraphQL:

bash
repo_json=$(gh repo view --json owner,name)
owner=$(jq -r '.owner.login // .owner.name' <<<"$repo_json")
repo=$(jq -r '.name' <<<"$repo_json")

Use GraphQL for unresolved review threads. Include pageInfo; omit cursor on the first page, then pass the previous endCursor with -f cursor="$cursor" while hasNextPage is true.

bash
gh api graphql \
  -f query='query($owner:String!,$repo:String!,$number:Int!,$cursor:String){repository(owner:$owner,name:$repo){pullRequest(number:$number){reviewThreads(first:100,after:$cursor){pageInfo{hasNextPage endCursor}nodes{id,isResolved,isOutdated,path,line,comments(last:1){nodes{author{login},body,createdAt,url}}}}}}}' \
  -f owner="$owner" -f repo="$repo" -F number=<number>

Use this loop when a PR may have many review threads:

bash
thread_query='query($owner:String!,$repo:String!,$number:Int!,$cursor:String){repository(owner:$owner,name:$repo){pullRequest(number:$number){reviewThreads(first:100,after:$cursor){pageInfo{hasNextPage endCursor}nodes{id,isResolved,isOutdated,path,line,comments(last:1){nodes{author{login},body,createdAt,url}}}}}}}'
cursor_args=()

while :; do
  page=$(gh api graphql -f query="$thread_query" -f owner="$owner" -f repo="$repo" -F number=<number> "${cursor_args[@]}")
  printf '%s\n' "$page" | jq -r '.data.repository.pullRequest.reviewThreads.nodes[]
    | select(.isResolved==false)
    | [.id,.path,(.line//""),(.isOutdated|tostring),(.comments.nodes[-1].author.login//""),(.comments.nodes[-1].body|gsub("\n";" ")|.[0:240])]
    | @tsv'

  jq -e '.data.repository.pullRequest.reviewThreads.pageInfo.hasNextPage' >/dev/null <<<"$page" || break
  cursor=$(jq -r '.data.repository.pullRequest.reviewThreads.pageInfo.endCursor' <<<"$page")
  cursor_args=(-f cursor="$cursor")
done

Filter unresolved threads with jq:

bash
jq -r '.data.repository.pullRequest.reviewThreads.nodes[]
  | select(.isResolved==false)
  | [.id,.path,(.line//""),(.isOutdated|tostring),(.comments.nodes[-1].author.login//""),(.comments.nodes[-1].body|gsub("\n";" ")|.[0:240])]
  | @tsv'

Resolve a stale thread only when the fix is verified:

bash
gh api graphql \
  -f query='mutation($threadId:ID!){resolveReviewThread(input:{threadId:$threadId}){thread{id,isResolved}}}' \
  -f threadId=<thread-id>

Operating Rules

  • Keep the watcher running while long checks are pending.
  • If a generated file is part of the distribution, verify the source and generated artifact agree before resolving comments.
  • If a bot reports an issue against stale code, confirm whether the thread is outdated or addressed in the latest head.
  • Before final reporting, do one fresh sweep of PR status, unresolved threads, recent comments, and local git status.
  • Report concrete evidence: latest commit SHA, check names and results, unresolved thread count, tests run, and any dirty local files left untouched.

© thedotmack, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in plugin/skills/babysit of thedotmack/claude-mem.

Open the folder on GitHubat commit fa8ab09

Compare with similar skills

Pull Request Babysitter next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Pull Request Babysitter compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Pull Request Babysitter this skillthedotmack/claude-mem99k—~1.1kAutomated safety check: PassApache-2.0
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Renovate Actions PR Reviewbacknotprop/plannotator9.2k—~640Automated safety check: PassApache-2.0
GitHub Copilot PR Finishergithub/gh-aw5.4k—~3.8kAutomated safety check: WarnMIT
Reviewing Changesbitwarden/ios696—~1.1kAutomated safety check: PassGPL-3.0
ReviewdogAgentSecOps/SecOpsAgentKit2201 repos~3kAutomated safety check: PassCustom licence

Similar skills

  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • Renovate Actions PR Review

    backnotprop/plannotator

    Reviews Renovate pull requests that bump GitHub Actions by checking pinned SHAs against upstream tags, scanning changelogs and confirming workflows stay compatible.

    9.2k GitHub stars~640 tokensUpdated today
    DevelopmentAuto-check passed
  • Official

    Drives an open pull request to merge-ready from inside a GitHub Copilot cloud agent, resolving review threads and local checks concurrently, without merging or retriggering CI.

    5.4k GitHub stars~3.8k tokensUpdated today
    DevelopmentAuto-check: warnings
  • Reviewing Changes

    bitwarden/ios

    Official

    Performs comprehensive code reviews for Bitwarden iOS projects, verifying architecture compliance, style guidelines, compilation safety, test coverage, and security requirements.

    696 GitHub stars~1.1k tokensUpdated today
    DevelopmentAuto-check passed
  • Reviewdog

    AgentSecOps/SecOpsAgentKit

    Automated code review and security linting integration for CI/CD pipelines using reviewdog.

    220 GitHub starsUsed in 1 repo~3k tokens
    DevelopmentAuto-check passed
  • Official

    Runs a loop on a GitHub pull request: fetch review state, triage comments into actions, implement them and resolve threads, repeating until nothing actionable is left.

    48k GitHub stars~2.2k tokensUpdated today
    DevelopmentAuto-check passed

More from thedotmack/claude-mem

All 26 skills in this repo
  • Walks you through creating, installing and verifying a custom claude-mem mode, including note types, tags and optional Telegram alerts for chosen memories.

    99k GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Claude-Mem Install for Grok Bot

    thedotmack/claude-mem

    Use this when setting up claude-mem on Grok Bot: local worker plus CMEM Pro observer (default), optional host-login observer, or remote cmem.ai. No Cursor…

    99k GitHub stars~440 tokensUpdated today
    Auto-check passed
  • Claude-Mem Cloud Sync

    thedotmack/claude-mem

    Checks claude-mem cloud sync status and guides you through connecting a cmem.ai Pro account without the sync token ever passing through the chat.

    99k GitHub stars~1k tokensUpdated today
    Auto-check: notes
  • Audits a design against Dieter Rams' ten principles of good design, scores each with evidence, and hands off a make-plan prompt for a new, refined or redesigned outcome.

    99k GitHub stars~4.6k tokensUpdated today
    Auto-check passed
  • Session Handoff Document

    thedotmack/claude-mem

    Writes a HANDOFF.md capturing goal, state, files, failed attempts and next steps so a fresh agent session can continue exactly where this one stopped.

    99k GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Claude-Mem Knowledge Agent

    thedotmack/claude-mem

    Builds focused knowledge corpora from claude-mem observations, loads them into an AI session and answers questions about past work.

    99k GitHub stars~617 tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Pull Request Babysitter

What does Pull Request Babysitter do?

Keeps watching a pull request, fixing real review and CI problems and resolving stale threads, until it is clean and ready to merge. The agent stays with a pull request instead of stopping after one check. It identifies the PR number, branch and base, confirms the PR is not a draft, and reads mergeability, checks, review decision, comments and review threads.

When should I use Pull Request Babysitter?

Pull Request Babysitter fits situations like: monitoring an open PR through CI and review until it can merge; working through reviewer and bot comments after pushing a pull request; resolving stale review threads once the fix is verified.

How do I install Pull Request Babysitter in Claude Code?

Run `npx skills add thedotmack/claude-mem --skill babysit -a claude-code`. Or copy the skill folder (plugin/skills/babysit in thedotmack/claude-mem) into .claude/skills/babysit in your project. Claude Code loads it when a task matches its description.

How do I install Pull Request Babysitter in Codex?

Run `npx skills add thedotmack/claude-mem --skill babysit -a codex`. Or copy the skill folder (plugin/skills/babysit in thedotmack/claude-mem) into .agents/skills/babysit in your project. Codex loads it when a task matches its description.

Can I use Pull Request Babysitter in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add thedotmack/claude-mem --skill babysit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/babysit, .gemini/skills/babysit, .github/skills/babysit and .opencode/skills/babysit in your project.

What does Pull Request Babysitter need to run?

Going by SKILL.md and its folder, Pull Request Babysitter needs the command-line tools its instructions call (gh, jq and git). Our summary lists: GitHub CLI (gh), authenticated for the repository; jq.

Does Pull Request Babysitter access the network?

SKILL.md contains no URLs. Its commands use gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Pull Request Babysitter safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Pull Request Babysitter use?

Pull Request Babysitter is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Pull Request Babysitter use?

About 1.1k tokens (SKILL.md is roughly 4.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Pull Request Babysitter?

Skills that share tags, products or a category with Pull Request Babysitter: PR Babysitter (openinterpreter/openinterpreter, 69k stars), Renovate Actions PR Review (backnotprop/plannotator, 9.2k stars), GitHub Copilot PR Finisher (github/gh-aw, 5.4k stars) and Reviewing Changes (bitwarden/ios, 696 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Pull Request Babysitter?

thedotmack (a GitHub user) maintains it in thedotmack/claude-mem, which has 98,732 GitHub stars. The repository holds 26 skills in this directory. The repository was last updated on October 9, 2026.

Source: thedotmack/claude-mem on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.