Agent skill

Review PR Threads

by adamayoung in adamayoung/TMDb

Resolve the currently-unresolved review threads on the current branch's PR in one sweep — assess each, fix it (test-first, verified) or reply-only, then reply and resolve — and return a summary.

Apache-2.0Auto-check passedDevelopment

Install Review PR Threads

skills CLI
$ npx skills add adamayoung/TMDb --skill review-pr-threads -a claude-code

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

GitHub CLI
$ gh skill install adamayoung/TMDb review-pr-threads --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/adamayoung/TMDb.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/review-pr-threads .claude/skills/review-pr-threads && 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-threads
GitHub stars
178
Token cost
~1.9k tokens
SKILL.md length
991 words
Files
1
Skills in repo
18
Repo updated
First seen
Licence
Apache-2.0

At a glance

Resolve the currently-unresolved review threads on the current branch's PR in one sweep — assess each, fix it (test-first, verified) or reply-only, then reply and resolve — and return a summary.

  • Works in 4 steps: Find the PR → Fetch unresolved threads → Handle each thread → …
  • Tasks that involve Pull requests
  • SKILL.md covers Principles, 0. Find the PR, 1. Fetch unresolved threads and 2. Handle each thread, plus 3 more sections
  • Calls gh and git

What it does

Review PR Threads is an agent skill from adamayoung/TMDb. Resolve the currently-unresolved review threads on the current branch's PR in one sweep — assess each, fix it (test-first, verified) or reply-only, then reply and resolve — and return a summary. Use standalone to address PR review feedback, or as the thread-handling step invoked by /watch-pr. Repo is adamayoung/TMDb.

Its SKILL.md is about 1.9k 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 Development, covering Pull requests and Test-driven development. It works with GitHub. The repository describes itself as: The Movie Database Swift Package. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Pull requests
  • Tasks that involve Test-driven development

Example prompts

  • “/review-pr-threads”

Workflow steps

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

  1. Find the PR
  2. Fetch unresolved threads
  3. Handle each thread
  4. Push once, then finish

What it can do on your machine

Read from SKILL.md and the folder at commit a3f1311. 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 Threads loads about 1.9k tokens when it runs. Until then it costs about 84 tokens; SKILL.md has 991 words of instructions outside code blocks.

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

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 adamayoung/TMDb at commit a3f1311, republished under its Apache-2.0 licence (© adamayoung). 991 words, ~1,856 tokens.

