babysit
Babysit a pull request: wait for reviewbot, fix what holds up, push, and repeat until the review comes back clean, then merge.
Skill by KroniK907
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/kronik907-babysit
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Shell scripts
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/babysit
What's inside
- Skill name
babysit- Description
- Babysit a pull request: wait for reviewbot, fix what holds up, push, and repeat until the review comes back clean, then merge. Use when asked to babysit, shepherd, or land a PR.
- License
- MIT
- Instructions
- 102 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (2)
- SKILL.md
- wait-for-review.sh · scripts/
SKILL.md (first lines)
# Babysit
**Babysitting** takes a PR from open to merged. A **sol-loop** reviews the change, you push the fixes Sol and you agree on, then you wait out CI, clear human feedback, and merge. Sol is the only reviewer. No review bot runs on the team's repos, so never wait for one.
Read the `sol-loop` skill first if it is not already loaded. It owns the review rounds, the budget and the ledger. Read the **subagent** skill before you delegate any fix. The Sol reviewer, triage and the merge decision stay with you. Fixes go to the cheapest tier that will land them.
## Waiting
Every wait on GitHub goes through a watcher: CI, comments, reviews, merge state, the base branch. Never write your own watcher, polling loop, or `sleep` loop, and never use `gh pr checks --watch` or `gh run watch`. Use one watcher per PR: `watch_pull_request` in T3 Code, `pr-wait` everywhere else. Never run both on the same PR. Every watcher on a GitHub account shares one rate limit.
### In T3 Code: `watch_pull_request`
Handle the existing checks and comments first. Then call `watch_pull_request` and end your turn. T3 Code wakes you with a message when a check fails, the required checks pass, someone comments or reviews, or the branch conflicts.
- **Only the thread that owns the PR watches it.** If you are a delegated child task (a builder, a babysitter, a Sol round, any `delegate_task` child), never call `watch_pull_request`. The parent owns the PR. Wait with `pr-wait` instead. Do not watch PRs you are not working on.
- **A wake is news, not a merge decision.** Check the merge gate yourself.
- **Unwatch when you hand off.** A watched thread stays in Working and out of the user's inbox. When you stop (ready, blocked, or asking the user a question), call `unwatch_pull_request` first. A merge or close ends the watch on its own.
- **"Stopped watching, could not read it"** usually means GitHub's rate limit is used up. Run `gh api rate_limit --jq .resources.graphql` before you watch again. If `remaining` is near 0, wait for `reset` with one background command, then watch again. Never watch again in a tight loop.
### Everywhere else: `pr-wait`
Wait with `scripts/pr-wait` from this skill's directory. Resolve the folder with `readlink -f` and use the script's absolute path. Always pass `--no-reviewers`, because no review bot runs right now.
```bash
pr-wait <pr> --no-reviewers [--repo owner/name] [--until ready|green|any-change]
```
It prints one line per real event. It exits 0 when the `--until` condition is met or the PR merges, 1 when it needs you (a required check failed, conflicts, unresolved threads, a BEHIND branch, PR closed), and 2 on bad input.
- `ready` (default): required checks green, no unresolved threads, and the branch is not BEHIND. Use this to babysit.
- `green`: required checks only. Use it to wait for CI after a push.
- `any-change`: exit on the first event.
In Claude Code, run it with the Monitor tool (`timeout_ms: 3600000`), so each line wakes you. Without a monitor, run it as one long command. It ends on its own.
Start it again after you push, after you handle an exit 1, and after a resume. It remembers what it already reported, so nothing that arrived in between is lost. If it says another pid already watches the PR, do not start a second one. Kill the old one only if its events do not reach you.
With either watcher: when an event needs no action, end your turn without a message. Never post or say "still waiting".
## GitHub rate limits
`gh pr create`, `gh pr view`, and `gh pr checks` use GraphQL. When GraphQL is used up, the REST limit is separate and usually still has room. Use `gh api repos/<owner>/<repo>/pulls/<n>` to read a PR, and `gh api repos/<owner>/<repo>/commits/<sha>/check-runs` for checks.
## Steps
### 1. Set up
Find the PR with `gh pr view --json number,url,isDraft,state,headRefOid,baseRefName`. If there is none, open one as the `pull-request` rule describes. If it is a draft, run `gh pr ready <N>`.
Record a **merge hold** if the user said anything like "wait for me before merging", "don't merge", or "let me look first". Also check the PR body, its labels, and its comments for one. Labels such as `do not merge`, `hold`, or `wip` count, and so does a human comment asking to hold.
**Done when:** you have the PR number, the PR is open and ready for review, and you know whether a merge hold applies.
### 2. Run the sol-loop
Run the `sol-loop` skill on the PR, with its base as the PR's `baseRefName`. If a sol-loop in this session already approved the PR's current diff, as `full-send` does before it files, push anything unpushed and go to step 3. Make one-line fixes yourself. Delegate the rest by the **subagent** skill's tiers: a nit or rename is an **edit**, a finding you had to trace through call paths is **build**, and security or design findings are **hard**. Read every diff a subagent produced before the next round.
Babysitting counts as the user asking to update the PR. When the loop stops:
- **Agreed:** run the repo's fast checks, as named in `AGENTS.md`, the CI config, or the package scripts: build, lint, format, and unit tests for the code you changed, plus any test you added. Leave slow suites, such as integration or browser tests, to CI unless CI doesn't run them. Run every check in the foreground and read its result. Commit, push once, and add the sol-loop line to the PR body. Keep the pushed head as the **reviewed SHA**, and update it after each later push you make.
- **Stuck:** a finding is still disputed or the budget ran out. Report both sides to the user and stop without merging.
**Done when:** Sol approved the current diff and the fixes are pushed, or you have stopped and reported a stuck loop.
### 3. Wait and handle feedback
Start the watcher (see Waiting). Act on each event it reports, and only on checks and comments newer than the latest push.
- **A failed check:** tell repository failures from infrastructure flakes. Rerun a flake once. Fix a real failure, run the fast checks, and push.
- **A human comment, review, or thread:** read it in full. Conversation comments and review summaries come from `gh pr view <N> --json comments,reviews`. Inline comments come from `gh api --paginate repos/{owner}/{repo}/pulls/<N>/comments`. Give each finding one verdict:
- **fix:** you checked it against the code and it holds up. Fix it, push, and resolve the thread.
- **set aside:** it is wrong, out of scope, or conflicts with what the user asked. Reply with the reason and resolve the thread.
- **The base moved onto this PR's files, or the branch is BEHIND or DIRTY:** merge the base branch in, run the fast checks, and push. Never rebase or force-push a PR branch.
- **An overlapping PR makes this one obsolete:** stop watching, report it to the user, and ask before closing the PR unless closure was explicitly authorized.
A human comment that asks for a merge hold sets the hold from step 1. Instructions from a human reviewer count as user direction. Use the `leaving-pr-comments` skill for every comment you post on the user's behalf. Screenshots and videos help, when you have a way to upload them.
Keep the PR at the size the user's goal needs. Feedback loops tend to grow a PR one cheap-looking fix at a time. Fix real bugs in the intended case. Decline the rest with a written reason, and list them as follow-ups: unneeded tests, guards for edge cases that do not matter, extra integration or compatibility, and small performance costs. Prefer the fix that deletes or narrows code.
A change to behavior code after Sol approved goes through a step 2 delta round before you push: Sol reviews only the change since the reviewed SHA. That covers human fixes, CI fixes, conflicts resolved by hand, and pushes from someone else. Comment, doc, or format-only fixes need no new round.
**Done when:** `pr-wait --until ready` exits 0, or in T3 Code the merge gate passes on the latest head: required checks green, no unresolved threads, not BEHIND or DIRTY.
### 4. Merge
With a merge hold, skip the merge and go to step 5.
Without one, re-check right before merging, because people act while you wait. Run `git fetch`, then `gh pr view <N> --json headRefOid,mergeStateStatus,body,labels,comments,reviews`, and fetch the inline comments again.
- `headRefOid` is not the reviewed SHA: someone pushed. Run a step 2 delta round on their change, then go back to step 3.
- The PR is BEHIND or DIRTY, or base commits that landed after the last green run touch this PR's files: merge the base in, push, and go back to step 3.
- The body, a label, or a new comment asks for a hold: set the merge hold and go to step 5.
- A new finding: triage it as in step 3.
Merge with the method the repo uses for its recent PRs. Squash is the default when it is allowed: `gh pr merge <N> --squash --match-head-commit <reviewed-sha>`. The flag makes GitHub refuse the merge if the head moved after your check. Leave out `--delete-branch` inside a worktree, because it tries to check out the base branch and fails.
**Done when:** `gh pr view <N> --json state` reports `MERGED`, or a merge hold, a moved head, a stuck loop, or a failing check has stopped the merge.
### 5. Report
Call `unwatch_pull_request` first if you watch the PR and it did not merge. Tell the user:
- the sol-loop report: rounds, model, fixed and declined findings with reasons
- which tier made each fix
- what human feedback you set aside, and why
- the merged PR URL, or what is holding it: the merge hold, a failing check, or a stuck loop
**Done when:** the user has the report.From KroniK907/agent-config, MIT.
More from KroniK907/agent-config
- 0.567score
backlog-sweep
KroniK907
Sweep a repo's open GitHub issues: close what shipped or went stale, narrow what is half done, and label small quick work priority: high.
SkillAFreshness: AClaude Code +9 - 0.565score
hatch
KroniK907
Open a hatch: serve a dev server, static page, report, or prototype on a private tailnet URL with the hatch CLI.
SkillAFreshness: AClaude Code +9 - 0.565score
subagent
KroniK907
Pick the model and reasoning effort for a subagent before you spawn one.
SkillAFreshness: AClaude Code +9 - 0.561score
ccr-summary
KroniK907
CCR summary, summarize a CCR, Consumer Confidence Report PDF, water quality report PDF, 40 CFR 141.156, § 141.156 summary
SkillAFreshness: AClaude Code +9 - 0.561score
commit
KroniK907
commit this chat, git commit agent output, snapshot chat changes, commit work from this conversation, commit only this session's changes, split commits from…
SkillAFreshness: AClaude Code +9 - 0.561score
writing-for-agents
KroniK907
writing for agents, create or edit skills, AGENTS.md, CLAUDE.md, project rules, skill description pointers, context pointers, leading words
SkillAFreshness: AClaude Code +9 - 0.561score
improve-codebase-architecture
KroniK907
deep modules, shallow modules, improve architecture, refactoring opportunities, consolidate tightly-coupled modules, module deepening, architectural friction
SkillAFreshness: AClaude Code +9 - 0.558score
triage-issue
KroniK907
triage, bug report, file issue with fix plan, investigate a problem, root cause and TDD fix plan, what's broken
SkillAFreshness: AClaude Code +9 - 0.553score
wayfinder
KroniK907
Overview of the wayfinder map lifecycle - map, grill, build, release - and which skill runs each step.
SkillAFreshness: AClaude Code +9 - 0.553score
write-a-skill
KroniK907
write-a-skill, create a skill, write a skill, build an agent skill, new agent skill
SkillAFreshness: AClaude Code +9 - 0.552score
taste-skill-v2
KroniK907
Anti-slop frontend skill for landing pages, portfolios, and redesigns.
SkillAFreshness: AClaude Code +9 - 0.539score
code-review
KroniK907
Review a PR, branch, or diff since a ref on two axes - standards and spec - and report or post the findings.
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 7
- Last commit (this folder)
- Oct 8, 2026 (20 days ago)
- Last release
- Sep 23, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/KroniK907/agent-config
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from KroniK907
- 0.567score
backlog-sweep
KroniK907
Sweep a repo's open GitHub issues: close what shipped or went stale, narrow what is half done, and label small quick work priority: high.
SkillAFreshness: AClaude Code +9 - 0.565score
hatch
KroniK907
Open a hatch: serve a dev server, static page, report, or prototype on a private tailnet URL with the hatch CLI.
SkillAFreshness: AClaude Code +9 - 0.565score
subagent
KroniK907
Pick the model and reasoning effort for a subagent before you spawn one.
SkillAFreshness: AClaude Code +9 - 0.561score
commit
KroniK907
commit this chat, git commit agent output, snapshot chat changes, commit work from this conversation, commit only this session's changes, split commits from…
SkillAFreshness: AClaude Code +9 - 0.561score
ccr-summary
KroniK907
CCR summary, summarize a CCR, Consumer Confidence Report PDF, water quality report PDF, 40 CFR 141.156, § 141.156 summary
SkillAFreshness: AClaude Code +9 - 0.561score
improve-codebase-architecture
KroniK907
deep modules, shallow modules, improve architecture, refactoring opportunities, consolidate tightly-coupled modules, module deepening, architectural friction
SkillAFreshness: AClaude Code +9
Cite this page
babysit skill. Agent Mart. https://agentmart.dev/skills/kronik907-babysit (last updated 2026-10-24)