From ado
This skill should be used when the user asks to "babysit a PR", "babysit my pull request", "monitor my PR", "watch my pull request", "keep my PR green", "fix PR build failures automatically", "handle PR review comments", or wants autonomous Azure DevOps PR monitoring that fixes build breaks, test failures, code coverage gaps, and review comments on a polling loop.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ado:ado-babysit-prThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Autonomous PR babysitter. Monitor an Azure DevOps pull request in a continuous
Autonomous PR babysitter. Monitor an Azure DevOps pull request in a continuous
loop, collecting issues and delegating fixes to the ado:ado-babysit-pr-worker agent
each iteration. Act without asking for user confirmation on individual fixes —
fix, push, and re-check.
$ARGUMENTS. If none provided,
detect from the current branch using listPullRequests filtered by source
branch. If multiple PRs match, list them and ask the user to pick one.getPullRequest to confirm the PR exists. Display a
status summary: title, source → target branch, reviewer votes, build status,
active comment count..sln or .csproj → dotnet build / dotnet testpackage.json → npm run build / npm testpom.xml → mvn compile / mvn testMakefile → make / make testgetPullRequest response).
If yes, call getWorkItemById on one and extract its System.AreaPath.getTeams and attempt to match team names
against the PR's changed file paths or branch name.null (project default will be used).
Store the resolved area path to pass to the worker agent in Step 4.Repeat until an exit condition is met:
Use getPullRequest to check:
<exit_check> Exit if: PR is merged, completed, or abandoned. Also exit if all builds are green, all comment threads are resolved, and at least one reviewer has approved. </exit_check>
Gather every actionable issue into a structured checklist. The checklist drives the entire iteration — nothing gets fixed unless it's on the list.
getPullRequest merge status for conflictsgetPullRequest response for policy evaluation fields: mergeStatus,
isDraft, autoCompleteSetBy, reviewer vote counts, and any evaluation
criteria in the response. Also check for linked work items (work item linking
policy).getPullRequestComments to fetch all comment threads[BLOCKER] tag from the reviewer
(absence means non-blocking). Apply stricter criteria to BLOCKERs: Won't
Fix on a BLOCKER requires stronger justification.references/review-reception-protocol.md (verify, YAGNI check, context
check) and references/review-thread-state-machine.md for state transitions.<comment_disposition> For each comment, classify into one of three dispositions:
Resolve — The comment identifies a real issue. Fix the code, prioritizing code quality and codebase health over ease. The fix should be what's best for the codebase long-term, not the quickest way to make the comment go away.
Won't Fix (reply) — The suggestion is out of scope, already addressed, or would introduce a regression. Reply with a technical rationale explaining why. Use when the issue is minor or the rationale is self-evident.
Won't Fix (defer with work item) — The comment raises a valid concern
that cannot be ignored but is genuinely out of scope for this PR. The
worker creates a tracked work item via createWorkItem (using the area path
detected at entry), then replies with:
Won't Fix: Deferred to #<work-item-id> for follow-up.
Use this path when:
[BLOCKER] that you cannot address within the PR's scopeDisposition priority: Default to Resolve. Only use Won't Fix when there is a clear, defensible technical reason. Between the two Won't Fix options, use "defer with work item" when the issue is important enough that dropping it would be negligent. </comment_disposition>
<planning_gate> Do NOT proceed to fixes until this planning step is complete. The plan is the single source of truth for what the worker agent will do this iteration. </planning_gate>
Convert all collected issues into a concrete, trackable plan using TodoWrite. Create one todo item per actionable unit of work. Each todo must be specific enough that progress can be verified after the worker finishes.
Merge conflicts (highest priority):
[ ] Resolve merge conflict: <file path> (e.g., "Resolve merge conflict: src/Services/UserService.cs")
PR policy failures (only actionable ones):
[ ] Fix policy: <policy name> — <what's needed> (e.g., "Fix policy: work item linking — associate a work item to this PR")
Build breaks:
[ ] Fix build: <root cause summary> (e.g., "Fix build: missing using for System.Linq in UserService.cs")
Test failures — one todo per failing test:
[ ] Fix test: <FullyQualifiedTestName> — <brief error> (e.g., "Fix test: PaymentTests.ChargeCard_InvalidCvv — expected 400 got 500")
Code coverage gaps — one todo per uncovered block:
[ ] Add coverage: <method or file> (e.g., "Add coverage: OrderProcessor.HandleRefund — lines 45-62")
Review comments — one todo per active thread, stating the intended disposition:
[ ] Comment thread <ID>: Resolve — <what to fix> (e.g., "Comment thread 42: Resolve — add null check on userInput per reviewer")
[ ] Comment thread <ID>: Won't Fix — <rationale> (e.g., "Comment thread 58: Won't Fix — style preference, no functional impact")
[ ] Comment thread <ID>: Won't Fix (defer) — <issue summary> → create work item (e.g., "Comment thread 63: Won't Fix (defer) — systemic error handling gap across all controllers → create work item")
<todo_specificity>
Every todo must be specific and actionable. Each item should describe exactly
what needs to happen — not "fix the issue" but "add null check for user
parameter in UserService.Process() at line 45". The worker agent should be able
to act on each todo without needing to re-analyze the problem.
</todo_specificity>
Only after the plan is finalized, proceed to Step 4.
Spawn the ado:ado-babysit-pr-worker agent with:
null if not resolved). The worker uses this to create work items for
deferred Won't Fix items without interactive prompts.Worker review-reception rules — instruct the worker to follow
references/review-reception-protocol.md in autonomous mode (no user
confirmation). Pass the pre-classification notes so the worker can act on them.
The worker agent addresses each todo item, performs self-review, build verification, commit, and push for this iteration. Wait for it to complete.
After the worker finishes, update each todo item's status (completed or failed) based on the worker's report. Log any items that could not be resolved with the worker's explanation.
If there are no issues (everything is green but awaiting reviewer action), skip to Step 5.
Report a brief status summary: which todos were completed, which failed, and what is still pending (or that everything is clean and waiting on reviewers). Then wait 15 minutes before looping back to Step 1.
<exit_conditions> Stop the loop when:
When exiting, display a final summary: total iterations, issues fixed, comments addressed, current PR status.
Invoke the ado:ado-mentions skill before composing any comment or reply.
It loads the full mention syntax reference. Key rules:
#<id> when referencing work items in comments or replies!<id> when referencing PRs in work item discussions[<developer name>'s bot]references/review-reception-protocol.md for all reviewer feedback
evaluation — verify before implementing, push back when wrong, fix in
priority order (blocking → simple → complex)getPullRequest, getPullRequestComments,
getPullRequestFileChanges, listPullRequests, getWorkItemById, getTeamsado:ado-babysit-pr-worker (spawned each iteration — uses createWorkItem
directly for deferred Won't Fix items)npx claudepluginhub gautam-achieveai/claudeplugins --plugin adoProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.