babysit-pr
Use when monitoring an open GitHub PR for CI failures, review feedback, mergeability, and safe retries or fixes.
Skill by jellydn
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/jellydn-babysit-pr
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
Use cases: devops
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
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/babysit-pr
What's inside
- Skill name
babysit-pr- Description
- Use when monitoring an open GitHub PR for CI failures, review feedback, mergeability, and safe retries or fixes.
- License
- MIT
- Metadata
- source: openai/codex@5e96aabd68dc6194f5ad928cb7f5d0bc71b72df9 · source_path: .codex/skills/babysit-pr
- Instructions
- 220 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (6)
- SKILL.md
- openai.yaml · agents/
- github-api-notes.md · references/
- heuristics.md · references/
- gh_pr_watch.py · scripts/
- test_gh_pr_watch.py · scripts/
SKILL.md (first lines)
# 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 1. 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. 2. Run the watcher script to snapshot PR/review/CI state (or consume each streamed snapshot from `--watch`). 3. Inspect the `actions` list in the JSON response. 4. If `diagnose_ci_failure` is present, inspect failed run logs and classify the failure. 5. 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. 6. If `process_review_comment` is present, inspect surfaced published review items and decide whether to address them. 7. 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. 8. 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. 9. If the failure is likely flaky/unrelated and `retry_failed_checks` is present, rerun failed jobs with `--retry-failed-now`. 10. If both actionable review feedback and `retry_failed_checks` are 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. 11. 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. 12. After any push or rerun action, immediately return to step 1 and continue polling on the updated SHA/state. 13. If you had been using `--watch` before pausing to patch/commit/push, relaunch `--watch` yourself in the same turn immediately after the push (do not wait for the user to re-invoke the skill). 14. Repeat polling until `stop_pr_closed` appears 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. 15. Maintain terminal/session ownership: while babysitting is active, keep consuming watcher output in the same turn; do not leave a detached `--watch` process running and then end the turn as if monitoring were complete. ## Commands ### One-shot snapshot ```bash python3 skills/babysit-pr/scripts/gh_pr_watch.py --pr auto --once ``` ### Continuous watch (JSONL) ```bash python3 skills/babysit-pr/scripts/gh_pr_watch.py --pr auto --watch ``` ### Trigger flaky retry cycle (only when watcher indicates) ```bash python3 skills/babysit-pr/scripts/gh_pr_watch.py --pr auto --retry-failed-now ``` ### Explicit PR target ```bash python3 skills/babysit-pr/scripts/gh_pr_watch.py --pr <number-or-url> --once ``` ## CI 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,headSha` - `gh api repos/<owner>/<repo>/actions/runs/<run-id>/jobs -X GET -f per_page=100` - `gh api repos/<owner>/<repo>/actions/jobs/<job-id>/logs > /tmp/my-ai-tools-gh-job-<job-id>-logs.zip` - `gh run view <run-id> --log-failed` as 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: 1. Patch code locally. 2. Commit with `codex: address PR review feedback (#<n>)`. 3. Push to the PR head branch. 4. After the push succeeds, resolve the associated GitHub review thread only when allowed by the GitHub state mutation policy below. 5. Resume watching on the new SHA immediately (do not stop after reporting the push). 6. If monitoring was running in `--watch` mode, restart `--watch` immediately 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
From jellydn/my-ai-tools, MIT.
More from jellydn/my-ai-tools
- 0.722score
visual-pr
jellydn
Posts a concise visual outline as a GitHub pull request comment.
SkillAFreshness: A★ 123Claude Code +9 - 0.716score
draft-pull-request
jellydn
Draft pull requests with structured descriptions using gh CLI
SkillAFreshness: A★ 123Claude Code +9 - 0.716score
codemap
jellydn
Create a seven-document architecture map when the user asks to map a codebase.
SkillAFreshness: A★ 123Claude Code +9 - 0.714score
diagnosing-bugs
jellydn
Build a tight, red-capable feedback loop before diagnosing failures, then minimize, test ranked hypotheses, and lock the fix with a regression test.
SkillAFreshness: A★ 123Claude Code +9 - 0.713score
pr-review
jellydn
Fix PR review comments by implementing requested changes
SkillAFreshness: A★ 123Claude Code +9 - 0.711score
blindspot-pass
jellydn
Inspect history and architecture for hidden constraints before risky cross-cutting changes.
SkillAFreshness: A★ 123Claude Code +9 - 0.711score
implement-spec
jellydn
Implement a complete spec from its ticket graph, using isolated workers and one integration branch.
SkillAFreshness: A★ 123Claude Code +9 - 0.711score
portless-local
jellydn
Replace port numbers with stable named .localhost URLs for local development
SkillAFreshness: A★ 123Claude Code +9 - 0.711score
implementation-logger
jellydn
Log implementation decisions — tracks deviations from plan and captures rationale
SkillAFreshness: A★ 123Claude Code +9 - 0.711score
code-review
jellydn
Review a branch, PR, or worktree diff for repository conventions and stated intent.
SkillAFreshness: A★ 123Claude Code +9 - 0.711score
pr
jellydn
Write a fast-to-review pull request body with a visual summary, before/after evidence, and merge-risk analysis.
SkillAFreshness: A★ 123Claude Code +9 - 0.711score
plannotator-setup-goal
jellydn
Turn ideas into executable goal packages with guided interviews and codebase analysis
SkillAFreshness: A★ 123Claude Code +9
Signals
- Stars
- 123
- Forks
- 12
- Open issues
- 3
- Last commit (this folder)
- Oct 6, 2026 (22 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/jellydn/my-ai-tools
- Website
- ai-tools.itman.fyi/
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from jellydn
- 0.722score
visual-pr
jellydn
Posts a concise visual outline as a GitHub pull request comment.
SkillAFreshness: A★ 123Claude Code +9 - 0.716score
codemap
jellydn
Create a seven-document architecture map when the user asks to map a codebase.
SkillAFreshness: A★ 123Claude Code +9 - 0.716score
draft-pull-request
jellydn
Draft pull requests with structured descriptions using gh CLI
SkillAFreshness: A★ 123Claude Code +9 - 0.714score
diagnosing-bugs
jellydn
Build a tight, red-capable feedback loop before diagnosing failures, then minimize, test ranked hypotheses, and lock the fix with a regression test.
SkillAFreshness: A★ 123Claude Code +9 - 0.713score
pr-review
jellydn
Fix PR review comments by implementing requested changes
SkillAFreshness: A★ 123Claude Code +9 - 0.711score
blindspot-pass
jellydn
Inspect history and architecture for hidden constraints before risky cross-cutting changes.
SkillAFreshness: A★ 123Claude Code +9
Cite this page
babysit-pr skill. Agent Mart. https://agentmart.dev/skills/jellydn-babysit-pr (last updated 2026-10-24)