Download SKILL.mdSave it as .claude/skills/review-pr-threads/SKILL.md (or your agent's skills folder).
name
review-pr-threads
description
Resolve the currently-unresolved review threads on the current branch's PR in one sweep — assess each, fix it (test-first, verified) or reply-only, then reply and resolve — and return a summary. Use standalone to address PR review feedback, or as the thread-handling step invoked by /watch-pr. Repo is adamayoung/TMDb.

Review PR Threads

Handle the open review conversations on a pull request: for each unresolved thread, decide whether it warrants a code change, make and verify the fix (or explain why not), reply, and resolve it. This is a single sweep over the threads that are unresolved right now — it does not wait for new reviews to arrive. The caller (you, or /watch-pr) decides whether to run it again after a push triggers a fresh review.

Repo is adamayoung/TMDb. GitHub reads (find the PR, fetch threads), the reply, and the resolve all use the GitHub MCP (mcp__github__*): get_review_comments exposes each comment's numeric REST id in its html_url (the #discussion_r<id> anchor — verified 2026-08-07), which is exactly the id add_reply_to_pull_request_comment takes. gh is authenticated and kept as the reply fallback (gh api graphql with the thread node id) on a 401/403 or if the anchor is ever absent.

Principles

  1. One sweep, then return. Process every thread that is unresolved at invocation, then stop and report. Do not loop waiting for re-reviews — pushing a fix re-triggers the claude-review bot and CI, and that convergence loop belongs to the caller.
  2. Fix test-first and verify before you reply. A code change in response to a thread follows the project's discipline: reproduce/capture with a test where applicable, then fix, then verify with the delegated skills. Never claim a fix you haven't verified.
  3. Don't change code you disagree with — reply instead. Out-of-scope, incorrect, already-handled, or question-only threads get a reasoned reply and a resolve, not an edit.
  4. Dedup via the run ledger. Keep (or reuse the caller's) ledger of handled thread IDs and a topic signature (path:line + gist) per thread. If a thread repeats a topic you already fixed this run, reply pointing at the earlier commit SHA and resolve — do not re-edit.
  5. The claude-review bot's summary comment is advisory. It posts inline threads only for Critical/High; its Medium/Low summary bullets are not threads and are not work items — don't turn them into code changes.

0. Find the PR

Find the open PR for the current branch with mcp__github__list_pull_requests (owner/repo from the origin remote, head: <owner>:<branch>, state: open), or read a specific one with mcp__github__pull_request_read method get (pullNumber: <n>). Take number/html_url/state/head.ref from the result.

  • An explicit PR number in the skill arguments overrides the current branch.
  • No PR for the current branch → stop and tell the user (suggest /pr).
  • State not open → stop and report.

1. Fetch unresolved threads

Use mcp__github__pull_request_read method get_review_comments (owner/repo from origin, pullNumber: <n>). It returns review threads, each with metadata (isResolved, isOutdated, isCollapsed), the thread node id (PRRT_…, used to resolve in §2), path/line, and the grouped comments — each comment carrying an html_url whose #discussion_r<id> anchor is the numeric comment id §2's reply needs. Paginate with perPage/after (the endCursor from the previous page's pageInfo) if needed.

Process each thread where isResolved is false and whose thread id is not already in the ledger.

Show full SKILL.md (519 more words)Show less

2. Handle each thread

For each unresolved thread:

  1. Assess the comment(s) and decide whether a code change is warranted, in scope, and clearly correct.

  2. Needs a fix → edit the code, then verify with the delegated skills — /lint, /build, /test (and /integration-test if it could affect live-API behaviour); those run in Haiku subagents so logs stay out of context. Commit with a gitmoji message and record the commit SHA. Batch the sweep's pushes: commit per fix, but git push once after all threads are handled (§3), so one review/CI cycle is triggered per sweep, not one per thread.

  3. No fix warranted (disagree / out of scope / a question / already done) → make no code change; you'll say why in the reply. When the reason is out of scope and the reviewer's point is sound, file it per .github/ISSUE_FILING.md and reply with the issue number. "Out of scope" with nothing behind it is how a valid review comment gets closed forever; a link is what makes it a deferral rather than a dismissal.

  4. Reply on the thread — what you assessed and whether you fixed it (include the commit SHA when you did). Use mcp__github__add_reply_to_pull_request_comment (owner/repo from origin, pullNumber: <n>, body, and commentId — the number from the thread's first comment's html_url anchor, …#discussion_r<ID>; the number only, never the PRRT_… node id). On a 401/403, or if no comment in the thread carries the anchor, fall back to the GraphQL reply with the thread node id we already have from §1:

    bash
    gh api graphql -f query='mutation($id:ID!,$body:String!){
      addPullRequestReviewThreadReply(input:{pullRequestReviewThreadId:$id,body:$body}){ comment{ id } }
    }' -f id=<THREAD_ID> -f body='<your feedback>'
  5. Resolve the thread with mcp__github__pull_request_review_write method resolve_thread (threadId: <PRRT_… node id>; owner/repo/pullNumber are ignored for this method). Resolving an already-resolved thread is a no-op.

  6. Record the thread ID and topic signature in the ledger.

Reply and resolve after the single push (§3) for threads you fixed, so the SHA you cite is on the remote. Reply/resolve reply-only threads immediately.

3. Push once, then finish

After every thread is handled, if you committed any fixes, git push once (it re-triggers CI and the claude-review bot — expected). Then post the deferred replies + resolves for the fixed threads.

There is no pre-commit hook (.git/hooks/ holds only *.sample), so nothing lints on your behalf — run /lint before committing.

Guardrails

  • Never edit .github/workflows/* or other CI/config to silence a reviewer, and never force-push, without surfacing to the user first.
  • If a requested change is ambiguous or risky, reply with your assessment and leave it for the user (note it in the summary) rather than guessing.
  • Stay in scope: address the thread, don't opportunistically refactor around it.

Return: sweep summary

Report, concisely:

  • Fixed — thread topic → commit SHA, per fixed thread.
  • Replied-only — thread topic → one-line reason (disagreed / out of scope / already done / question answered).
  • Left for the user — ambiguous/risky threads you replied on but did not act on, and why.
  • Counts — threads handled this sweep, and any that remain unresolved (e.g. a thread you intentionally left open for a human decision).

Whether anything was pushed (and the resulting CI/review re-trigger) so the caller can decide whether to sweep again.

Arguments: $ARGUMENTS

© adamayoung, Apache-2.0. 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 .claude/skills/review-pr-threads of adamayoung/TMDb.

Open the folder on GitHubat commit a3f1311

Compare with similar skills

Review PR Threads 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 Threads compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Review PR Threads this skilladamayoung/TMDb178—~1.9kAutomated safety check: PassApache-2.0
Auto GitHub Contributornexu-io/auto-github-contributor137—~2.5kAutomated safety check: NotesMIT
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Check PRonyx-dot-app/onyx32k2 repos~2.3kAutomated safety check: PassMIT
Contributor-First PR MergeHKUDS/OpenHarness16k1 repos~847Automated safety check: PassMIT
Create Pull Requestcline/cline70k1 repos~1.6kAutomated safety check: PassApache-2.0

Similar skills

  • Auto GitHub Contributor

    nexu-io/auto-github-contributor

    Interactively pick a quick-win contribution in any GitHub repo — either a labeled issue ("good first issue", "help wanted", docs) or a repo-scan candidate (typo, missing tests, i18n gap, actionable…

    137 GitHub stars~2.5k tokensUpdated 5 mo ago
    Testing & QAAuto-check: notes
  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • Check PR

    onyx-dot-app/onyx

    Checks a GitHub, GitLab, or Perforce (p4) pull request (or merge request, or shelved changelist) for unresolved review comments, failing status checks, and incomplete PR descriptions.

    32k GitHub starsUsed in 2 repos~2.3k tokens
    DevelopmentAuto-check passed
  • Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.

    16k GitHub starsUsed in 1 repo~847 tokens
    DevelopmentAuto-check passed
  • Opens a GitHub pull request from your current branch with the gh CLI, after reviewing the commits and diff and gathering the details the PR needs.

    70k GitHub starsUsed in 1 repo~1.6k tokens
    DevelopmentAuto-check passed
  • Pull Request Title and Body Writer

    openinterpreter/openinterpreter

    Rewrites the title and body of one or more pull requests with gh, leading with why the change was made, then what changed, and describing only the net result.

    69k GitHub starsUsed in 2 repos~1.1k tokens
    DevelopmentAuto-check passed

More from adamayoung/TMDb

All 18 skills in this repo
  • Writes and maintains DocC /// comments for the public API of the TMDb Swift package, following the project's summary patterns and comment structure.

    178 GitHub stars~2.6k tokensUpdated 7 days ago
    Auto-check passed
  • Diagnoses a failing scheduled TMDb Integration run, re-runs transient failures, and fixes real API drift on its own branch with a PR, merging it only when told to.

    178 GitHub stars~2.7k tokensUpdated 7 days ago
    Auto-check passed
  • Drives an approved plan to completion test-first, deriving a Canon TDD test list, showing it before any code and stopping only when every item is written, passing and green.

    178 GitHub stars~4.5k tokensUpdated 7 days ago
    Auto-check passed
  • TMDb Backlog Triager

    adamayoung/TMDb

    Grooms the Backlog column of a GitHub project board by re-verifying each issue against current main, closing dead ones, promoting actionable ones to Ready and naming the decision the rest need.

    178 GitHub stars~5k tokensUpdated 7 days ago
    Auto-check passed
  • Canon TDD Workflow

    adamayoung/TMDb

    Has your agent build features and fix bugs in Canon TDD order: write a test list, then one failing test, make it pass, refactor, and repeat until the list is empty.

    178 GitHub stars~1.3k tokensUpdated 7 days ago
    Auto-check passed
  • Capture Knowledge

    adamayoung/TMDb

    Records non-obvious lessons from a finished task, such as gotchas, API quirks and design decisions, into a project's knowledge folder before a pull request opens.

    178 GitHub stars~2.3k tokensUpdated 7 days ago
    Auto-check passed

Works with

Categories

Questions about Review PR Threads

What does Review PR Threads do?

Resolve the currently-unresolved review threads on the current branch's PR in one sweep — assess each, fix it (test-first, verified) or reply-only, then reply and resolve — and return a summary. Review PR Threads is an agent skill from adamayoung/TMDb. Resolve the currently-unresolved review threads on the current branch's PR in one sweep — assess each, fix it (test-first, verified) or reply-only, then reply and resolve — and return a summary.

When should I use Review PR Threads?

Review PR Threads fits situations like: tasks that involve Pull requests; tasks that involve Test-driven development.

How do I install Review PR Threads in Claude Code?

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

How do I install Review PR Threads in Codex?

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

Can I use Review PR Threads 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 adamayoung/TMDb --skill review-pr-threads -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-threads, .gemini/skills/review-pr-threads, .github/skills/review-pr-threads and .opencode/skills/review-pr-threads in your project.

What does Review PR Threads need to run?

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

Does Review PR Threads 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 Threads 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 Threads use?

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

How many tokens does Review PR Threads use?

About 1.9k tokens (SKILL.md is roughly 7.4k 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 Threads?

Skills that share tags, products or a category with Review PR Threads: Auto GitHub Contributor (nexu-io/auto-github-contributor, 137 stars), PR Babysitter (openinterpreter/openinterpreter, 69k stars), Check PR (onyx-dot-app/onyx, 32k stars) and Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Review PR Threads?

adamayoung (a GitHub user) maintains it in adamayoung/TMDb, which has 178 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on October 3, 2026.

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