Claudest get-pr-comments
git clone https://github.com/gupsammy/Claudest
T=$(mktemp -d) && git clone --depth=1 https://github.com/gupsammy/Claudest "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/claude-coding/skills/get-pr-comments" ~/.claude/skills/gupsammy-claudest-get-pr-comments && rm -rf "$T"
plugins/claude-coding/skills/get-pr-comments/SKILL.mdGet PR Comments
Fetch, organize, and present all comments on a GitHub pull request — issue-level comments, review bodies, and inline review comments — grouped by human vs bot, with actionable items (must-fix, optional) extracted from structured reviews and inline comments.
Pre-Flight Context
- Current branch:
!git rev-parse --abbrev-ref HEAD - Repo:
!gh repo view --json nameWithOwner --jq .nameWithOwner 2>/dev/null || echo "unknown" - Current branch PR:
!gh pr view --json number,title --jq '"\(.number) — \(.title)"' 2>/dev/null || echo "none"
Workflow
1. Identify the PR
Parse
$ARGUMENTS for a PR number or URL. If present, use it directly.
If no arguments provided, check the pre-flight "Current branch PR" value. If it contains a PR number (not "none"), use the detected PR.
If no PR detected, list open PRs:
gh pr list --state open --limit 10 --json number,title,headRefName --jq '.[] | "\(.number)\t\(.title)\t(\(.headRefName))"'
If the list is empty, report "No open PRs found for this repository" and stop. If only one open PR exists, use it directly. Otherwise present options via AskUserQuestion.
2. Fetch comments
Run the fetch script with the resolved PR number (default text output is pre-formatted and token-efficient; use
--output json only for programmatic
consumers):
python3 ${CLAUDE_PLUGIN_ROOT}/skills/get-pr-comments/scripts/fetch_pr_comments.py <PR_NUMBER>
Exit 0 = proceed. Exit 2 =
gh auth or network error — report to user.
3. Present results
The script output is already formatted for presentation. If the output starts with "0 human, 0 bot", report "No comments on this PR yet" and skip to Step 4.
Otherwise, relay the script output directly. The output is structured as: actionable items (must-fix, optional) first, then human comments, then bot comments (truncated). Do not reformat or reparse — present as-is.
If must-fix items are listed, check whether a subsequent review already resolved them by querying both issue comments and formal PR reviews. Pipe to external
jq — gh api rejects --slurp combined with --jq in
current versions, and --paginate --slurp yields an array-of-pages that
must be flattened with [.[][]]:
# Latest issue-level comment (paginated — PRs may exceed 30 comments): gh api repos/{owner}/{repo}/issues/<PR_NUMBER>/comments --paginate --slurp \ | jq -r '[.[][]] | last | .body // ""' # Latest formal PR review body (approvals and review-body sign-offs land here, # not in issue comments): gh api repos/{owner}/{repo}/pulls/<PR_NUMBER>/reviews --paginate --slurp \ | jq -r '[.[][] | select(.body != "")] | last | .body // ""'
If either output contains phrases like "ready to merge", "all issues fixed", "lgtm", "approved", or similar resolution language, surface that summary first with a note that the listed must-fix items may already be resolved. Then present the full script output.
4. Suggest next steps
After presenting comments, offer context-appropriate actions:
- If must-fix items exist: "Want me to address these must-fix items?"
- If inline comments reference specific files: "Want me to read the referenced files and check if these issues are already resolved?"
- If the PR is the user's: "Want me to respond to any of these comments?"