Agent skill

PR Review Response

by bradygaster in bradygaster/squad

Teaches agents to reply to PR review comment threads after fixing issues, making resolutions traceable

MITAuto-check passedDevelopment

Install PR Review Response

skills CLI
$ npx skills add bradygaster/squad --skill pr-review-response -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install bradygaster/squad pr-review-response --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/bradygaster/squad.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.squad-templates/skills/pr-review-response .claude/skills/pr-review-response && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
pr-review-response
GitHub stars
3.3k
Token cost
~2.7k tokens
SKILL.md length
880 words
Files
1
Skills in repo
31
Repo updated
First seen
Licence
MIT

At a glance

Teaches agents to reply to PR review comment threads after fixing issues, making resolutions traceable

  • Works in 5 steps: Read the review comments → Fix the code → Reply to each review thread → …
  • Tasks that involve Pull requests
  • SKILL.md covers Context, SCOPE, Patterns and AGENT WORKFLOW (Summary), plus 2 more sections
  • Calls gh and git

What it does

PR Review Response is an agent skill from bradygaster/squad. Teaches agents to reply to PR review comment threads after fixing issues, making resolutions traceable

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Pull requests. The repository describes itself as: Squad: AI agent teams for any project. The licence is MIT.

When your agent uses it

  • Tasks that involve Pull requests

Example prompts

  • “Use the pr-review-response skill to teach agents to reply to PR review comment threads after fixing issues, making resolutions traceable”
  • “/pr-review-response”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Read the review comments
  2. Fix the code
  3. Reply to each review thread
  4. Resolve threads (optional, GraphQL only)
  5. Commit message traceability

What it can do on your machine

Read from SKILL.md and the folder at commit 71818eb. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh and git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

PR Review Response loads about 2.7k tokens when it runs. Until then it costs about 30 tokens; SKILL.md has 880 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~30
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from bradygaster/squad at commit 71818eb, republished under its MIT licence (© bradygaster). 880 words, ~2,655 tokens.

