babysit-pr
Skill127 starsChanged 27 days agoMITView on GitHub
Use when monitoring an open GitHub PR for CI failures, review feedback, mergeability, and safe retries or fixes.
- Commits and pushes
55 other projects use a version of this, 3 of them edited.
Adopted by
Most recently taken up by
- scottwater/skillstheir own version, first seen Nov 8, 2026
- JeffreyFerreiras/ai-skillstheir own version, first seen Nov 8, 2026
- niilohlin/skillstheir own version, first seen Nov 8, 2026
- normalled/apijacktheir own version, first seen Nov 8, 2026
- rock3r/headroomtheir own version, first seen Nov 8, 2026
- marcellocurto/skillstheir own version, first seen Nov 8, 2026
Used with
Projects with it also use leaving-pr-comments, sol-loop and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
scottwaterSkillleaving-pr-comments
Format comments an agent posts on GitHub on the user's behalf. Use whenever leaving a PR comment, review comment, or reply.
Also in 9 projects that use this
scottwaterSkillsol-loop
Review a change with GPT Sol in a loop until both agents agree. Use when the user says sol loop, or when another skill asks for a Sol review.
Also in 7 projects that use this
Nexus-Organization-InfosecSkillfull-stop
Shut down the Full Control phone-bridge completely — end Claude's watch loop, stop the bridge server (server.py started via ensure_server.ps1), and mark Claude offline in the app. Use whenever the user invokes /full-stop or says "stop full control", "stop the watch loop", "shut down the bridge/server", or "stop the ps1". Counterpart of [[full-control]], which starts everything.
Also in 9 projects that use this
assisjpSkillfile-pr
Prepare and open or update an authorized pull request with a concise problem-first description and verifiable evidence. Use when the user asks to create, file, open, or update a PR. Do not use merely to review a diff or when publication is not authorized.
Also in 13 projects that use this
shhacSkillfull-send
Complete an explicitly assigned task autonomously through parallel agents, peer-reviewed decisions, and automatic retries of temporary blockers. Use only when the user explicitly invokes Full Send.
Also in 8 projects that use this
assisjpSkilltakeover
Take over an existing branch, pull request, worktree, or agent handoff while preserving the original goal, contributor credit, and concurrent work. Use when the user asks to take over, finish, rescue, or continue someone else's implementation. Do not use to replace a clear request to start new work.
Also in 4 projects that use this
- +1 more from scottwater
Other versions55 projects use a version of this.
Word for word · 0
None found.
Edited · 3
- wordbricks/onequery★ 1784% same
- gannonh/skills★ 275% same
- danielvogler/ai-skills-library★ 092% same
Wrote their own version · 52
- BuilderIO/agent-native★ 7.6ksame name
- camunda/camunda★ 4.4ksame name
- t3dotgg/tstack★ 2.5ksame name
- UniClipboard/UniClipboard★ 2ksame name
- rome-os/rome★ 894same name
- trailofbits/coop★ 808same name
- Mr-Quin/danmaku-anywhere★ 550same name
- tariknz/irdashies★ 270same name
- owid/etl★ 163same name
- amElnagdy/review-skills★ 135same name
42 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository38 other files it gives its agents.
- AGENTS.mdAGENTS.md
- wiki/AGENTS.mdAGENTS.md
- wiki/CLAUDE.mdCLAUDE.md
- accountable-engineeringSkill
- adrSkill
- blindspot-passSkill
- capability-experimentsSkill
- codemapSkill
- code-quality-reviewSkill
- code-reviewSkill
- commit-atomicSkill
- context-discoverySkill
- diagnosing-bugsSkill
- doc-searchSkill
- docs-updateSkill
- draft-pull-requestSkill
- git-contextSkill
- handoffsSkill
- implementation-loggerSkill
- implement-specSkill
- llm-wikiSkill
- orchestrating-fusionSkill
- pickupSkill
- plannotator-setup-goalSkill
- portless-localSkill
- prdSkill
- pr-reviewSkill
- prSkill
- qmd-knowledgeSkill
- quiz-meSkill
- ralphSkill
- retroSkill
- security-auditSkill
- slopSkill
- spec-interviewSkill
- tddSkill
- tmuxSkill
- visual-prSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
49 rules. 0 are common, 29 are distinctive, and 20 are very specific to this project.
0
Common
Most of the 54 edited versions we read keep these.
29
Distinctive
This author's own choices. Worth a look.
20
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 20
Do not stop merely because a single snapshot returns idle while checks are still pending.
- Very specific: line 25
No PR argument: infer the PR from the current branch (--pr auto)
- Very specific: line 31
When the user asks to "monitor"/"watch"/"babysit" a PR, start with the watcher's continuous mode (--watch) unless you are intentionally …
- Very specific: line 32
Run the watcher script to snapshot PR/review/CI state (or consume each streamed snapshot from --watch).
- Very specific: line 34
If diagnose_ci_failure is present, inspect failed run logs and classify the failure.
- Distinctive: line 35
If the failure is likely caused by the current branch, patch code locally, commit, and push.
- Very specific: line 36
If process_review_comment is present, inspect surfaced published review items and decide whether to address them.
- Distinctive: line 37
If a review item is actionable and correct, patch code locally, commit, push, and then resolve the associated review thread only when …
- Distinctive: line 38
Do not post replies to human-authored review comments/threads unless the user explicitly confirms the exact response.
- Very specific: line 39
If the failure is likely flaky/unrelated and retry_failed_checks is present, rerun failed jobs with --retry-failed-now.
- Very specific: line 40
If both actionable review feedback and retry_failed_checks are present, prioritize review feedback first.
- Distinctive: line 42
After any push or rerun action, immediately return to step 1 and continue polling on the updated SHA/state.
- Very specific: line 43
If you had been using --watch before pausing to patch/commit/push, relaunch --watch yourself in the same turn immediately after the push …
- Very specific: line 74
Use gh commands to inspect failed runs before deciding to rerun.
- Very specific: line 83
Prefer treating failures as branch-related when failed-job logs point to changed code (compile/test/lint/typecheck/snapshots/static …
- Distinctive: line 85
Prefer treating failures as flaky/unrelated when logs show transient infra/external issues (timeouts, runner provisioning failures, …
- Distinctive: line 89
If classification is ambiguous, perform one manual diagnosis attempt before choosing rerun.
- Very specific: line 91
Read skills/babysit-pr/references/heuristics.md for a concise checklist.
- Very specific: line 100
Only act on published feedback.
- Distinctive: line 108
When you agree with a comment and it is actionable:
- Distinctive: line 113
After the push succeeds, resolve the associated GitHub review thread only when allowed by the GitHub state mutation policy below.
- Very specific: line 115
If monitoring was running in --watch mode, restart --watch immediately after the push in the same turn.
- Distinctive: line 118
If the watcher later surfaces your own approved reply because the authenticated operator is treated as a trusted review author, treat that …
- Distinctive: line 119
If a code review comment/thread is already marked as resolved in GitHub, treat it as non-actionable and safely ignore it unless new …
- Distinctive: line 132
Before making any changes, fetch the PR state yourself instead of relying on the PR watcher script's output.
- Distinctive: line 149
Avoid destructive git commands.
- Distinctive: line 150
Do not switch branches unless necessary to recover context.
- Distinctive: line 151
Before editing, check for unrelated uncommitted changes.
- Distinctive: line 152
After each successful fix, commit and git push, then re-run the watcher.
- Very specific: line 153
If you interrupted a live --watch session to make the fix, restart --watch immediately after the push in the same turn.
- Very specific: line 154
Do not run multiple concurrent --watch processes for the same PR/state file.
- Distinctive: line 163
Use this loop in a live Codex session:
- Distinctive: line 168
Check CI summary, new review items, and mergeability/conflict status.
- Distinctive: line 173
If you pushed a commit, resolved an eligible review thread, or triggered a rerun, report the action briefly and continue polling (do not …
- Very specific: line 174
After a review-fix push, proactively restart continuous monitoring (--watch) in the same turn unless a strict stop condition has already …
- Distinctive: line 175
If everything is passing, mergeable, not blocked on required review approval, and there are no unaddressed review items, report that the PR …
- Distinctive: line 176
If blocked on a user-help-required issue (infra outage, exhausted flaky retries, unclear reviewer request, permissions), report the blocker …
- Very specific: line 179
When the user explicitly asks to monitor/watch/babysit a PR, prefer --watch so polling continues autonomously in one command.
- Distinctive: line 180
Do not stop to ask the user whether to continue polling.
- Distinctive: line 181
Do not hand control back to the user after a review-fix push just because a new SHA was created.
- Very specific: line 182
If a --watch process is still running and no strict stop condition has been reached, the babysitting task is still in progress.
- Distinctive: line 185
Keep review polling aggressive and continue monitoring even after CI turns green:
- Distinctive: line 188
After CI turns green: keep polling at the base cadence while the PR remains open so newly posted review comments are surfaced promptly …
- Distinctive: line 190
If CI stops being green again (new commit, rerun, or regression): stay on the base polling cadence.
- Distinctive: line 191
If any poll shows the PR is merged or otherwise closed: stop polling immediately and report the terminal state.
- Distinctive: line 194
Stop only when one of the following is true:
- Distinctive: line 212
Treat push confirmations, intermediate CI snapshots, ready-to-merge snapshots, and review-action updates as progress updates only.
- Very specific: line 215
When CI first transitions to all green for the current SHA, emit a one-time celebratory progress update (do not repeat it on every green …
- Distinctive: line 216
Do not send the final summary while a watcher terminal is still running unless the watcher has emitted/confirmed a strict stop condition.
“Common” is measured: kept by at least 6 in 10 of the 54 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
PR Babysitter
Objective
Babysit a PR persistently until one of these terminal outcomes occurs:
- The PR is merged or closed.
- A situation requires user help (for example CI infrastructure issues, repeated flaky failures after retry budget is exhausted, permission problems, or ambiguity that cannot be resolved safely).
- Optional handoff milestone: the PR is currently green + mergeable + review-clean. Treat this as a progress state, not a watcher stop, so late-arriving review comments are still surfaced promptly while the PR remains open.
Do not stop merely because a single snapshot returns idle while checks are still pending.
Inputs
Accept any of the following:
- No PR argument: infer the PR from the current branch (
--pr auto) - PR number
- PR URL
Core Workflow
- When the user asks to "monitor"/"watch"/"babysit" a PR, start with the watcher's continuous mode (
--watch) unless you are intentionally doing a one-shot diagnostic snapshot. - Run the watcher script to snapshot PR/review/CI state (or consume each streamed snapshot from
--watch). - Inspect the
actionslist in the JSON response. - If
diagnose_ci_failureis present, inspect failed run logs and classify the failure. - If the failure is likely caused by the current branch, patch code locally, commit, and push. Do not patch random flaky tests, CI infrastructure, dependency outages, runner issues, or other failures that are unrelated to the branch.
- If
process_review_commentis present, inspect surfaced published review items and decide whether to address them. - If a review item is actionable and correct, patch code locally, commit, push, and then resolve the associated review thread only when allowed by the GitHub state mutation policy below.
- Do not post replies to human-authored review comments/threads unless the user explicitly confirms the exact response. If a human review item is non-actionable, already addressed, or not valid, surface the item and recommended response to the user instead of replying on GitHub.
- If the failure is likely flaky/unrelated and
retry_failed_checksis present, rerun failed jobs with--retry-failed-now. - If both actionable review feedback and
retry_failed_checksare present, prioritize review feedback first; a new commit will retrigger CI, so avoid rerunning flaky checks on the old SHA unless you intentionally defer the review change. - On every loop, look for newly surfaced review feedback before acting on CI failures or mergeability state, then verify mergeability / merge-conflict status (for example via
gh pr view) alongside CI. - After any push or rerun action, immediately return to step 1 and continue polling on the updated SHA/state.
- If you had been using
--watchbefore pausing to patch/commit/push, relaunch--watchyourself in the same turn immediately after the push (do not wait for the user to re-invoke the skill). - Repeat polling until
stop_pr_closedappears or a user-help-required blocker is reached. A green + review-clean + mergeable PR is a progress milestone, not a reason to stop the watcher while the PR is still open. - Maintain terminal/session ownership: while babysitting is active, keep consuming watcher output in the same turn; do not leave a detached
--watchprocess running and then end the turn as if monitoring were complete.
Commands
One-shot snapshot
python3 skills/babysit-pr/scripts/gh_pr_watch.py --pr auto --onceContinuous watch (JSONL)
python3 skills/babysit-pr/scripts/gh_pr_watch.py --pr auto --watchTrigger flaky retry cycle (only when watcher indicates)
python3 skills/babysit-pr/scripts/gh_pr_watch.py --pr auto --retry-failed-nowExplicit PR target
python3 skills/babysit-pr/scripts/gh_pr_watch.py --pr <number-or-url> --onceCI Failure Classification
Use gh commands to inspect failed runs before deciding to rerun.
gh run view <run-id> --json jobs,name,workflowName,conclusion,status,url,headShagh api repos/<owner>/<repo>/actions/runs/<run-id>/jobs -X GET -f per_page=100gh api repos/<owner>/<repo>/actions/jobs/<job-id>/logs > /tmp/my-ai-tools-gh-job-<job-id>-logs.zipgh run view <run-id> --log-failedas a fallback after the overall workflow run is complete
gh run view --log-failed is workflow-run scoped and may not expose failed-job logs until the overall run finishes. For faster diagnosis, poll the run's jobs first and, as soon as a specific job has failed, fetch that job's logs directly from the Actions job logs endpoint. The watcher includes a failed_jobs list with each failed job's job_id and logs_endpoint when GitHub exposes one.
Prefer treating failures as branch-related when failed-job logs point to changed code (compile/test/lint/typecheck/snapshots/static analysis in touched areas).
Prefer treating failures as flaky/unrelated when logs show transient infra/external issues (timeouts, runner provisioning failures, registry/network outages, GitHub Actions infra errors).
Do not attempt to fix flaky/unrelated failures by changing tests, build scripts, CI configuration, dependency pins, or infrastructure-adjacent code unless the logs clearly connect the failure to the PR branch. For flaky/unrelated failures, rerun only when the watcher recommends retry_failed_checks; otherwise wait or stop for user help.
If classification is ambiguous, perform one manual diagnosis attempt before choosing rerun.
Read skills/babysit-pr/references/heuristics.md for a concise checklist.
Review Comment Handling
The watcher surfaces review items from:
- PR issue comments
- Inline review comments
- Review submissions (COMMENT / APPROVED / CHANGES_REQUESTED)
Only act on published feedback. Ignore review submissions in GitHub's PENDING state and inline
comments attached to those pending reviews. Do not mark pending review feedback as seen; it should
be eligible to surface after the reviewer submits the review.
It intentionally surfaces Codex reviewer bot feedback (for example comments/reviews from chatgpt-codex-connector[bot]) in addition to human reviewer feedback. Most unrelated bot noise should still be ignored.
For safety, the watcher only auto-surfaces trusted human review authors (for example repo OWNER/MEMBER/COLLABORATOR, plus the authenticated operator) and approved review bots such as Codex.
On a fresh watcher state file, existing unaddressed published review feedback may be surfaced immediately (not only comments that arrive after monitoring starts). This is intentional so already-open review comments are not missed.
When you agree with a comment and it is actionable:
- Patch code locally.
- Commit with
codex: address PR review feedback (#<n>). - Push to the PR head branch.
- After the push succeeds, resolve the associated GitHub review thread only when allowed by the GitHub state mutation policy below.
- Resume watching on the new SHA immediately (do not stop after reporting the push).
- If monitoring was running in
--watchmode, restart--watchimmediately after the push in the same turn; do not wait for the user to ask again.
Do not post replies to human-authored GitHub review comments/threads automatically. If you disagree with a human comment, believe it is non-actionable/already addressed, or need to answer a question, report the item to the user with a suggested response and wait for explicit confirmation before posting anything on GitHub. If the user approves a response, prefix it with [codex] so it is clear the response is automated and not from the human user.
If the watcher later surfaces your own approved reply because the authenticated operator is treated as a trusted review author, treat that self-authored item as already handled and do not reply again.
If a code review comment/thread is already marked as resolved in GitHub, treat it as non-actionable and safely ignore it unless new unresolved follow-up feedback appears.
GitHub State Mutation Policy
You can read any PR state you need for monitoring. Writes must comply with this policy.
You can push PRs to update the code under review or to force CI re-runs as described above.
You can resolve review comment threads from the human who requested babysitting or from the Codex
review bot. When resolving, leave a comment prefixed with [from Codex]: and explain what changes
you made and which commit includes them. Don't touch review threads if other humans other than the
user who requested babysitting have participated.
Before making any changes, fetch the PR state yourself instead of relying on the PR watcher script's output.
Unless explicitly asked, do not:
- comment on other humans' review threads, communicate with the user in chat instead
- resolve review threads from humans other than the user
- interact with humans other than the user
- mark PRs as drafts or ready for review
- close or reopen PRs
In general, never act on GitHub in ways that would make it hard to tell whether you or the user did something visible to other humans. When in doubt, ask the user for clarification in chat.
Git Safety Rules
- Work only on the PR head branch.
- Avoid destructive git commands.
- Do not switch branches unless necessary to recover context.
- Before editing, check for unrelated uncommitted changes. If present, stop and ask the user.
- After each successful fix, commit and
git push, then re-run the watcher. - If you interrupted a live
--watchsession to make the fix, restart--watchimmediately after the push in the same turn. - Do not run multiple concurrent
--watchprocesses for the same PR/state file; keep one watcher session active and reuse it until it stops or you intentionally restart it. - A push is not a terminal outcome; continue the monitoring loop unless a strict stop condition is met.
Commit message defaults:
codex: fix CI failure on PR #<n>codex: address PR review feedback (#<n>)
Monitoring Loop Pattern
Use this loop in a live Codex session:
- Run
--once. - Read
actions. - First check whether the PR is now merged or otherwise closed; if so, report that terminal state and stop polling immediately.
- Check CI summary, new review items, and mergeability/conflict status.
- Diagnose CI failures and classify branch-related vs flaky/unrelated. If the overall run is still pending but
failed_jobsalready includes a failed job, fetch that job's logs and diagnose immediately instead of waiting for the whole workflow run to finish. Patch only when the failure is branch-related. - For each surfaced review item from another author, patch/commit/push if it is actionable, then resolve it only when allowed by the GitHub state mutation policy above. If it is non-actionable, already addressed, or requires a written answer, surface it to the user with a suggested response instead of posting automatically. If a later snapshot surfaces your own approved reply, treat it as informational and continue without responding again.
- Process actionable review comments before flaky reruns when both are present; if a review fix requires a commit, push it and skip rerunning failed checks on the old SHA.
- Retry failed checks only when
retry_failed_checksis present and you are not about to replace the current SHA with a review/CI fix commit. Do not make code changes for unrelated flakes or infrastructure failures just to get CI green. - If you pushed a commit, resolved an eligible review thread, or triggered a rerun, report the action briefly and continue polling (do not stop). If a human review comment needs a written GitHub response, stop and ask for confirmation before posting.
- After a review-fix push, proactively restart continuous monitoring (
--watch) in the same turn unless a strict stop condition has already been reached. - If everything is passing, mergeable, not blocked on required review approval, and there are no unaddressed review items, report that the PR is currently ready to merge but keep the watcher running so new review comments are surfaced quickly while the PR remains open.
- If blocked on a user-help-required issue (infra outage, exhausted flaky retries, unclear reviewer request, permissions), report the blocker and stop.
- Otherwise sleep according to the polling cadence below and repeat.
When the user explicitly asks to monitor/watch/babysit a PR, prefer --watch so polling continues autonomously in one command. Use repeated --once snapshots only for debugging, local testing, or when the user explicitly asks for a one-shot check.
Do not stop to ask the user whether to continue polling; continue autonomously until a strict stop condition is met or the user explicitly interrupts.
Do not hand control back to the user after a review-fix push just because a new SHA was created; restarting the watcher and re-entering the poll loop is part of the same babysitting task.
If a --watch process is still running and no strict stop condition has been reached, the babysitting task is still in progress; keep streaming/consuming watcher output instead of ending the turn.
Polling Cadence
Keep review polling aggressive and continue monitoring even after CI turns green:
- While CI is not green (pending/running/queued or failing): poll every 1 minute.
- After CI turns green: keep polling at the base cadence while the PR remains open so newly posted review comments are surfaced promptly instead of waiting on a long green-state backoff.
- Reset the cadence immediately whenever anything changes (new commit/SHA, check status changes, new review comments, mergeability changes, review decision changes).
- If CI stops being green again (new commit, rerun, or regression): stay on the base polling cadence.
- If any poll shows the PR is merged or otherwise closed: stop polling immediately and report the terminal state.
Stop Conditions (Strict)
Stop only when one of the following is true:
- PR merged or closed (stop as soon as a poll/snapshot confirms this).
- User intervention is required and Codex cannot safely proceed alone.
Keep polling when:
actionscontains onlyidlebut checks are still pending.- CI is still running/queued.
- Review state is quiet but CI is not terminal.
- CI is green but mergeability is unknown/pending.
- CI is green and mergeable, but the PR is still open and you are waiting for possible new review comments or merge-conflict changes.
- The PR is green but blocked on review approval (
REVIEW_REQUIRED/ similar); continue polling at the base cadence and surface any new review comments without asking for confirmation to keep watching.
Output Expectations
Provide concise progress updates while monitoring and a final summary that includes:
- During long unchanged monitoring periods, avoid emitting a full update on every poll; summarize only status changes plus occasional heartbeat updates.
- Treat push confirmations, intermediate CI snapshots, ready-to-merge snapshots, and review-action updates as progress updates only; do not emit the final summary or end the babysitting session unless a strict stop condition is met.
- A user request to "monitor" is not satisfied by a couple of sample polls; remain in the loop until a strict stop condition or an explicit user interruption.
- A review-fix commit + push is not a completion event; immediately resume live monitoring (
--watch) in the same turn and continue reporting progress updates. - When CI first transitions to all green for the current SHA, emit a one-time celebratory progress update (do not repeat it on every green poll). Preferred style:
🚀 CI is all green! 33/33 passed. Still on watch for review approval. - Do not send the final summary while a watcher terminal is still running unless the watcher has emitted/confirmed a strict stop condition; otherwise continue with progress updates.
- Final PR SHA
- CI status summary
- Mergeability / conflict status
- Fixes pushed
- Flaky retry cycles used
- Remaining unresolved failures or review comments
References
- Heuristics and decision tree:
skills/babysit-pr/references/heuristics.md - GitHub CLI/API details used by the watcher:
skills/babysit-pr/references/github-api-notes.md
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

