Files
gh-boneskull-claude-plugins…/commands/resolve-review-comments.md
2025-11-29 18:01:35 +08:00

2.8 KiB

description, argument-hint
description argument-hint
Address any valid, outstanding pull request (PR) review comments
PR_NUMBER

/resolve-review-comments

Purpose

Address any valid, outstanding pull request (PR) review comments

Contract

Inputs: PR_NUMBER (optional) — PR number to check (defaults to current branch's PR) Outputs: STATUS=<OK|FAIL> [key=value ...]

Instructions

  1. Identify the PR:

    • If PR_NUMBER provided, use it
    • Otherwise, detect PR from current branch using gh pr view
  2. Fetch review comments:

    • Get all review threads using GitHub GraphQL API
    • Filter for unresolved threads
    • Show comment details: file, line, author, body
  3. For each unresolved comment:

    • Read the comment and assess validity
    • If valid:
      • Implement the suggested fix
      • Test the fix (lint, run relevant tests)
      • Commit the fix with message referencing the review
      • Push to PR branch
      • Add reply to review comment conversation explaining the fix concisely
      • Mark thread as resolved using GraphQL API
    • If invalid:
      • Add reply to review comment conversation explaining why it's invalid concisely
      • Mark thread as resolved using GraphQL API
    • If unclear:
      • Ask user whether to address it or skip
  4. Output status:

    • Print STATUS=OK RESOLVED=N where N is count of resolved comments
    • Print STATUS=FAIL ERROR="message" on failure

Example Workflow

# 1. Get unresolved review threads
gh api graphql -f query='
  query {
    repository(owner: "OWNER", name: "REPO") {
      pullRequest(number: PR_NUM) {
        reviewThreads(first: 50) {
          nodes {
            id
            isResolved
            comments(first: 10) {
              nodes {
                id
                databaseId
                body
                path
                line
                author { login }
              }
            }
          }
        }
      }
    }
  }
'

# 2. Add reply to review comment conversation (NOT issue comment!)
# Use the first comment's databaseId as in_reply_to
gh api repos/OWNER/REPO/pulls/PR_NUM/comments \
  -f body="✅ Fixed in commit abc1234..." \
  -F in_reply_to=COMMENT_DATABASE_ID

# 3. Resolve the thread
gh api graphql -f query='
  mutation {
    resolveReviewThread(input: {threadId: "THREAD_ID"}) {
      thread { id isResolved }
    }
  }
'

Constraints

  • Only address comments marked as "valid" after analysis
  • Always test fixes before committing
  • Use conventional commit messages referencing the review
  • Atomic commits per review comment
  • Ask user for confirmation on ambiguous cases
  • IMPORTANT: Add replies to review comment conversations (using in_reply_to), NOT to the issue
  • Keep replies concise (1-3 sentences explaining fix or why invalid)