Download SKILL.mdSave it as .claude/skills/pr-review-response/SKILL.md (or your agent's skills folder).
name
pr-review-response
description
Teaches agents to reply to PR review comment threads after fixing issues, making resolutions traceable
domain
pull-requests, code-review, traceability
confidence
low
source
observed (agents fix review feedback silently — reviewers can't tell which comments were addressed)

Context

When an agent fixes code in response to PR review comments (from Copilot, a human reviewer, or any GitHub reviewer), the fix alone is not enough. The reviewer needs to see — on the PR thread itself — which comments were addressed and how. Without replies, comments stay visually unresolved, reviewers must re-read the entire diff to verify fixes, and there's no traceable link between feedback and resolution.

Use this skill whenever:

  • You are fixing code based on PR review feedback
  • You are addressing Copilot review suggestions
  • You are responding to reviewer-requested changes on a PR
  • A squad member hands you review comments to resolve

SCOPE

✅ THIS SKILL PRODUCES:

  • Reply comments on each review thread explaining the fix
  • Optionally resolved threads (via GraphQL when appropriate)
  • Commit messages that reference the PR and review context

❌ THIS SKILL DOES NOT PRODUCE:

  • The code fixes themselves (that's the agent's domain work)
  • New review comments or reviews
  • PR descriptions or summaries

Patterns

Step 1: Read the review comments

Using MCP tools (preferred when available):

github-mcp-server-pull_request_read
  method: "get_review_comments"
  owner: "{owner}"
  repo: "{repo}"
  pullNumber: {pr_number}

This returns review threads with metadata: isResolved, isOutdated, isCollapsed, and their associated comments. Each comment has an id you'll need for replies.

Using gh CLI (fallback):

bash
gh api repos/{owner}/{repo}/pulls/{pr_number}/comments --paginate

Each comment object contains id, body, path, line, and in_reply_to_id. Top-level comments have no in_reply_to_id — those are the ones you reply to.

Step 2: Fix the code

Make the actual code changes. This is your normal domain work — the skill doesn't prescribe how to fix, only how to communicate the fix.

Track what you changed. For each review comment, note:

  • The comment id (top-level, not a reply)
  • The file and line referenced
  • What you actually changed (brief description)
  • The commit SHA after pushing (if available)
Step 3: Reply to each review thread

After fixing and committing, reply to each review comment thread individually.

REST API call (via gh CLI):

bash
gh api repos/{owner}/{repo}/pulls/{pr_number}/comments/{comment_id}/replies \
  -f body="Fixed in {sha_short} — {brief description of what was changed}"

Important: {comment_id} must be the ID of the top-level comment in the thread. You cannot reply to a reply — only to the original review comment.

Example replies:

bash
# Specific and traceable
gh api repos/bradygaster/squad/pulls/42/comments/18234/replies \
  -f body="Fixed in a1b2c3d — switched to path.dirname(squadDirInfo.path) for worktree consistency"

# When applying a suggested code change
gh api repos/bradygaster/squad/pulls/42/comments/18235/replies \
  -f body="Applied suggestion — updated error message to include the file path for debuggability"

# When pushing back on a suggestion
gh api repos/bradygaster/squad/pulls/42/comments/18236/replies \
  -f body="Considered but not applied — this path needs to stay absolute because worktree resolution depends on it. See detectSquadDir() in detect-squad-dir.ts."
Step 4: Resolve threads (optional, GraphQL only)

Thread resolution is only available via the GitHub GraphQL API. Use this when your fix fully addresses the comment and no further discussion is needed.

First, get the thread IDs (they're different from comment IDs):

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

Match thread IDs to comment IDs using databaseId, then resolve:

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

When to resolve vs. leave open:

  • ✅ Resolve: You fixed exactly what was requested, no ambiguity
  • ❌ Don't resolve: You pushed back, applied a different fix, or the comment needs further discussion
  • ❌ Don't resolve: The reviewer is a human — let them confirm and resolve themselves

Rule of thumb: Agent-to-agent threads (e.g., Copilot review → agent fix) can be resolved by the fixer. Human reviewer threads should be left for the human to resolve.

Step 5: Commit message traceability

Commit messages should reference the PR context:

fix: address review feedback on PR #{pr_number}

- Switched to path.dirname() for worktree path resolution (comment #18234)
- Updated error message to include file path (comment #18235)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

For single-comment fixes, a shorter format works:

fix: use path.dirname() for worktree consistency (PR #{pr_number} review)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

AGENT WORKFLOW (Summary)

  1. READ — Fetch review threads using MCP tool or gh api
  2. FIX — Make code changes, tracking comment ID → change mapping
  3. COMMIT — Push with traceable commit message referencing PR and comments
  4. REPLY — Post individual reply to each thread via gh api .../replies
  5. RESOLVE — (Optional) Resolve agent-to-agent threads via GraphQL
  6. STOP — Do not batch-reply, do not skip threads, do not resolve human threads
Show full SKILL.md (359 more words)Show less

Examples

Example: Copilot flags a potential null dereference

Review comment (id: 55123):

squadDir could be undefined here. Consider adding a null check.

Agent workflow:

  1. Read the comment via get_review_comments
  2. Add the null check in src/cli/core/detect-squad-dir.ts
  3. Commit: fix: add null check for squadDir (PR #99 review)
  4. Reply:
    bash
    gh api repos/bradygaster/squad/pulls/99/comments/55123/replies \
      -f body="Fixed in f4e5d6c — added early return when squadDir is undefined, matching the pattern in loadConfig()"
  5. Resolve the thread (Copilot → agent, safe to resolve)
Example: Multiple review comments on one PR

Comments:

  • id: 55123 — "Null check needed" on detect-squad-dir.ts:42
  • id: 55124 — "Consider using path.join()" on detect-squad-dir.ts:58
  • id: 55125 — "This log message is too verbose" on output.ts:15

Agent handles each individually:

bash
# Fix all three, commit
git add packages/squad-cli/src/cli/core/detect-squad-dir.ts packages/squad-cli/src/cli/core/output.ts
git commit -m "fix: address 3 review comments on PR #99

- Added null check for squadDir (comment #55123)
- Switched to path.join() for cross-platform paths (comment #55124)
- Reduced log verbosity to debug level (comment #55125)"

git push

# Reply to each thread individually
gh api repos/bradygaster/squad/pulls/99/comments/55123/replies \
  -f body="Fixed — added early return when squadDir is undefined"

gh api repos/bradygaster/squad/pulls/99/comments/55124/replies \
  -f body="Fixed — switched to path.join(squadDir, 'config.json') for cross-platform consistency"

gh api repos/bradygaster/squad/pulls/99/comments/55125/replies \
  -f body="Fixed — changed from console.log to debug() so it only shows with --verbose flag"
Example: Handling Copilot suggestion blocks

Copilot sometimes provides suggestion blocks with exact code to apply:

Review comment (id: 55130):

Consider using optional chaining:
```suggestion
const name = config?.agent?.name ?? 'default';
```

Reply format when applying:

bash
gh api repos/bradygaster/squad/pulls/99/comments/55130/replies \
  -f body="Applied suggestion — using optional chaining with nullish coalescing"

Reply format when not applying:

bash
gh api repos/bradygaster/squad/pulls/99/comments/55130/replies \
  -f body="Not applied — config is guaranteed non-null at this point (validated on line 12). Optional chaining would mask errors."
Example: Pushing back on a review comment

Not every review comment should be accepted. When a suggestion is incorrect or doesn't apply:

bash
gh api repos/bradygaster/squad/pulls/99/comments/55140/replies \
  -f body="Considered but not applied — this file is in the zero-dependency bootstrap set (see copilot-instructions.md § Protected Files). Adding path.join() would require importing from the SDK, which breaks the bootstrap constraint."

Do NOT resolve the thread when pushing back. Leave it open for the reviewer to confirm.

Anti-Patterns

  • ❌ Fixing silently — Making code changes without replying to the review thread. The reviewer has no way to know which comments were addressed.
  • ❌ Batch-replying "all fixed" — A single comment saying "Addressed all review feedback" on the PR. Each thread needs its own reply so reviewers can verify individually.
  • ❌ Resolving without explaining — Marking threads resolved without posting a reply first. The resolution gives no context on what was done.
  • ❌ Resolving human reviewer threads — Only resolve threads from automated reviewers (Copilot, bots). Let human reviewers confirm and resolve their own threads.
  • ❌ Vague replies — "Fixed" or "Done" without saying what was changed. The reply should be specific enough that the reviewer doesn't need to re-read the diff.
  • ❌ Replying before pushing — Reply after your fix is committed and pushed, not before. The reply should reference actual committed code.
  • ❌ Ignoring comments you disagree with — If you don't apply a suggestion, reply explaining why. Silence looks like you missed it.
  • ❌ Replying to replies — The REST API only supports replying to top-level review comments. Attempting to reply to a reply will fail with a 404.

© bradygaster, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .squad-templates/skills/pr-review-response of bradygaster/squad.

Open the folder on GitHubat commit 71818eb

Compare with similar skills

PR Review Response next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

PR Review Response compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
PR Review Response this skillbradygaster/squad3.3k—~2.7kAutomated safety check: PassMIT
Finishing a Development Branchobra/superpowers297k5 repos~1.9kAutomated safety check: PassMIT
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Check PRonyx-dot-app/onyx32k2 repos~2.3kAutomated safety check: PassMIT
PR Design DocOpenHands/OpenHands90k—~2.4kAutomated safety check: PassMIT
WooCommerce Code Reviewwoocommerce/woocommerce11k3 repos~1.1kAutomated safety check: PassCustom licence

Similar skills

  • Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.

    297k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • Check PR

    onyx-dot-app/onyx

    Checks a GitHub, GitLab, or Perforce (p4) pull request (or merge request, or shelved changelist) for unresolved review comments, failing status checks, and incomplete PR descriptions.

    32k GitHub starsUsed in 2 repos~2.3k tokens
    DevelopmentAuto-check passed
  • PR Design Doc

    OpenHands/OpenHands

    For a non-trivial pull request, write a self-contained HTML design doc under the temporary .pr/ directory and link a visibility-appropriate preview in the PR description, so maintainers grasp the…

    90k GitHub stars~2.4k tokensUpdated today
    DevelopmentAuto-check passed
  • WooCommerce Code Review

    woocommerce/woocommerce

    Reviews WooCommerce code changes against the project's standards, flagging backend PHP architecture, naming, documentation, data integrity and testing violations.

    11k GitHub starsUsed in 3 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Record PR Demo

    payloadcms/payload

    A skill your agent uses when a Payload pull request needs a concise visual walkthrough for reviewers.

    45k GitHub stars~1k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from bradygaster/squad

All 31 skills in this repo
  • Fact Checking

    bradygaster/squad

    Review and validate claims using counter-hypothesis testing.

    3.3k GitHub stars~503 tokensUpdated yesterday
    Auto-check passed
  • Architectural Review

    bradygaster/squad

    How to review PRs for architectural quality — module boundaries, dependency direction, export surface, pattern consistency

    3.3k GitHub stars~2.2k tokensUpdated yesterday
    Auto-check passed
  • Archival Integrity

    bradygaster/squad

    Preserve content when moving entries between tracked Squad state files

    3.3k GitHub stars~735 tokensUpdated yesterday
    Auto-check passed
  • CI Validation Gates

    bradygaster/squad

    Defensive CI/CD patterns: semver validation, token checks, retry logic, and draft detection

    3.3k GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed
  • CLI Wiring

    bradygaster/squad

    Checklist and patterns for wiring new CLI commands into cli-entry.ts

    3.3k GitHub stars~501 tokensUpdated yesterday
    Auto-check passed
  • Enables squad agents on different machines to share work via git-based task queuing

    3.3k GitHub stars~2.7k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about PR Review Response

What does PR Review Response do?

Teaches agents to reply to PR review comment threads after fixing issues, making resolutions traceable. PR Review Response is an agent skill from bradygaster/squad.

When should I use PR Review Response?

PR Review Response fits situations like: tasks that involve Pull requests.

How do I install PR Review Response in Claude Code?

Run `npx skills add bradygaster/squad --skill pr-review-response -a claude-code`. Or copy the skill folder (.squad-templates/skills/pr-review-response in bradygaster/squad) into .claude/skills/pr-review-response in your project. Claude Code loads it when a task matches its description.

How do I install PR Review Response in Codex?

Run `npx skills add bradygaster/squad --skill pr-review-response -a codex`. Or copy the skill folder (.squad-templates/skills/pr-review-response in bradygaster/squad) into .agents/skills/pr-review-response in your project. Codex loads it when a task matches its description.

Can I use PR Review Response in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add bradygaster/squad --skill pr-review-response -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pr-review-response, .gemini/skills/pr-review-response, .github/skills/pr-review-response and .opencode/skills/pr-review-response in your project.

What does PR Review Response need to run?

Going by SKILL.md and its folder, PR Review Response needs the command-line tools its instructions call (gh and git).

Does PR Review Response access the network?

SKILL.md contains no URLs. Its commands use gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is PR Review Response safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does PR Review Response use?

PR Review Response is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does PR Review Response use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to PR Review Response?

Skills that share tags, products or a category with PR Review Response: Finishing a Development Branch (obra/superpowers, 297k stars), PR Babysitter (openinterpreter/openinterpreter, 69k stars), Check PR (onyx-dot-app/onyx, 32k stars) and PR Design Doc (OpenHands/OpenHands, 90k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains PR Review Response?

bradygaster (a GitHub user) maintains it in bradygaster/squad, which has 3,259 GitHub stars. The repository holds 31 skills in this directory. The repository was last updated on October 9, 2026.

Source: bradygaster/squad on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.