Agent skill

Review PR Comments

by latitude-dev in latitude-dev/latitude-llm

Triages a PR with GitHub CLI: loads issue-level and inline review feedback (gh pr view, gh api REST, gh api graphql as appropriate), walks items in order, replies in the correct thread, optional…

MITAuto-check passedBackend & APIs

Install Review PR Comments

skills CLI
$ npx skills add latitude-dev/latitude-llm --skill review-pr-comments -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install latitude-dev/latitude-llm review-pr-comments --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/latitude-dev/latitude-llm.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/review-pr-comments .claude/skills/review-pr-comments && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
review-pr-comments
GitHub stars
4.7k
Token cost
~2.6k tokens
SKILL.md length
1,187 words
Files
1
Skills in repo
28
Repo updated
First seen
Licence
MIT

At a glance

Triages a PR with GitHub CLI: loads issue-level and inline review feedback (gh pr view, gh api REST, gh api graphql as appropriate), walks items in order, replies in the correct thread, optional…

  • Works in 4 steps: Resolve the PR → Load all review artifacts (do not skip… → Process comments in order (one pass,… → …
  • Addressing PR review comments
  • SKILL.md covers Prerequisites, Pick the best gh command per…, 1. Resolve the PR and 2. Load all review artifacts…, plus 4 more sections
  • Calls gh and git

What it does

Review PR Comments is an agent skill from latitude-dev/latitude-llm. Triages a PR with GitHub CLI: loads issue-level and inline review feedback (gh pr view, gh api REST, gh api graphql as appropriate), walks items in order, replies in the correct thread, optional resolve. Groups duplicate comments into one fix. Use when addressing PR review comments, Copilot inline threads, or babysitting PR feedback.

Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering Pull requests and GraphQL. It works with GraphQL and GitHub. The repository describes itself as: Open-source observability for AI agents. Find where your agents fail, dispatch your coding agent to fix it, and verify the fix against real traces. The licence is MIT.

When your agent uses it

  • Addressing PR review comments
  • Copilot inline threads
  • Babysitting PR feedback

Example prompts

  • “Use the review-pr-comments skill to triage a PR with GitHub CLI: loads issue-level and inline review feedback (gh pr view, gh api REST, gh api…”
  • “/review-pr-comments”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Resolve the PR
  2. Load all review artifacts (do not skip inline)
  3. Process comments in order (one pass, dedupe fixes)
  4. Tracking progress

What it can do on your machine

Read from SKILL.md and the folder at commit 12e8591. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh and git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Review PR Comments loads about 2.6k tokens when it runs. Until then it costs about 89 tokens; SKILL.md has 1,187 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~89
When it runs · the whole SKILL.md, loaded when a task matches
~2.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from latitude-dev/latitude-llm at commit 12e8591, republished under its MIT licence (© latitude-dev). 1,187 words, ~2,607 tokens.

Download SKILL.mdSave it as .claude/skills/review-pr-comments/SKILL.md (or your agent's skills folder).
name
review-pr-comments
description
Triages a PR with GitHub CLI: loads issue-level and inline review feedback (gh pr view, gh api REST, gh api graphql as appropriate), walks items in order, replies in the correct thread, optional resolve. Groups duplicate comments into one fix. Use when addressing PR review comments, Copilot inline threads, or babysitting PR feedback.

PR comments: sequential review workflow

Walk the current PR’s feedback in order, one topic at a time. Treat each comment as something to read and answer; treat each underlying issue as something to fix once. If several comments say the same thing (or the first fix already covers a later remark), do not redo the same code work—use one commit for that shared fix and reply on each later comment pointing at that commit (e.g. “Addressed in <sha> — same fix as …”).

Prerequisites

  • gh authenticated (gh auth status).
  • A PR for the checked-out branch (gh pr view without a number targets it).
  • Follow repo rules for git write: do not commit or push unless authorized for this session.

Pick the best gh command per step

gh pr …, gh api (REST), and gh api graphql hit different GitHub APIs—same intent, not interchangeable. There is no blanket rule favoring one surface; choose whatever is correct and clearest for that action.

StepTypically strongest optionWhy
Quick PR metadatagh pr view --json number,url,title,…Native fields, branch defaults
Readable timeline + review summariesgh pr view --commentsHuman-readable; good scan
Structured issue comments / review objectsgh pr view --json comments,reviews,latestReviewsEasy JSON for sorting
Inline comments plus threads, resolve stategh api graphql (reviewThreads)Threads + isResolved + thread.id for mutations
Flat list of inline comments onlygh api repos/{owner}/{repo}/pulls/<n>/comments --paginateSimple; reply ids (id) for REST replies
Post a conversation commentgh pr commentCorrect for timeline
Reply under a line commentgh api -X POST …/pulls/<n>/comments/<id>/repliesgh pr comment does not thread on the diff
Resolve a review threadgh api graphql (resolveReviewThread)Only API that exposes it
Inspect the patchgh pr diffFirst-class diff
Need UI context (complex thread)gh pr view --webWhen it helps—no ban

Facts that drive the choice (not preferences): gh pr view does not return inline PullRequestReviewComment payloads in JSON (see §2.1)—load those with REST or GraphQL or you will miss most line-level review and Copilot feedback.

1. Resolve the PR

From the repo root:

bash
gh pr view --json number,url,title,headRefName,baseRefName

If no PR exists for the branch, stop and tell the user.

2. Load all review artifacts (do not skip inline)

Build a full work list before changing code. Most reviewer and Copilot feedback is on PullRequestReviewComment (inline on the diff), not in issue comments. If you only run gh pr view, you will miss that feedback.

2.1 What gh pr view does and does not include
SourceWhat you get
gh pr view --commentsRenders issue-level conversation comments and review submission summaries (the body of each review). It does not list individual inline line comments. A review that says “Copilot generated 1 comment” only references that inline comment—the inline text is not in this output.
gh pr view --json commentsIssue / timeline comments on the PR only. Often empty when all feedback is inline.
gh pr view --json reviews,latestReviewsSubmitted review metadata and review bodies (summary text), not the per-line PullRequestReviewComment payloads.

gh pr view --help lists JSON fields such as comments, reviews, latestReviews, reviewRequests—there is no field for inline review comments or reviewThreads. No gh pr subcommand exposes GET /repos/.../pulls/{pr}/comments.

Conclusion: after only gh pr view, you are still blind to inline comments until you also load PullRequestReviewComment data (REST or GraphQL below).

2.2 Inline review comments (required — pick the best fetch)

You must load inline comments every time; gh pr alone cannot. Choose one or combine:

A — GraphQL: best when you want threads (id, isResolved), grouping, inline bodies path / line / author, and thread.id for resolve—in one shaped query.

Resolve owner and repo once (examples):

bash
gh repo view --json owner,name -q '"\(.owner.login)/\(.name)"'
# or: OWNER=$(gh repo view --json owner -q .owner.login); NAME=$(gh repo view --json name -q .name)

Example query (raise first / paginate if the PR is huge):

bash
gh api graphql -f query='
query($owner: String!, $name: String!, $number: Int!) {
  repository(owner: $owner, name: $name) {
    pullRequest(number: $number) {
      reviewThreads(first: 100) {
        pageInfo { hasNextPage endCursor }
        nodes {
          id
          isResolved
          isOutdated
          comments(first: 50) {
            nodes {
              databaseId
              body
              path
              line
              createdAt
              author { login }
            }
          }
        }
      }
    }
  }
}' -f owner='OWNER' -f name='REPO' -F number=PR_NUMBER

If pageInfo.hasNextPage is true, follow with additional requests using after: cursors on reviewThreads (same pattern as standard GraphQL pagination).

Use thread.id (Node id) for §3.7 resolve. Use each comment’s databaseId as the REST id when posting .../pulls/{n}/comments/{id}/replies (they are the same numeric id GitHub uses in the REST API).

B — REST: flat list of every inline comment—minimal mental overhead; each node has id for .../replies.

bash
gh api "repos/{owner}/{repo}/pulls/PR_NUMBER/comments" --paginate

Each item includes id, body, path, line, in_reply_to_id, created_at, html_url, etc. No thread grouping or isResolved—prefer A when you need those.

2.3 Issue-level and summary context

Use gh pr where it is strongest (readable + structured issue/review summaries):

bash
gh pr view [<PR_NUMBER>] --comments
gh pr view [<PR_NUMBER>] --json comments,reviews,latestReviews
gh pr diff [<PR_NUMBER>]
Show full SKILL.md (481 more words)Show less
2.4 Merge into one ordered work list

Combine issue/timeline comments (from JSON or --comments) with every inline comment (from §2.2). Normalize timestamps and sort chronologically (oldest first) unless the user specifies otherwise. When using GraphQL threads, flatten reviewThreads → comments for ordering, but keep thread.id handy for resolve and for understanding which replies belong together.

Duplication: cluster items that ask for the same change; implement once and reply to each comment in that cluster.

3. Process comments in order (one pass, dedupe fixes)

For each item in chronological order:

3.1 Read

Combine whatever helps: gh pr view output, gh api / GraphQL payloads, gh pr diff, and gh pr view --web if the UI makes thread context obvious. Goal is complete understanding, not a specific subcommand.

3.2 Interpret

Classify: change request, question, nit, or discussion. Note which files/behavior it touches.

3.3 Judge

Decide if it is right, unclear, or you disagree. Skip or discuss without code when appropriate.

3.4 Implement (when needed)

If this comment’s underlying issue is already fixed by a commit you made for an earlier comment in this run, do not edit the code again—go to 3.6 and reply that it is covered.

Otherwise, apply only that scoped fix. Same cluster → one commit for that cluster.

3.5 Commit and push
  • Single distinct issue (possibly mentioned by several comments): one commit; push when ready.
  • Separate issues: separate commits.

After pushing, capture commit SHA (e.g. git rev-parse HEAD) for replies.

3.6 Reply in the right place

Timeline / issue comment — gh pr comment is the right surface:

bash
gh pr comment [<PR_NUMBER>] --body '...'

Inline thread — REST reply endpoint (only reliable way to nest under the line):

bash
gh api -X POST "repos/{owner}/{repo}/pulls/<PR_NUMBER>/comments/<COMMENT_ID>/replies" -f body='...'

<COMMENT_ID> is the REST id / GraphQL databaseId of the comment you answer (from §2.2).

The PR number is required on this path. …/pulls/comments/<id>/replies (no number) is a valid prefix for reading and editing a single comment, so it looks plausible, but it 404s for replies.

Formal review summary when it fits the workflow:

bash
gh pr review [<PR_NUMBER>] --comment -b '...'

Duplicate-addressed items: short replies (“Same fix as … in <sha>.”).

3.7 Resolve review threads (optional)

When appropriate (fixed, declined with closure, etc.—not open questions): GraphQL is the API that supports resolve. Use thread.id from §2.2 A:

bash
gh api graphql -f query='
mutation($id: ID!) {
  resolveReviewThread(input: { threadId: $id }) {
    thread { isResolved }
  }
}' -f id=<THREAD_ID>

If you only used REST B, fetch thread ids via a GraphQL query once, or resolve in the browser—either is fine if it matches team practice.

4. Tracking progress

  • Comments answered vs open.
  • Which commit SHA fixed which cluster.

Anti-patterns

  • Treating gh pr view as sufficient for “all PR comments”—you still need inline data from REST or GraphQL (§2.1–2.2).
  • Mixing unrelated fixes into one commit.
  • Silent pushes with no reply (timeline and/or .../replies).
  • Using gh pr comment where a REST threaded reply was needed (feedback belongs on the diff line).
  • Resolving threads that are still active debate.

Not an anti-pattern: one commit for several comments that share the same issue; reply on each item with pointers to that commit.

© latitude-dev, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/review-pr-comments of latitude-dev/latitude-llm.

Open the folder on GitHubat commit 12e8591

Compare with similar skills

Review PR Comments next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Review PR Comments compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Review PR Comments this skilllatitude-dev/latitude-llm4.7k—~2.6kAutomated safety check: PassMIT
GitHub Opsdaymade/claude-code-skills1.4k—~3.8kAutomated safety check: PassMIT
Gh QueueLanternOps/breeze131—~5kAutomated safety check: PassAGPL-3.0
Reply To PR Threadstobihagemann/turbo407—~941Automated safety check: PassMIT
Create Cuda Python Pull RequestNVIDIA/cuda-python3.4k—~1.1kAutomated safety check: PassApache-2.0
Flow Next Resolve PRgmickel/flow-next707—~1.1kAutomated safety check: PassMIT

Similar skills

  • GitHub Ops

    daymade/claude-code-skills

    Operates GitHub via gh CLI and REST/GraphQL — PRs, issues, Actions, repos, collaborators, org permissions, 2FA — with explicit target, authorization, and independent readback.

    1.4k GitHub stars~3.8k tokensUpdated today
    Backend & APIsAuto-check passed
  • Gh Queue

    LanternOps/breeze

    A skill your agent uses when reviewing, triaging, or managing the incoming GitHub backlog on the Breeze repo — PRs, Discussions, AND Issues.

    131 GitHub stars~5k tokensUpdated today
    DevelopmentAuto-check passed
  • Reply To PR Threads

    tobihagemann/turbo

    Draft, confirm, and post replies to GitHub PR review threads.

    407 GitHub stars~941 tokensUpdated today
    Backend & APIsAuto-check passed
  • Official

    Create a CUDA Python pull request from an approved personal or organization-owned fork, including the GitHub CLI GraphQL fallback for renamed organization-owned forks.

    3.4k GitHub stars~1.1k tokensUpdated today
    DevelopmentAuto-check passed
  • Flow Next Resolve PR

    gmickel/flow-next

    Resolve PR review feedback. An agent skill from gmickel/flow-next.

    707 GitHub stars~1.1k tokensUpdated today
    Backend & APIsAuto-check passed
  • Check Review Backlog

    ayutaz/piper-plus

    PR 作成直後の review チェック / 全 open PR の未解決 review thread (isResolved=false) を gh api graphql で集計し、 N 日以上未対応のものを backlog として表示する。

    220 GitHub stars~1.2k tokensUpdated today
    Backend & APIsAuto-check passed

More from latitude-dev/latitude-llm

All 28 skills in this repo
  • Better Auth Best Practices

    latitude-dev/latitude-llm

    Configure Better Auth server and client, set up database adapters, manage sessions, add plugins, and handle environment variables.

    4.7k GitHub starsUsed in 7 repos~1.6k tokens
    Auto-check passed
  • Artifact Designer

    latitude-dev/latitude-llm

    Create, validate, preview, and publish self-contained HTML artifacts.

    4.7k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • CI Watchdog

    latitude-dev/latitude-llm

    Continuously monitor GitHub PR CI checks and automatically fix failures until all checks pass.

    4.7k GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Temporal Developer

    latitude-dev/latitude-llm

    This skill should be used when the user asks to "create a Temporal workflow", "write a Temporal activity", "debug stuck workflow", "fix non-determinism error", "Temporal Python", "Temporal…

    4.7k GitHub stars~1.5k tokensUpdated today
    Auto-check passed
  • Docs

    latitude-dev/latitude-llm

    Review the current conversation context and git changes, then persist durable repository knowledge into dev-docs/.md by domain and into AGENTS.md for cross-cutting repo rules.

    4.7k GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Managing Maintenance Windows

    latitude-dev/latitude-llm

    Enables or disables Latitude production maintenance mode by redirecting all publicly exposed production services to the Better Stack status page.

    4.7k GitHub stars~802 tokensUpdated today
    Auto-check passed

Works with

Questions about Review PR Comments

What does Review PR Comments do?

Triages a PR with GitHub CLI: loads issue-level and inline review feedback (gh pr view, gh api REST, gh api graphql as appropriate), walks items in order, replies in the correct thread, optional…. Review PR Comments is an agent skill from latitude-dev/latitude-llm. Triages a PR with GitHub CLI: loads issue-level and inline review feedback (gh pr view, gh api REST, gh api graphql as appropriate), walks items in order, replies in the correct thread, optional resolve.

When should I use Review PR Comments?

Review PR Comments fits situations like: addressing PR review comments; copilot inline threads; babysitting PR feedback.

How do I install Review PR Comments in Claude Code?

Run `npx skills add latitude-dev/latitude-llm --skill review-pr-comments -a claude-code`. Or copy the skill folder (.agents/skills/review-pr-comments in latitude-dev/latitude-llm) into .claude/skills/review-pr-comments in your project. Claude Code loads it when a task matches its description.

How do I install Review PR Comments in Codex?

Run `npx skills add latitude-dev/latitude-llm --skill review-pr-comments -a codex`. Or copy the skill folder (.agents/skills/review-pr-comments in latitude-dev/latitude-llm) into .agents/skills/review-pr-comments in your project. Codex loads it when a task matches its description.

Can I use Review PR Comments in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add latitude-dev/latitude-llm --skill review-pr-comments -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/review-pr-comments, .gemini/skills/review-pr-comments, .github/skills/review-pr-comments and .opencode/skills/review-pr-comments in your project.

What does Review PR Comments need to run?

Going by SKILL.md and its folder, Review PR Comments needs the command-line tools its instructions call (gh and git).

Does Review PR Comments access the network?

SKILL.md contains no URLs. Its commands use gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Review PR Comments safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Review PR Comments use?

Review PR Comments is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Review PR Comments use?

About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Review PR Comments?

Skills that share tags, products or a category with Review PR Comments: GitHub Ops (daymade/claude-code-skills, 1.4k stars), Gh Queue (LanternOps/breeze, 131 stars), Reply To PR Threads (tobihagemann/turbo, 407 stars) and Create Cuda Python Pull Request (NVIDIA/cuda-python, 3.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Review PR Comments?

latitude-dev (a GitHub organization) maintains it in latitude-dev/latitude-llm, which has 4,714 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 7, 2026.

Source: latitude-dev/latitude-llm on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.