From prbuddy
Triages GitHub PR review comments: fixes critical issues aligned with PR goals, creates issues for nitpicks. Requires gh-pr-review extension.
npx claudepluginhub 2389-research/claude-plugins --plugin prbuddyThis skill uses the workspace's default tool permissions.
<!-- ABOUTME: Review comment handling sub-skill for prbuddy -->
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Discovers and triages PR review comments. Fixes critical issues (aligned with PR goals) and creates GitHub issues for nitpicks (valid but out of scope).
Requires: gh-pr-review extension
gh extension install agynio/gh-pr-review
# Get repo slug for -R flag
REPO=$(gh repo view --json nameWithOwner -q .nameWithOwner)
# Get PR number
PR_NUM=$(gh pr view --json number -q .number)
# Get PR details
gh pr view --json number,title,body,closingIssuesReferences
Extract:
$REPO) for commands requiring -R$PR_NUM) for thread operationsclosingIssuesReferencesThese define what's "critical" vs "nitpick".
gh pr-review threads list --unresolved --not_outdated -R $REPO $PR_NUM
This returns unresolved, non-outdated review threads.
For each thread, classify:
CRITICAL if comment relates to:
closingIssuesReferences)NITPICK if comment:
For each critical comment:
Read the comment carefully. Understand what the reviewer wants.
mcp__pal__chat: "Review comment analysis:
Reviewer said: [comment text]
PR goal: [from PR body/linked issues]
Code context: [relevant file/function]
What's the best fix approach considering the reviewer's expertise?"
Make the code changes.
What systematic change would prevent this class of issue?
.pre-commit-config.yamlgit add [files]
git commit -m "fix: [description] (addresses review)
- Fixed: [what was fixed]
- Prevention: [systematic change]"
gh pr-review comments reply \
--thread-id <thread-id> \
--body "Fixed in [commit].
Changes:
- [what was changed]
Prevention added:
- [systematic change]" \
-R $REPO $PR_NUM
Note: Some teams prefer only reviewers resolve their own threads. Ask the user before resolving, or skip this step if team norms require reviewer resolution.
gh pr-review threads resolve --thread-id <thread-id> -R $REPO $PR_NUM
For each nitpick comment:
gh search issues --repo $REPO "<search terms from comment>"
Check if similar issue already exists.
Determine appropriate labels:
gh label list -R $REPO --json name,description
If needed label doesn't exist:
gh label create "from-review" --color "c5def5" --description "Created from PR review comment" -R $REPO
Create the issue:
gh issue create -R $REPO \
--title "<concise title>" \
--body "## Context
From PR #$PR_NUM review by @<reviewer>.
## Original Comment
> <quoted comment>
## Suggested Action
<what should be done>
## Related
- PR: #$PR_NUM
- File: <path>
- Line: <line number>" \
--label "from-review,<type-label>"
Type labels:
tech-debt - Refactoring suggestionsdocumentation - Doc improvementsenhancement - Feature suggestionsgood-first-issue - Simple fixesgh pr-review comments reply \
--thread-id <thread-id> \
--body "Good catch! This is outside the scope of this PR (focused on [PR goal]).
Created issue #<number> to track this." \
-R $REPO $PR_NUM
Note: Some teams prefer only reviewers resolve their own threads. Ask the user before resolving, or skip this step if team norms require reviewer resolution.
gh pr-review threads resolve --thread-id <thread-id> -R $REPO $PR_NUM
git push
Review Comments Handled
Critical (fixed):
- @reviewer1 on src/api.ts:23 - Added input validation [commit abc123]
Prevention: Added eslint-plugin-security rule
Nitpicks (issues created):
- @reviewer1 on src/utils.ts:15 - Issue #52 (refactor helper)
- @reviewer2 on README.md:45 - Issue #53 (fix typo)
All threads resolved. Changes pushed.
| Task | Command |
|---|---|
| List threads | gh pr-review threads list --unresolved --not_outdated -R $REPO $PR_NUM |
| Reply | gh pr-review comments reply --thread-id <id> --body <msg> -R $REPO $PR_NUM |
| Resolve | gh pr-review threads resolve --thread-id <id> -R $REPO $PR_NUM |
| Search issues | gh search issues --repo $REPO "<terms>" |
| Create issue | gh issue create -R $REPO --title --body --label |
| List labels | gh label list -R $REPO --json name |
| Create label | gh label create <name> --color <hex> --description <desc> -R $REPO |
Is this comment about...
├── Security vulnerability?
│ └── CRITICAL (always)
│
├── Something in closingIssuesReferences?
│ └── CRITICAL
│
├── A goal stated in PR title/body?
│ └── CRITICAL
│
├── Breaking change to public API?
│ └── CRITICAL
│
└── Something else?
└── NITPICK → Create issue