agentsclimarketplace

Reviews

Skill 2389-research/prbuddy/skills/reviews

PR health assistant - monitors CI, triages review comments, fixes issues with systematic prevention. Uses gh CLI and gh-pr-review extension.

Install
npx -y skills add 2389-research/prbuddy --skill reviews

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Review comment triage and handling. Triggers on "review comments", "address feedback", "reviewer asked", "changes requested", "handle comments", "triage reviews".

SKILL.md

6.2 KB, as published. Nobody here has run it

<!-- ABOUTME: Review comment handling sub-skill for prbuddy --> <!-- ABOUTME: Triages comments, fixes critical, creates issues for nitpicks -->

prbuddy:reviews

Overview

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

Workflow

Step 1: Get PR Context and Repo Info

# 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 slug ($REPO) for commands requiring -R
  • PR number ($PR_NUM) for thread operations
  • PR goals from title and body
  • Linked issues from closingIssuesReferences

These define what's "critical" vs "nitpick".

Step 2: Fetch Review Threads

gh pr-review threads list --unresolved --not_outdated -R $REPO $PR_NUM

This returns unresolved, non-outdated review threads.

Step 3: Triage Each Comment

For each thread, classify:

CRITICAL if comment relates to:

  • Linked issues (closingIssuesReferences)
  • Goals stated in PR title/body
  • Security vulnerabilities (always critical)
  • Breaking changes to public API

NITPICK if comment:

  • Suggests improvements unrelated to PR goals
  • Points out style issues not enforced by linters
  • Proposes refactoring beyond PR scope
  • Asks questions not requiring code changes

Step 4: Handle Critical Comments

For each critical comment:

4a: Analyze the Feedback

Read the comment carefully. Understand what the reviewer wants.

4b: Consult PAL

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?"

4c: Implement Fix

Make the code changes.

4d: Identify Prevention

What systematic change would prevent this class of issue?

  1. Linter rule - Add ESLint/Prettier/etc. rule (strongest)
  2. Pre-commit hook - Add check to .pre-commit-config.yaml
  3. CI check - Add earlier/faster check
  4. Type system - Stricter TypeScript config
  5. Test - Add test for this case
  6. Documentation - Update CLAUDE.md if agent guidance (weakest)

4e: Commit

git add [files]
git commit -m "fix: [description] (addresses review)

- Fixed: [what was fixed]
- Prevention: [systematic change]"

4f: Reply to Thread

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

4g: Resolve Thread (Optional)

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

Step 5: Handle Nitpick Comments

For each nitpick comment:

5a: Search for Duplicates

gh search issues --repo $REPO "<search terms from comment>"

Check if similar issue already exists.

5b: Create Issue (if no duplicate)

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 suggestions
  • documentation - Doc improvements
  • enhancement - Feature suggestions
  • good-first-issue - Simple fixes

5c: Reply to Thread

gh 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

5d: Resolve Thread (Optional)

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

Step 6: Push Changes

git push

Step 7: Report Summary

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.

Commands Reference

TaskCommand
List threadsgh pr-review threads list --unresolved --not_outdated -R $REPO $PR_NUM
Replygh pr-review comments reply --thread-id <id> --body <msg> -R $REPO $PR_NUM
Resolvegh pr-review threads resolve --thread-id <id> -R $REPO $PR_NUM
Search issuesgh search issues --repo $REPO "<terms>"
Create issuegh issue create -R $REPO --title --body --label
List labelsgh label list -R $REPO --json name
Create labelgh label create <name> --color <hex> --description <desc> -R $REPO

Triage Decision Tree

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

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.