From gh-pr-tools
Show a quick summary of PR review thread statuses on GitHub. Use when the user wants to check PR status, see remaining comments, review thread summary, or triage before resolving.
npx claudepluginhub shouenlee/ghcp-dev-plugin --plugin gh-pr-toolsThis skill uses the workspace's default tool permissions.
Show a quick read-only summary of review thread statuses on a GitHub pull request.
Fetches unresolved GitHub PR review comments via script, analyzes against current code by file, categorizes as 'should address' or 'can ignore', and summarizes fixes.
Follows up on GitHub/GitLab PR/MR review threads: classifies unresolved/replied/resolved/silent states, checks commit coverage for fixes, drafts replies. Use for checking feedback responses or thread resolutions.
Fetches unresolved GitHub PR review comments, filtered by author/reviewer role and recency (last-review or date). Use to address feedback, check resolutions, or resume PR work.
Share bugs, ideas, or general feedback.
Show a quick read-only summary of review thread statuses on a GitHub pull request. No files are modified — this is purely informational.
/pr-status <PR-number-or-URL>
No flags — this is a lightweight status check.
gh CLI must be installed and authenticated (gh auth status)Accept any of these formats:
123 or #123https://github.com/{owner}/{repo}/pull/{number}gh pr view --json number --jq '.number'Fetch PR metadata and review threads in parallel:
PR metadata (REST):
gh pr view <number> --json title,author,state,baseRefName,headRefName,reviewDecision,reviews
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:100) {
nodes {
isResolved
isOutdated
comments(first:10) {
nodes {
body
author { login }
path
line
}
}
}
}
}
}
}' -f owner='{owner}' -f repo='{repo}' -F pr='{number}'
Use gh repo view --json owner,name --jq '.owner.login + " " + .name' to get owner and repo dynamically.
For each review thread, determine its status:
| Status | Meaning |
|---|---|
Unresolved (isResolved == false) | Needs attention |
Resolved (isResolved == true) | Addressed |
Outdated (isOutdated == true) | Code has changed since comment |
Also categorize by whether the thread has file context (path is set) or is a general PR-level comment.
Bot detection: Filter out threads where the comment author login ends with [bot] (e.g., dependabot, github-actions, codeql, codecov, renovate).
## PR #<number> - <title>
**Source:** <headRefName> → **Target:** <baseRefName>
**State:** <state> | **Author:** <author> | **Review decision:** <reviewDecision>
### Review Threads
| Status | Count |
|--------|-------|
| Unresolved | <n> |
| Resolved | <n> |
| Outdated | <n> |
| Total | <n> |
### Reviews
| Reviewer | State |
|----------|-------|
| <login> | APPROVED / CHANGES_REQUESTED / COMMENTED |
### Unresolved Threads (<count>)
| File | Line | Reviewer | Comment |
|------|------|----------|---------|
| <path> | <line> | <author> | <first 80 chars of comment> |
### General Comments (<count>)
- <comment text>
If there are no unresolved threads, say: "All review threads are resolved."
If there are unresolved threads, suggest: "Run /resolve-pr <number> to address these comments."
gh not authenticated: Suggest running gh auth login.