Skill: Review PR Comments
Fetch review comments from AI code review agents on a GitHub PR, categorize them by severity, and suggest fixes.
When to Use
- After CI passes and AI reviewers have posted comments on a PR.
- When you want a consolidated summary of all review feedback before addressing it.
Always check ALL of these reviewers (any combination may be active on a given repo):
- CodeRabbit (
coderabbitai[bot])
- Gemini Code Assist (
gemini-code-assist[bot])
- Codex (
chatgpt-codex-connector[bot])
- Claude (
claude[bot])
- Copilot (
copilot-pull-request-reviewer[bot], github-actions[bot] running Copilot review actions)
A reviewer being silent or rate-limited is a valid finding — note it as "no comments" or "rate-limited", do not assume absence means nothing to address.
Inputs
The PR number is passed as an argument: /review-pr 53
If no argument is provided, detect the current branch and find the open PR for it.
Workflow
Fetch PR comments using gh CLI. Three surfaces — query all three, they hold different content:
- Inline review comments:
gh api repos/{owner}/{repo}/pulls/{number}/comments
- Review bodies (summary verdicts):
gh api repos/{owner}/{repo}/pulls/{number}/reviews
- Issue-thread comments (Claude posts here, as do CodeRabbit summaries + rate-limit notices):
gh api repos/{owner}/{repo}/issues/{number}/comments
- Detect the repo owner/name from the current git remote.
Filter to AI reviewers. Use this jq pattern across all three surfaces:
--jq '.[] | select(.user.login | test("(?i)^(coderabbit|gemini-code-assist|codex|chatgpt-codex-connector|claude|copilot|github-actions).*\\[bot\\]$"))'
Always enumerate all five reviewers explicitly in the output (coderabbitai[bot], gemini-code-assist[bot], chatgpt-codex-connector[bot], claude[bot], copilot-pull-request-reviewer[bot]) — if one posted nothing, list it as "no comments" or "rate-limited" so the user can see at a glance which reviewers were active. Do not silently drop a reviewer just because it had no findings.
Categorize each comment:
- Critical (must fix): Security issues, bugs, crashes, type errors.
- Warning (should fix): Missing error handling, edge cases, best practices.
- Suggestion (consider): Style, naming, refactoring ideas, future improvements.
- Already addressed: Comments marked with "Addressed in commit" or similar, or whose target code no longer exists at the referenced line.
For each actionable comment, provide:
- File and line reference.
- What the reviewer flagged.
- The suggested fix (code diff if provided by the reviewer).
- Your assessment: agree, disagree with reason, or "style preference — skip".
Output format:
## PR #N Review Summary
### Reviewer status
| Reviewer | Findings |
|---|---|
| CodeRabbit | <count or "rate-limited" or "no comments"> |
| Gemini | <count or "no comments"> |
| Codex | <count or "no comments"> |
| Claude | <count, plus Approve/Comment/Request-changes verdict if posted> |
| Copilot | <count or "no comments"> |
### Critical (must fix)
1. **[file:line]** — [description] _(reviewer consensus: A + B)_
Fix: [what to change]
### Warning (should fix)
1. **[file:line]** — [description] _(reviewer: X)_
Fix: [what to change]
### Suggestion (consider)
1. **[file:line]** — [description] _(reviewer: X)_
Assessment: [agree/skip with reason]
### Already Addressed
- [description] — resolved in commit [hash]
### Skipped (style preferences)
- [description] — [why skipping]
Important Notes
- Do NOT apply fixes automatically — present the summary for the user to decide. (If the user explicitly says "address them" / "fix them" / "apply suggestions", then apply.)
- Cross-reference suggestions with the project's
CLAUDE.md coding standards.
- If two or more reviewers flag the same issue, surface the consensus in the line item (
_(reviewer consensus: Claude + Codex + Gemini)_).
- Flag any suggestions that contradict the project's established patterns.
- Claude reviews live on the issue-thread endpoint, not the pull-request reviews endpoint. Skipping the issue-thread query will silently miss every Claude review.
- CodeRabbit posts its summary on the issue thread but its inline findings on the pulls/comments endpoint. Both must be checked.
- Some reviewers (Copilot, Gemini) post under multiple bot identities depending on action vs app configuration. If
gh shows an unfamiliar *[bot] author with a substantive review body, treat it as a real reviewer until proven otherwise.
Handling Multi-Round Reviews
When a PR has been reviewed multiple times (e.g., after pushing fixes):
- Comments from earlier rounds may reference code that no longer exists (stale comments).
- Check if a comment's file path and line still match the current code.
- Mark stale comments as "Already addressed" rather than re-flagging them.
- Focus the summary on genuinely new comments from the latest review round.
- Each new push usually triggers a fresh review pass from Claude and Codex; CodeRabbit may rate-limit between rounds — note when this happens.
Source: hcslomeu/tfl-monitor — distributed by TomeVault.
1---2name: review-pr-113description: Fetch and summarize AI-generated PR review comments (CodeRabbit, Gemini Code Assist, Codex, Claude, Copilot) and suggest actionable fixes Use when this capability is needed.4---56# Skill: Review PR Comments78Fetch review comments from AI code review agents on a GitHub PR, categorize them by severity, and suggest fixes.910## When to Use1112- After CI passes and AI reviewers have posted comments on a PR.13- When you want a consolidated summary of all review feedback before addressing it.1415**Always check ALL of these reviewers** (any combination may be active on a given repo):16- CodeRabbit (`coderabbitai[bot]`)17- Gemini Code Assist (`gemini-code-assist[bot]`)18- Codex (`chatgpt-codex-connector[bot]`)19- Claude (`claude[bot]`)20- Copilot (`copilot-pull-request-reviewer[bot]`, `github-actions[bot]` running Copilot review actions)2122A reviewer being silent or rate-limited is a valid finding — note it as "no comments" or "rate-limited", do not assume absence means nothing to address.2324## Inputs2526The PR number is passed as an argument: `/review-pr 53`2728If no argument is provided, detect the current branch and find the open PR for it.2930## Workflow31321. **Fetch PR comments** using `gh` CLI. Three surfaces — query all three, they hold different content:33 - Inline review comments: `gh api repos/{owner}/{repo}/pulls/{number}/comments`34 - Review bodies (summary verdicts): `gh api repos/{owner}/{repo}/pulls/{number}/reviews`35 - Issue-thread comments (Claude posts here, as do CodeRabbit summaries + rate-limit notices): `gh api repos/{owner}/{repo}/issues/{number}/comments`36 - Detect the repo owner/name from the current git remote.37382. **Filter** to AI reviewers. Use this jq pattern across all three surfaces:39 ```bash40 --jq '.[] | select(.user.login | test("(?i)^(coderabbit|gemini-code-assist|codex|chatgpt-codex-connector|claude|copilot|github-actions).*\\[bot\\]$"))'41 ```42 Always enumerate all five reviewers explicitly in the output (`coderabbitai[bot]`, `gemini-code-assist[bot]`, `chatgpt-codex-connector[bot]`, `claude[bot]`, `copilot-pull-request-reviewer[bot]`) — if one posted nothing, list it as "no comments" or "rate-limited" so the user can see at a glance which reviewers were active. Do not silently drop a reviewer just because it had no findings.43443. **Categorize** each comment:45 - **Critical** (must fix): Security issues, bugs, crashes, type errors.46 - **Warning** (should fix): Missing error handling, edge cases, best practices.47 - **Suggestion** (consider): Style, naming, refactoring ideas, future improvements.48 - **Already addressed**: Comments marked with "Addressed in commit" or similar, or whose target code no longer exists at the referenced line.49504. **For each actionable comment**, provide:51 - File and line reference.52 - What the reviewer flagged.53 - The suggested fix (code diff if provided by the reviewer).54 - Your assessment: agree, disagree with reason, or "style preference — skip".55565. **Output format**:5758```59## PR #N Review Summary6061### Reviewer status62| Reviewer | Findings |63|---|---|64| CodeRabbit | <count or "rate-limited" or "no comments"> |65| Gemini | <count or "no comments"> |66| Codex | <count or "no comments"> |67| Claude | <count, plus Approve/Comment/Request-changes verdict if posted> |68| Copilot | <count or "no comments"> |6970### Critical (must fix)711. **[file:line]** — [description] _(reviewer consensus: A + B)_72 Fix: [what to change]7374### Warning (should fix)751. **[file:line]** — [description] _(reviewer: X)_76 Fix: [what to change]7778### Suggestion (consider)791. **[file:line]** — [description] _(reviewer: X)_80 Assessment: [agree/skip with reason]8182### Already Addressed83- [description] — resolved in commit [hash]8485### Skipped (style preferences)86- [description] — [why skipping]87```8889## Important Notes9091- Do NOT apply fixes automatically — present the summary for the user to decide. (If the user explicitly says "address them" / "fix them" / "apply suggestions", then apply.)92- Cross-reference suggestions with the project's `CLAUDE.md` coding standards.93- If two or more reviewers flag the same issue, surface the consensus in the line item (`_(reviewer consensus: Claude + Codex + Gemini)_`).94- Flag any suggestions that contradict the project's established patterns.95- Claude reviews live on the **issue-thread** endpoint, not the pull-request reviews endpoint. Skipping the issue-thread query will silently miss every Claude review.96- CodeRabbit posts its summary on the issue thread but its inline findings on the pulls/comments endpoint. Both must be checked.97- Some reviewers (Copilot, Gemini) post under multiple bot identities depending on action vs app configuration. If `gh` shows an unfamiliar `*[bot]` author with a substantive review body, treat it as a real reviewer until proven otherwise.9899### Handling Multi-Round Reviews100101When a PR has been reviewed multiple times (e.g., after pushing fixes):102- Comments from earlier rounds may reference **code that no longer exists** (stale comments).103- Check if a comment's file path and line still match the current code.104- Mark stale comments as "Already addressed" rather than re-flagging them.105- Focus the summary on **genuinely new** comments from the latest review round.106- Each new push usually triggers a fresh review pass from Claude and Codex; CodeRabbit may rate-limit between rounds — note when this happens.107108---109> Source: [hcslomeu/tfl-monitor](https://github.com/hcslomeu/tfl-monitor) — distributed by [TomeVault](https://tomevault.io).110<!-- tomevault:4.0:skill_md:2026-06-15 -->