From rranauro
Review and address GitHub Copilot's PR review comments one by one.
How this command is triggered — by the user, by Claude, or both
Slash command
/rranauro:review-copilotThe summary Claude sees in its command listing — used to decide when to auto-load this command
Review and address GitHub Copilot's PR review comments one by one.
**Step 1 — Find the PR:**
- Run `gh pr view --json number,url,title` to get the current branch's PR.
- If no PR exists, tell the user and stop.
**Step 2 — Fetch Copilot's review comments:**
- Run `gh api repos/{owner}/{repo}/pulls/{number}/comments --jq '.[] | select(.user.login | test("copilot|github-actions")) | {id, path, line, body, diff_hunk}'` to get Copilot's inline comments.
- Also check `gh api repos/{owner}/{repo}/pulls/{number}/reviews --jq '.[] | select(.user.login | test("copilot|github-actions")) | {id, state...Review and address GitHub Copilot's PR review comments one by one.
Step 1 — Find the PR:
gh pr view --json number,url,title to get the current branch's PR.Step 2 — Fetch Copilot's review comments:
gh api repos/{owner}/{repo}/pulls/{number}/comments --jq '.[] | select(.user.login | test("copilot|github-actions")) | {id, path, line, body, diff_hunk}' to get Copilot's inline comments.gh api repos/{owner}/{repo}/pulls/{number}/reviews --jq '.[] | select(.user.login | test("copilot|github-actions")) | {id, state, body}' for top-level review comments.Step 3 — Process each comment: For each comment, in order:
Step 4 — Ask the user before fixing:
Step 5 — After all comments are addressed:
Summarize for the user: how many fixed, how many skipped, and why.
If any fixes were made, the commit message must capture the per-comment evaluation so it's durable in git history (not just the conversation). Format:
Address Copilot review feedback
- <path>:<line> [Must fix] <one-line reasoning> — <action taken>
- <path>:<line> [Should fix] <one-line reasoning> — <action taken>
- <path>:<line> [Ignore] <one-line reasoning> — false positive, no change
- <path>:<line> [Optional] <one-line reasoning> — skipped (nitpick)
Use the same four categories from Step 3.3. Include skipped comments too — the durable record of "we considered this and decided not to act" is the point. If Step 6 delegates to /commit, pass this body as the intended message rather than letting /commit draft its own.
If no fixes were made (all comments skipped/ignored), do NOT create a commit. The evaluation summary lives only in the conversation; there is nothing to push.
Step 6 — Quality gates (if any fixes were made):
Step 7 — Push:
Arguments: $ARGUMENTS
If the user passes a PR number (e.g., /review-copilot 228), use that instead of the current branch's PR.
npx claudepluginhub scientist-hq/skills --plugin rranauro