From copilot-review
Monitor a PR for GitHub Copilot review feedback and iterate on it automatically. Use when user says "copilot review", "review loop", "watch this PR", "monitor PR for Copilot comments", "iterate on Copilot feedback", or "keep fixing Copilot comments".
How this skill is triggered — by the user, by Claude, or both
Slash command
/copilot-review:copilot-review-loopThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Non-blocking loop: schedule 5-min cron → fix Copilot comments each tick → repeat until Copilot says "generated no comments". After each push, you MUST manually request a Copilot review via the API (see `references/copilot-api.md`) — `review_on_push` rulesets do not work on personal/free GitHub plans.
Non-blocking loop: schedule 5-min cron → fix Copilot comments each tick → repeat until Copilot says "generated no comments". After each push, you MUST manually request a Copilot review via the API (see references/copilot-api.md) — review_on_push rulesets do not work on personal/free GitHub plans.
references/copilot-api.md firstIt contains exact API commands, correct author logins per API, and GraphQL queries.
GraphQL uses copilot-pull-request-reviewer (no [bot]). Getting this wrong silently misses all comments.
gh pr view --json number)gh repo view --json owner,nameCronCreate with */5 * * * *, recurring: trueEach iteration MUST be non-blocking. Check the state once, act or skip, and return immediately. NEVER use sleep or poll in a loop waiting for Copilot to finish reviewing. The cron fires every 5 minutes — if Copilot hasn't reviewed yet, simply skip the iteration and let the next cron tick handle it. This is the entire point of using a cron-based approach.
Use GraphQL (see references). Filter by copilot-pull-request-reviewer (no [bot]).
If PR is MERGED/CLOSED → cancel cron and stop.
Why threads-first: Copilot's REST review API commit_id does NOT reliably update when Copilot leaves inline comments. If you gate on review SHA matching HEAD before checking threads, you will miss comments that Copilot left asynchronously. Always check threads regardless of review SHA.
For each unresolved comment:
dotnet build && dotnet test or equivalent)After all comments addressed: commit and push. Then manually request a Copilot review using the API call in references/copilot-api.md.
Fetch Copilot's latest review via REST (see references). Check two things:
commit_id matches HEAD SHAbody contains "generated no comments"If both match → Copilot reviewed the latest code and found nothing. Cancel cron and report success.
If commit_id does not match HEAD → Copilot hasn't reviewed the latest push yet. Return immediately — let the next cron tick check again. Do NOT sleep or poll.
If commit_id matches but body does NOT contain "generated no comments" → Copilot reviewed but found issues:
CronDelete, and hand control back to the user — do not keep looping expecting inline comments that may never appear.CronDeleteCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub superyyrrzz/copilot-review-plugin-cc --plugin copilot-review