github/pr-threads-address/SKILL.md
Review all unresolved PR review threads, address them by making necessary code changes, and commit the changes appropriately.
npx skillsauth add posit-dev/skills pr-threads-addressInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Usage: /pr-threads-address [PR_NUMBER]
Description: Review all unresolved PR review threads, address them by making necessary code changes, and commit the changes appropriately.
Note: If PR_NUMBER is omitted, the command will automatically detect and use the PR associated with the current branch.
Use this command when you have received PR review feedback and need to systematically address all unresolved threads before the PR can be merged.
/pr-threads-address 42
This will:
Before using this command, check if the gh pr-review extension is installed:
gh extension list | grep -q pr-review || gh extension install agynio/gh-pr-review
Display all reviews, inline comments, and replies for a pull request:
gh pr-review review view --pr <number> --repo <owner/repo>
Common filters:
--reviewer <login> — Filter by specific reviewer--states <list> — Filter by review state (APPROVED, CHANGES_REQUESTED, COMMENTED, DISMISSED)--unresolved — Show only unresolved threads--not_outdated — Exclude outdated threads--tail <n> — Show only the last n replies per thread--include-comment-node-id — Include GraphQL node IDs for repliesExamples:
# View all unresolved comments
gh pr-review review view --pr 42 --unresolved --repo owner/repo
# View comments from a specific reviewer
gh pr-review review view --pr 42 --reviewer username --repo owner/repo
# View only change requests, excluding outdated threads
gh pr-review review view --pr 42 --states CHANGES_REQUESTED --not_outdated --repo owner/repo
Respond to specific review comment threads:
gh pr-review comments reply --thread-id <PRRT_...> --body "<reply-text>" --repo <owner/repo> --pr <number>
Multi-line replies use heredoc syntax:
gh pr-review comments reply --thread-id PRRT_xyz789 --body "$(cat <<'EOF'
Fixed in commit abc123.
The changes include:
- Updated function signature
- Added error handling
- Updated tests
EOF
)" --repo owner/repo --pr 42
gh pr-review threads resolve --thread-id <PRRT_...> --pr <number> --repo <owner/repo>
Create a new pending review to add comments before submission:
gh pr-review review --start --pr <number> --repo <owner/repo>
This returns a review ID (format: PRR_...) needed for adding comments.
Add inline comments to a pending review:
gh pr-review review --add-comment --review-id <PRR_...> --path <file-path> --line <number> --body "<comment-text>" --repo <owner/repo>
Flags:
--review-id — Review ID from --start command (required)--path — File path in the repository (required)--line — Line number for the comment (required)--body — Comment text (required)Finalize and submit a pending review:
gh pr-review review --submit --review-id <PRR_...> --event <EVENT_TYPE> --body "<summary>" --repo <owner/repo>
Event types:
APPROVE — Approve the changesREQUEST_CHANGES — Request changes before mergingCOMMENT — Submit general feedback without explicit approvalRepository Context: Always include --repo owner/repo to ensure correct repository context, or run commands from within a local clone of the repository.
Thread IDs: Thread IDs (format PRRT_...) can be obtained from review view --include-comment-node-id or threads list commands.
Review IDs: Review IDs (format PRR_...) are returned by the review --start command and must be used for adding comments to that review.
State Filters: When using --states, provide a comma-separated list: --states APPROVED,CHANGES_REQUESTED
Unresolved Focus: Use --unresolved --not_outdated together to focus on actionable comments that need attention.
tools
Build modern Shiny dashboards and applications using bslib (Bootstrap 5). Use when creating new Shiny apps, modernizing legacy apps (fluidPage, fluidRow/column, tabsetPanel, wellPanel, shinythemes), or working with bslib page layouts, grid systems, cards, value boxes, navigation, sidebars, filling layouts, theming, accordions, tooltips, popovers, toasts, or bslib inputs. Assumes familiarity with basic Shiny.
development
Review test code for quality, design, and completeness after implementing a feature or fixing a bug. Use when the user asks to "review my tests", "check my test quality", "are these tests good enough", "review testing", or after completing a feature implementation that includes tests. Also use when tests feel brittle, flaky, or superficial. Cross-references production code to find coverage gaps.
tools
Guide for drafting issue closure and decline responses as an open-source package maintainer. Use when helping compose a reply that says "no" to a feature request, closes an issue as won't-fix, redirects a user to a different package, explains why a design choice is intentional, or otherwise declines or closes a community contribution. Also use when the maintainer needs to explain a deprecation, point out a user misunderstanding, or communicate an effort/scope tradeoff to a contributor.
tools
R package development with devtools, testthat, and roxygen2. Use when the user is working on an R package, running tests, writing documentation, or building package infrastructure.