Claudest get-pr-comments

install
source · Clone the upstream repo
git clone https://github.com/gupsammy/Claudest
Claude Code · Install into ~/.claude/skills/
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"
manifest: plugins/claude-coding/skills/get-pr-comments/SKILL.md
source content

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