About babysit
babysit is a standalone pstack skill for keeping an open pull request on track in Claude Code. It uses the gh CLI to inspect conflicts, checks, and review comments, then guides fixes and rechecks until the PR is ready or needs a decision.
Key features
- 01Fetches pull request status with gh
- 02Prioritizes conflicts, failing checks, and reviews
- 03Guides fixes and paced rechecks
- 04Sets conditions for stopping or escalating
- 05Reports changes and PR status
Use cases
- 01Keeping an open PR green
- 02Addressing failing checks and review comments
- 03Monitoring a PR until it is ready or needs input
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ ericlitman/ open-pstack --skill babysitAfter installing, type/babysitin Claude Code to confirm it loaded.
Details
From the project READMEBabysit a PR
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.
Platform note. On Codex or another non-Claude runtime, the Claude tool names and Claude built-in skills named below (loop, AskUserQuestion) are Claude defaults. Resolve them via codex-tools.md.
Inside poteto-mode, the Babysit playbook (../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
/babysitdirectly. - A subagent that opens a PR does NOT babysit — return to the parent and let the parent decide.
Steps
-
Fetch PR state.
gh pr view <number> --json number,title,state,mergeable,reviewDecision,statusCheckRollup,mergeStateStatus,comments,reviews -
Triage in priority order.
- Merge conflicts (
mergeStateStatus == DIRTY): rebase or mergemain; resolve; force-push only if the branch is yours and not shared. - Failing checks (
statusCheckRollupentries withconclusion: FAILURE): pull logs withgh run view <run-id> --log-failed. Root-cause the failure; fix the underlying code or test; commit; push. - Review comments from human reviewers (
gh pr view --json comments,reviews): 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 as fix, dismiss, or ask before acting, per
../poteto-mode/references/bugbot-triage.md. Follow the rubric's Ask by default categories, including security, data, and high-severity findings.
- Merge conflicts (
-
Loop. Use the Claude Code
loopskill 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.
- Active CI run: poll
-
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.
-
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 readyonly when all checks are green and no unresolved review comments remain.
Cross-refs
poteto-modeopens here after a PR is opened.- Use
interrogatebefore opening if the diff is contested; once open, babysit takes over. - Use
unslopon 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.