handling-review-comments

sergiodk5's avatarfrom sergiodk5

Handles GitHub pull request review comments. Use when asked to fix review comments, address PR feedback, or resolve review threads. Fetches comments via GitHub CLI, fixes issues in code, replies to reviewers, and resolves threads.

⭐0stars🔀0forks📁View on GitHub🕐Updated Nov 30, 2025

When & Why to Use This Skill

This Claude skill streamlines the post-review development workflow by automating the management of GitHub pull request comments. It leverages the GitHub CLI and GraphQL API to fetch feedback, implement necessary code fixes, communicate with reviewers, and programmatically resolve discussion threads, significantly reducing the manual effort required to move a PR toward approval.

Use Cases

  • Rapidly addressing a high volume of review comments by fetching all feedback into a single context for systematic fixing.
  • Automating the communication loop by generating and posting replies to reviewers that include specific commit references for verified fixes.
  • Managing complex pull requests with numerous discussion threads by programmatically tracking and resolving them once criteria are met.
  • Ensuring consistency in PR maintenance by following a structured workflow of fetching, fixing, verifying, and resolving feedback.
namehandling-review-comments
descriptionHandles GitHub pull request review comments. Use when asked to fix review comments, address PR feedback, or resolve review threads. Fetches comments via GitHub CLI, fixes issues in code, replies to reviewers, and resolves threads.

Handling Review Comments

Process for addressing GitHub PR review comments efficiently using GitHub CLI.

Prerequisites

  • GitHub CLI installed and authenticated: gh auth status
  • Repository cloned locally with push access

Workflow

  1. Fetch comments - Get all review comments from the PR
  2. Fix issues - Implement fixes for each comment
  3. Run checks - Verify fixes pass tests and linting
  4. Commit and push - Group related fixes logically
  5. Reply to comments - Confirm fixes with commit references
  6. Resolve threads - Mark resolved via GraphQL API

Fetching Comments

Get All PR Comments

gh api repos/{owner}/{repo}/pulls/{pr_number}/comments

# Example
gh api repos/sergiodk5/anime-list/pulls/9/comments

Get Review Threads (with resolution status)

gh api graphql -f query='{
  repository(owner: "{owner}", name: "{repo}") {
    pullRequest(number: {pr_number}) {
      reviewThreads(first: 20) {
        nodes {
          id
          isResolved
          comments(first: 1) {
            nodes {
              body
              databaseId
            }
          }
        }
      }
    }
  }
}'

Replying to Comments

gh api repos/{owner}/{repo}/pulls/{pr_number}/comments/{comment_id}/replies \
  -X POST \
  -f body="Fixed in commit {hash}. {description of fix}"

# Example
gh api repos/sergiodk5/anime-list/pulls/9/comments/123456/replies \
  -X POST \
  -f body="Fixed in commit abc123. Added validation as suggested."

Resolving Threads

Single Thread

gh api graphql -f query='
mutation {
  resolveReviewThread(input: {threadId: "THREAD_ID_HERE"}) {
    thread { isResolved }
  }
}'

Multiple Threads

for thread_id in PRRT_abc123 PRRT_def456 PRRT_ghi789; do
  gh api graphql -f query="mutation { resolveReviewThread(input: {threadId: \"$thread_id\"}) { thread { isResolved } } }"
done

Comment Categories

Type Action
Bug/Security Fix immediately, add tests if needed
Nitpick Fix if reasonable, explain if not
Enhancement Acknowledge, create follow-up issue if needed
Question Answer clearly, add code comments if helpful

Before Pushing

npm run format && npm run lint && npm run test:unit

Commit Message Format

Group related fixes in logical commits:

git commit -m "fix: address security review feedback

- Add input validation for user-provided colors
- Escape HTML in dynamic attributes
- Use separate timeout variables to prevent race conditions"

Response Patterns

For fixes:

Fixed in commit abc123. Added validation as suggested.

For acknowledged issues:

Acknowledged. This will be addressed in a follow-up PR.

For clarifications:

This is intentional because [reason]. Happy to discuss further.

For questions:

Good question! This works by [explanation]. Added a code comment for clarity.

Verify Resolution

gh api graphql -f query='{
  repository(owner: "{owner}", name: "{repo}") {
    pullRequest(number: {pr_number}) {
      reviewThreads(first: 20) {
        nodes { isResolved }
      }
    }
  }
}'

Complete Workflow Example

# 1. Fetch comments
gh api repos/sergiodk5/anime-list/pulls/9/comments

# 2. Fix issues in code (manual step)

# 3. Run checks
npm run format && npm run lint && npm run test:unit

# 4. Commit and push
git add . && git commit -m "fix: address review feedback" && git push

# 5. Reply to each comment
gh api repos/sergiodk5/anime-list/pulls/9/comments/{id}/replies \
  -X POST \
  -f body="Fixed in commit abc123..."

# 6. Resolve threads
gh api graphql -f query='mutation { resolveReviewThread(input: {threadId: "..."}) { thread { isResolved } } }'

Best Practices

  1. Fix Before Responding - Implement fix before replying to ensure accuracy
  2. Reference Commits - Include commit hashes so reviewers can verify
  3. Group Related Fixes - Combine related changes in logical commits
  4. Run All Checks - Ensure tests/lint pass before pushing
  5. Be Concise - Keep replies brief but informative