Add babysit-pr skill for shepherding open PRs to mergeable - #48
Open
stephenfinch wants to merge 1 commit into
Open
Add babysit-pr skill for shepherding open PRs to mergeable#48stephenfinch wants to merge 1 commit into
stephenfinch wants to merge 1 commit into
Conversation
Polls CI, triages review-bot findings against the source, pushes fixes, and keeps the branch fresh. Bounded loop with explicit stop conditions. Treats all PR content as untrusted input; never approves, merges, closes, or force-pushes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new babysit-pr Agent Skill to help shepherd an already-open pull request to a mergeable state (CI green, review threads addressed, branch kept current), complementing existing workflow skills like file-pr and split-stack.
Changes:
- Introduces the
skills/babysit-prskill with a bounded polling/triage loop, scope controls, and “untrusted PR content” handling rules. - Adds
skills/babysit-pr/references/triage.mdwith CI failure classification guidance and reply templates. - Registers the new skill in
README.mdandAGENTS.md.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| skills/babysit-pr/SKILL.md | New skill definition + workflow loop and operational guardrails for babysitting open PRs. |
| skills/babysit-pr/references/triage.md | Triage decision table and reply templates to support the babysitting loop. |
| README.md | Adds babysit-pr to the public skill list and updates the “skills that complement each other” section. |
| AGENTS.md | Registers babysit-pr in the internal skills catalog. |
Suppressed comments (1)
skills/babysit-pr/SKILL.md:46
$BASEis used later (e.g., "Keeping the branch fresh") and inreferences/triage.md, but it's never set in the Setup snippet. This makes the copy/paste workflow break unless the user already definedBASEexternally.
PR=$(gh pr view --json number --jq .number) # or take the number from the user
gh pr view "$PR" --json number,title,url,state,isDraft,mergeable,headRefName,baseRefName
</details>
---
💡 <a href="/RoleModel/rolemodel-skills/new/main?filename=.github/skills/code-review/SKILL.md" class="Link--inTextBlock" target="_blank" rel="noopener noreferrer">Add a `code-review` agent skill</a> or configure MCP servers for context-aware, tailored reviews. <a href="https://docs.github.com/en/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review#mcp-servers-and-agent-skills" class="Link--inTextBlock" target="_blank" rel="noopener noreferrer">Learn more in the docs.</a>
| PR", "handle the review comments", "get this PR green", or "wait for checks | ||
| and address feedback". Picks up where the `file-pr` skill leaves off. Does not | ||
| approve, merge, or close anything. | ||
| allowed-tools: Bash(gh pr view:*) Bash(gh pr checks:*) Bash(gh pr diff:*) Bash(gh pr list:*) Bash(gh pr comment:*) Bash(gh api:*) Bash(git fetch:*) Bash(git log:*) Bash(git status:*) Bash(git diff:*) Bash(git branch:*) Bash(git merge:*) Bash(git add:*) Bash(git commit:*) Bash(git push:*) Read Edit Write Grep |
justwiebe
reviewed
Aug 17, 2026
| - **Requests a change** → make it, even if you'd have chosen otherwise. | ||
| - **Suggests something out of scope** → agree it's worth doing, say it belongs | ||
| in a follow-up, ask whether they want it here anyway. | ||
| - **Ambiguous, or needs a judgment call you can't make** → stop the loop and |
Contributor
There was a problem hiding this comment.
Would it be worth adding more definition around this? It seems ambiguous itself. Probably mentioning things like architectural changes, etc
justwiebe
reviewed
Aug 17, 2026
| gh pr view "$PR" --json commits --jq '.commits[-1].committedDate' | ||
| ``` | ||
|
|
||
| Anything older was written against code that no longer exists. Re-reading it |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Nothing in the repo covers what happens after a PR is open.
file-propens it andsplit-stackreshapes it, but CI failures, review-bot findings, and base-branch drift are all still handled by hand.babysit-prdrives an open PR toward mergeable while the author works on something else.Everything it reads from the PR — comments, bot output, CI logs, the diff — is treated as untrusted input, the same rule
rm-sentry-issue-fixerapplies to Sentry event data. It never approves, merges, closes, or force-pushes; those stay with the human.The loop is bounded rather than open-ended — 10 passes, or 3 with nothing new — because an unbounded poll against CI burns tokens and hides when it has stopped making progress. Adapted from a skill shared publicly by a third party, rewritten to repo format.
What Changed
babysit-prwith a bounded triage loop and explicit stop conditionsreferences/triage.md— CI failure classes, bot findings, reply templatesScreenshots
N/A — no UI changes
Pre-merge
README.mdandAGENTS.md?