gh-address-comments · git:20260606.5d8bf48 · 2026-06-06 · sha256 0a8c429ff004109a

gh-address-comments git:20260606.5d8bf48A

Immutable. This exact content is served forever at /api/v1/blob/0a8c429ff004109a.

---
name: gh-address-comments
description: Address actionable GitHub pull request review feedback. Use when the user wants to inspect unresolved review threads, requested changes, or inline review comments on a PR, then implement selected fixes.
---

# GitHub PR Comment Handler

Use this skill when the user wants to work through requested changes on a GitHub pull request. Use the GitHub MCP or `gh` CLI for PR metadata and patch context. Treat thread-aware review data as a `gh api graphql` problem — the flat comment surface does not preserve full review-thread state.

Run all `gh` commands with elevated network access. If CLI auth is required, confirm `gh auth status` first and ask the user to authenticate with `gh auth login` if it fails.

## Workflow

1. **Resolve the PR.**
   - If the user provides a repository and PR number or URL, use that directly.
   - If the request is about the current branch PR, use local git context: `gh pr view --json number,url`.

2. **Inspect review context with thread-aware reads.**
   - Use `gh api graphql` whenever the task depends on unresolved review threads, inline review locations, or resolution state — it fetches `reviewThreads`, `isResolved`, `isOutdated`, and file/line anchors.
   - Use flat comment reads only for lightweight top-level PR comment summaries.

3. **Cluster actionable review threads.**
   - Group comments by file or behavior area.
   - Separate actionable change requests from informational comments, approvals, already-resolved threads, and duplicates.

4. **Confirm scope before editing.**
   - Present numbered actionable threads with a one-line summary of the required change.
   - If the user did not ask to fix everything, ask which threads to address.
   - If the user asks to fix everything, interpret that as all unresolved actionable threads and call out anything ambiguous.

5. **Implement the selected fixes locally.**
   - Keep each code change traceable back to the thread or feedback cluster it addresses.
   - If a comment calls for explanation rather than code, draft the response rather than forcing a code change.

6. **Summarize the result.**
   - List which threads were addressed, which were intentionally left open, and what tests or checks support the change.

## Write Safety

- Do not reply on GitHub, resolve review threads, or submit a review unless the user explicitly asks for that write action.
- If review comments conflict with each other or would cause a behavioral regression, surface the tradeoff before making changes.
- If a comment is ambiguous, ask for clarification or draft a proposed response instead of guessing.
- Do not treat flat PR comments as a complete representation of review-thread state.
- If `gh` hits auth or rate-limit issues mid-run, ask the user to re-authenticate and retry.

## Fallback

If neither the connector nor `gh` can resolve the PR cleanly, tell the user whether the blocker is missing repository scope, missing PR context, or CLI authentication, then ask for the missing repo/PR identifier or a refreshed `gh` login.

## Quick Reference

```bash
# Check auth
gh auth status

# View PR
gh pr view <number> --json number,url,title,state

# List review threads (GraphQL)
gh api graphql -f query='
  query($owner:String!, $repo:String!, $pr:Int!) {
    repository(owner:$owner, name:$repo) {
      pullRequest(number:$pr) {
        reviewThreads(first:50) {
          nodes {
            id
            isResolved
            isOutdated
            comments(first:5) {
              nodes { body path line }
            }
          }
        }
      }
    }
  }
' -f owner=OWNER -f repo=REPO -F pr=NUMBER
```

## Verification

- [ ] Review state came from thread-aware GraphQL reads, not flat comments alone
- [ ] Actionable threads were clustered, numbered, and scope-confirmed before any edit
- [ ] Every change is traceable to the thread or feedback cluster it addresses
- [ ] No GitHub replies, thread resolutions, or review submissions happened without an explicit user request
- [ ] The summary lists addressed threads, intentionally open threads, and the tests or checks supporting the changes