Skip to main content
skill CX Codex

babysit · michael-denyer — Claude Code skill: shepherd an open PR to merge

Watches an open pull request: repairs broken CI, handles the easy review notes, and keeps nudging the branch until it can be merged.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add michael-denyer/pstack-claude --skill babysit -a claude-code
Open on GitHub

What babysit does

The skill is a loop built on the gh CLI. It starts by pulling the PR state with gh pr view <number> --json ..., then works through issues in order: merge conflicts, failed checks, review comments, notes from bots such as Bugbot. Each case hands off to a companion skill — fix-merge-conflicts, fix-ci, get-pr-comments.

A mechanical note (rename this, add a guard clause, fix formatting) gets applied directly, with the original comment quoted in the commit message. When the intent is a judgement call, the skill does not guess. It skips the edit and replies with what it would have done, and asks first on security and data findings.

Pacing comes from the loop skill. An active run uses gh pr checks --watch, which blocks until checks settle. Waiting on a reviewer means a 20–30 min heartbeat, and watching for fresh comments runs hourly. After three rounds of fix, push and recheck without full green, it stops and hands control back. The hard rules are firm: no history rewrite without your approval, no adjusting assertions to match a broken result, no --no-verify, no marking a failing check as optional.

Inside poteto-mode the Babysit playbook takes precedence and owns mode and stack behaviour. This skill is the standalone entry point for one PR outside such a run.

What it helps with

  • fix a failing CI run on an open PR
  • resolve merge conflicts with the main branch
  • apply straightforward review feedback and commit it
  • sort review-bot findings into fix, dismiss and ask
  • get a branch to the point where gh pr ready makes sense

Example prompts for the agent

  • Keep an eye on PR #128 until it goes green
  • Fix the failing checks on this branch and push
  • Work through the review comments on my PR, apply the mechanical ones yourself

How to install babysit

1Skills CLI (Vercel)

npx skills add michael-denyer/pstack-claude --skill babysit -a claude-code

2Manually: put the files in place

~/.claude/skills/babysit/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/babysit/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about babysit

How do I install babysit in Claude Code?

Run npx skills add michael-denyer/pstack-claude --skill babysit -a claude-code. The skill file lands at ~/.claude/skills/babysit/SKILL.md.

What does babysit do?

It tracks an open pull request: reads state via gh, resolves conflicts and failing CI, applies mechanical review edits, and tells you when the branch is ready to merge.

How is it different from Cursor's built-in /babysit?

It covers the same job for Claude and is written from scratch, with a gh CLI loop paced by the loop skill. Cursor's code is closed, so nothing was ported.

Source text

SKILL.md · MIT
---
name: babysit
description: Watch an open PR — fix failing CI, handle the straightforward review comments, and drive it to a mergeable state. Claude Code analog of Cursor's built-in /babysit. Use after opening a PR when the user wants the agent to shepherd it without re-prompting.
---

# Babysit a PR

On Codex, read the [platform mapping](../poteto-mode/references/codex-tools.md), including its per-skill notes, before following this skill.

On GitHub Copilot, read the [platform mapping](../poteto-mode/references/copilot-tools.md), including its per-skill notes, before following this skill.

On Muse, read the [platform mapping](../poteto-mode/references/muse-tools.md), including its per-skill notes, before following this skill.

Claude Code analog of Cursor's built-in `/babysit`. The implementation is a loop over `gh` CLI plus the Claude Code `loop` skill for pacing.

Inside poteto-mode, the **Babysit** playbook ([`../poteto-mode/playbooks/babysit.md`](../poteto-mode/playbooks/babysit.md)) supersedes this skill: it owns mode declaration, the merge frontier, stack safety, and the `watch-pr` watcher. This skill stays the standalone `/babysit` entry point for a single PR outside a poteto-mode run.

## When to use

- There's an open PR and the user explicitly wants it kept green, and you are not already inside a poteto-mode run (the playbook owns that case).
- The user invokes `/babysit` directly.
- A subagent that opens a PR does NOT babysit — return to the parent and let the parent decide.

## Steps

1. **Fetch PR state.**

   ```bash
   gh pr view <number> --json number,title,state,mergeable,reviewDecision,statusCheckRollup,mergeStateStatus,comments,reviews
   ```

2. **Triage in priority order.**
   - Merge conflicts (`mergeStateStatus == DIRTY`): run the **fix-merge-conflicts** skill. Force-push only if the branch is yours and not shared.
   - Failing checks (`statusCheckRollup` entries with `conclusion: FAILURE`): run the **fix-ci** skill. Root-cause the failure; fix the underlying code or test; commit; push.
   - Review comments: run the **get-pr-comments** skill for the summary, then act only on feedback you actually agree with. When a comment has a single mechanical answer — a rename, a guard clause, a formatting nit — make the edit and quote the comment in the commit message. When it hinges on a judgement call, or you can't tell what's being asked, don't guess: leave it and reply with what you would have done.
   - Review-bot comments (Bugbot and similar automation): classify fix/dismiss/ask before acting, per [`bugbot-triage.md`](../poteto-mode/references/bugbot-triage.md). Ask by default on security, data, and high-severity findings.

3. **Loop.** Use the Claude Code `loop` skill to pace re-checks. Pick the interval from what you're watching:
   - Active CI run: poll `gh pr checks --watch` (it blocks until checks finish, so no separate loop interval needed).
   - Awaiting reviewer: 20–30 min heartbeat.
   - Idle but want to catch new comments: hourly.

4. **When to stop.**
   - Build is green, every comment resolved, branch merges cleanly → call it ready.
   - You've run three rounds of fix → push → recheck and it still isn't fully green → stop, summarise what's still broken, and hand control back.
   - The next fix would force a design choice → pause and put it to the user with `AskUserQuestion`.

5. **Report.** Summarize fixes applied, comments addressed, comments deferred (with reason), current PR status. Cite each commit by SHA.

## Hard rules

- Don't rewrite history on a branch others may have pulled. If a rebase or force-push looks necessary, clear it with the user first.
- Don't tweak a test's expected values just to get a pass. Only change an assertion when the behaviour genuinely changed and the assertion was pinned to the old behaviour.
- Never skip hooks (`--no-verify`).
- Never bypass a failing check by marking it as not required.
- `gh pr ready` only when all checks are green and no unresolved review comments remain.

## Cross-refs

- Opening a PR does not start a babysit; inside poteto-mode the Babysit playbook owns the request and starts only when asked.
- Use `interrogate` before opening if the diff is contested; once open, babysit takes over.
- Use `unslop` on any prose you write here (PR comments, commit messages, status reports).

## Provenance

This is a Claude Code analog of Cursor's `/babysit`, not a port — Cursor's implementation is closed source. The skill is independently authored, with its own prose and structure; the workflow is informed by Cursor's public `/babysit` behavior. The only overlap with other PR tools is the `gh` CLI commands it runs, which are functional invocations rather than copied text.

© michael-denyer · MIT · michael-denyer/pstack-claude

Similar skills

All skills for Git and GitHub →

babysit by other authors comes first.

From the same set7

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor