Agent skill

Resolve PR Comments

by tobihagemann in tobihagemann/turbo

Evaluate, fix, answer, and reply to GitHub pull request review comments and conversation comments.

MITAuto-check passedDevelopment

Install Resolve PR Comments

skills CLI
$ npx skills add tobihagemann/turbo --skill resolve-pr-comments -a claude-code

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

GitHub CLI
$ gh skill install tobihagemann/turbo resolve-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/tobihagemann/turbo.git skills-src && mkdir -p .claude/skills && cp -r skills-src/claude/skills/resolve-pr-comments .claude/skills/resolve-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
resolve-pr-comments
GitHub stars
409
Token cost
~3.8k tokens
SKILL.md length
2,058 words
Files
2 (incl. scripts)
Skills in repo
81
Repo updated
First seen
Licence
MIT

At a glance

Evaluate, fix, answer, and reply to GitHub pull request review comments and conversation comments.

  • Works in 12 steps: Fetch Comments → Triage Already-Addressed Feedback → Run /interpret-feedback Skill → …
  • The user asks to resolve PR comments
  • SKILL.md covers Task Tracking, Step 1: Fetch Comments, Step 2: Triage… and Step 3: Run…, plus 10 more sections
  • Runs Shell scripts from its folder; calls git and bash

What it does

Resolve PR Comments is an agent skill from tobihagemann/turbo. Evaluate, fix, answer, and reply to GitHub pull request review comments and conversation comments. Handles both change requests (fix or skip) and reviewer questions (explain using the rationale recalled from past Claude Code transcripts). Use when the user asks to "resolve PR comments", "fix review comments", "address PR feedback", "handle review comments", "address review feedback", "respond to PR comments", "answer review questions", or "address code review".

Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/fetch-pr-data.sh`).

It sits in Development. It works with GitHub. The repository describes itself as: Reusable workflows for planning, building, reviewing, and shipping with Claude Code and Codex. The licence is MIT.

When your agent uses it

  • The user asks to resolve PR comments
  • Fix review comments
  • Address PR feedback
  • Handle review comments

Example prompts

  • “resolve PR comments”
  • “fix review comments”
  • “address PR feedback”
  • “/resolve-pr-comments”

Requirements

  • A Bash shell

Workflow steps

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

  1. Fetch Comments
  2. Triage Already-Addressed Feedback
  3. Run /interpret-feedback Skill
  4. Split Questions and Change Requests
  5. Run /evaluate-findings Skill
  6. Resolve Ambiguities
  7. Run /resolve-findings Skill
  8. Verify Fixes
  9. Answer Reviewer Questions
  10. Run /reply-to-pr-threads Skill
  11. Run /reply-to-pr-conversation Skill
  12. Summary

What it can do on your machine

Read from SKILL.md and the folder at commit 160a0fa. 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

    Ships 1 file in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • git
    • bash

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

  • Network

    No URLs in SKILL.md. Its commands use 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

Resolve PR Comments loads about 3.8k tokens when it runs. Until then it costs about 121 tokens; SKILL.md has 2,058 words of instructions outside code blocks.

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

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); the scripts in this folder are not scanned.

SKILL.md

The full file from tobihagemann/turbo at commit 160a0fa, republished under its MIT licence (© tobihagemann). 2,058 words, ~3,786 tokens.

Download SKILL.mdSave it as .claude/skills/resolve-pr-comments/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
resolve-pr-comments
description
Evaluate, fix, answer, and reply to GitHub pull request review comments and conversation comments. Handles both change requests (fix or skip) and reviewer questions (explain using the rationale recalled from past Claude Code transcripts). Use when the user asks to "resolve PR comments", "fix review comments", "address PR feedback", "handle review comments", "address review feedback", "respond to PR comments", "answer review questions", or "address code review".

Resolve PR Review Comments

Fetch unresolved review comments from a GitHub PR (inline threads, review-body observations, and issue-comment observations from the PR conversation), evaluate each one, fix or skip based on confidence, answer reviewer questions using the recalled rationale behind the change, and reply. Inline threads are answered with thread replies; issue-comment findings are answered with new PR conversation comments. Review-body findings flow through the same evaluate-and-fix pipeline; their outcomes land in the summary because a review body has no destination to post to.

Task Tracking

At the start, use TaskCreate to create a task for each step:

  1. Fetch comments
  2. Triage already-addressed feedback
  3. Run /interpret-feedback skill
  4. Split questions and change requests
  5. Run /evaluate-findings skill
  6. Resolve ambiguities
  7. Run /resolve-findings skill
  8. Verify fixes
  9. Answer reviewer questions
  10. Run /reply-to-pr-threads skill
  11. Run /reply-to-pr-conversation skill
  12. Summary

Step 1: Fetch Comments

Auto-detect owner, repo, and PR number from current branch if not provided. Then run scripts/fetch-pr-data.sh, which handles full pagination (reviews, review threads, inner comment pages for long threads, issue comments, commits) and emits a single merged JSON document:

bash
bash <skill-dir>/scripts/fetch-pr-data.sh <owner> <repo> <pr_number>

Output shape:

jsonc
{
  "meta":          { "title", "url", "headRefName", "baseRefName", "body" },
  "reviewThreads": [ { "id", "isResolved", "isOutdated", "comments": { "nodes": [ { "author", "body", "path", "line", "originalLine", "diffHunk" } ] } } ],
  "reviews":       [ { "author", "body", "state", "submittedAt" } ],
  "issueComments": [ { "author", "body", "createdAt", "url" } ],
  "commits":       [ { "commit": { "oid", "abbreviatedOid", "message", "committedDate" } } ]
}

Filter review threads to unresolved only. Filter reviews to those with a non-empty body, excluding PENDING state (unsubmitted drafts). Filter issue comments to those with a non-empty body.

Step 2: Triage Already-Addressed Feedback

Review bodies and PR conversation comments (issue comments) often pack multiple distinct concerns into one comment. Split each non-empty, non-PENDING review body and each non-empty issue comment into atomic observations, one per paragraph or bullet, so each can be evaluated on its own merits.

For every observation, check whether a subsequent commit already addresses it. Compare the source timestamp (submittedAt for review bodies, createdAt for issue comments) against each commit's committedDate; only commits after the source was posted can address it. Start with commit messages; read git show <oid> only when the message is ambiguous. A commit addresses an observation when its changes clearly resolve that specific concern. Touching the same area is not enough for an observation.

When an observation asserts a requirement or an intended behavior, compare that assertion against meta.body. The PR description is the author's own current statement of intent, so a description stating the opposite leaves a premise for Step 5 to settle. Record the contradiction against the observation and carry it forward, so Step 5 settles that premise once instead of re-deriving it for every finding the premise produced.

Classify each observation:

  • Addressed: A subsequent commit resolves it. Record the commit SHA for the Step 12 summary.
  • Unaddressed: No subsequent commit resolves it. Carry into Step 3, tagged with its source (review-body or issue-comment), the author, the observation text, any recorded contradiction with the PR description, and (for review bodies) the review state.

Review-body and issue-comment findings have no diffHunk, file path, or line reference. The downstream pipeline handles findings without a code location.

Triage inline threads on their replies. Look for a later reply that claims the concern is fixed and names the commit that fixed it. Verify two things about that commit. First, it is on the branch: it appears in commits, or git branch --contains <sha> reports the head branch. Second, it changed or deleted the thread's path. When both hold, classify the thread Addressed with that SHA and skip Steps 3 through 8 for it. Classify the rest Unaddressed and carry them into Step 3.

Step 3: Run /interpret-feedback Skill

Run the /interpret-feedback skill on the union of:

  • Unaddressed inline threads from Step 2
  • Unaddressed review-body findings from Step 2
  • Unaddressed issue-comment findings from Step 2

Skip AI-reviewer accounts — match by known login (e.g., coderabbitai, copilot-pull-request-reviewer[bot]), not the [bot] suffix alone. Their structured feedback routes directly to /evaluate-findings.

If that leaves no items to interpret, skip the skill invocation.

For inline threads, include the diffHunk so the interpreters can see the code the reviewer was looking at. For outdated comments where line is null, use originalLine. For review-body and issue-comment findings, provide the observation text and the PR's changed-file list as context.

Tag each item with its source (inline-thread, review-body, or issue-comment) so later steps can route replies correctly.

Step 4: Split Questions and Change Requests

Classify each interpreted item as either a question or a change request based on the reconciled intent from Step 3.

  • Question — the reviewer is asking for an explanation or wondering whether something is intentional. No code change requested. Examples: "Why this approach?", "Is this intentional?", "What is the benefit here?".
  • Change request — the reviewer suggests a code change, flags a bug, or proposes an alternative. This includes soft-phrased suggestions ("could we ...", "consider ...") and rhetorical questions that imply a change ("Shouldn't this ...?", "Is there a reason this isn't ...?").

When in doubt, treat the item as a change request. The verdict from /evaluate-findings in Step 5 will catch genuine non-issues.

Produce two lists. Each entry retains the source tag, identifier (thread id for inline threads; a generated id for review-body and issue-comment findings), file path and line (use originalLine when line is null; omit for review-body and issue-comment findings), the reviewer's original text, any recorded contradiction with the PR description, and the reconciled intent from Step 3. Questions skip Step 5 and feed Step 9. Change requests feed Step 5.

Step 5: Run /evaluate-findings Skill

If Step 4 produced no change requests and Step 3 routed no AI-reviewer items here, skip the skill invocation.

Run the /evaluate-findings skill on the change requests from Step 4 and the AI-reviewer items Step 3 routed here, to triage each one. Questions are not evaluated here.

Review-body and issue-comment findings have no file or line reference. Scope their assessment to the PR's changed files as a whole, and do not treat the absent code location as a "code has diverged" early exit.

Step 6: Resolve Ambiguities

Collect items assigned an Escalate verdict by /evaluate-findings. If there are none, skip to Step 7.

Output all escalated items as a numbered list. For each item, show:

  • The reviewer's original comment
  • The competing interpretations or the reason for escalation
  • The file and line reference, when available

Then use AskUserQuestion to ask how to handle them. State each question as the decision the user owns: what the code should do. Leave the reviewer's wording and code location to the numbered list above. Per item, the options are:

  • Direct answer: "Do X" — assign an Accept verdict with the user's clarified intent. Step 7 picks it up as an accepted finding.
  • Ask the reviewer: "Ask them Y" — queue a clarification question to be drafted in Step 10 (inline threads) or Step 11 (issue comments)
  • Skip: Remove from processing

Whenever the item is costly to reverse (its resolution establishes a pattern others will follow, defines an interface, commits to a data shape, or imports a pattern the codebase has not used), and whenever you cannot recommend one of the three with conviction, add a fourth Get a second opinion option. It runs the /consult-codex skill for the soundest resolution on technical merit alone, independent of the changeset's original scope, naming any scope cost with the answer. On an item that turns on product intent, run it for what each resolution commits to, what reversing it costs, and what the prevailing convention is. Then resolve the item with that answer in hand, re-asking when the choice stays the user's.

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

Step 7: Run /resolve-findings Skill

If there are no accepted findings to implement, skip to Step 9.

Run the /resolve-findings skill on the accepted findings from Step 5, including any items reclassified in Step 6. It commits and pushes before returning; Steps 10 and 11 replies reference that commit SHA.

Step 8: Verify Fixes

For each finding that was fixed in Step 7, verify the fix actually addresses the reviewer's concern:

  1. Read the current code. For inline threads, use the thread's file and line. For review-body and issue-comment findings, read the files touched during the fix.
  2. Compare against the reviewer's comment (and diffHunk when available).
  3. Confirm the specific concern is resolved.

If the fix did not address the concern (wrong location, incomplete change, or the issue is still present), downgrade the item to Skip. Record the reason (the attempted fix did not resolve the reviewer's concern, with a brief explanation of what remains) so Step 10 (for inline threads), Step 11 (for issue-comment findings), and Step 12 (for review-body findings) report it correctly.

Step 9: Answer Reviewer Questions

For each question item whose source is inline-thread, run the /recall-rationale skill with <path>:<line> and compose a one-or-two-sentence answer from the rationale it returns, quoting or paraphrasing the implementer's own words where they explain the decision. When it returns no transcript, compose the answer from the current code and record that grounding for Step 12. Leave out any mention of Claude, transcripts, or recalled rationale, and leave voice rules and reply formatting to Step 10.

Issue-comment questions are composed during Step 11's assembly and posted by /reply-to-pr-conversation. They have no file and line to ground with /recall-rationale, so the composition draws on the reconciled intent and the PR's changed code. Review-body questions have no destination to post to and are listed for manual follow-up in Step 12.

If there are no inline-thread questions, skip this step.

Step 10: Run /reply-to-pr-threads Skill

Assemble the processed-thread list from inline-thread items only:

  • fix — inline threads with Apply verdicts whose fix was verified in Step 8, leaving out threads whose first comment is from an AI-reviewer account as matched in Step 3. Payload: the commit SHA from Step 7.
  • skip — inline threads with Skip verdicts from /evaluate-findings, plus any downgraded in Step 8. Payload: the skip reasoning.
  • answer — inline-thread questions with answers composed in Step 9. Payload: the raw answer text.
  • clarify — inline threads reclassified as clarification questions in Step 6. Payload: the user-directed clarification question.

Issue-comment findings go to Step 11. Review-body findings have no destination to post to, Addressed inline threads already carry the reply naming the commit, and fixed AI-reviewer threads are left for the reviewer to resolve on its next pass; all three surface only in Step 12.

If there are no inline-thread items to reply to, skip the skill invocation.

Run the /reply-to-pr-threads skill with the assembled list.

Step 11: Run /reply-to-pr-conversation Skill

Assemble the processed-item list from issue-comment items only. Each entry includes the generated id, the author, the original comment body (for quoting), the category, and the per-category payload:

  • fix — issue-comment findings with Apply verdicts whose fix was verified in Step 8. Payload: the commit SHA from Step 7.
  • skip — issue-comment findings with Skip verdicts from /evaluate-findings, plus any downgraded in Step 8. Payload: the skip reasoning.
  • answer — issue-comment questions. Compose a one-or-two-sentence answer from the reconciled intent from Step 3 and the PR's changed code. Payload: the composed answer.
  • clarify — issue-comment items reclassified as clarification questions in Step 6. Payload: the user-directed clarification question.

Review-body findings have no destination to post to. Exclude them from this list; their triage status is reported in Step 12.

If there are no issue-comment items to reply to, skip the skill invocation.

Run the /reply-to-pr-conversation skill with the assembled list.

Step 12: Summary

After processing all items, present a summary grouped by source.

Inline threads:

  • Total unresolved threads found
  • Already addressed by commits (list file path, one-line summary, addressing commit SHA)
  • Fixed (change requests with accepted verdicts; list file path and addressing commit SHA, and mark AI-reviewer threads left without a reply)
  • Skipped (false positives or disproportionate changes)
  • Questions answered (split into: answered from recalled transcript, answered from current code)
  • Clarification questions posted

Review-body findings:

  • Already addressed by commits (list author, state, one-line summary, addressing commit SHA)
  • Fixed in this session (list observation, addressing commit SHA)
  • Skipped (list observation, skip reasoning)
  • Questions for manual follow-up (list observation; no thread to reply to)

Issue-comment findings:

  • Already addressed by commits (list author, one-line summary, addressing commit SHA)
  • Fixed in this session (list observation, addressing commit SHA)
  • Skipped (list observation, skip reasoning)
  • Questions answered (list observation)
  • Clarification questions asked
  • Reply URL (the posted issue comment, if any)

Overall: list of files modified.

Rules

  • Process inline threads in file order to minimize context switching. Handle review-body and issue-comment findings after inline threads.
  • When a thread has multiple comments (discussion), read the full thread before deciding.
  • The first comment in each thread is the original review comment; subsequent comments are replies.

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

Files

SKILL.md and 1 other file (scripts) in claude/skills/resolve-pr-comments of tobihagemann/turbo.

  • SKILL.md
  • scripts/fetch-pr-data.sh

Open the folder on GitHubat commit 160a0fa

Compare with similar skills

Resolve 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.

Resolve PR Comments compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Resolve PR Comments this skilltobihagemann/turbo409—~3.8kAutomated safety check: PassMIT
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Greplooponyx-dot-app/onyx32k4 repos~3.3kAutomated safety check: PassMIT
Check PRonyx-dot-app/onyx32k2 repos~2.3kAutomated safety check: PassMIT
Setup Matt Pocock Skillsbestofjs/bestofjs3.1k20 repos~1.7kAutomated safety check: PassMIT
Contributor-First PR MergeHKUDS/OpenHarness16k1 repos~847Automated safety check: PassMIT

Similar skills

  • 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
  • Greploop

    onyx-dot-app/onyx

    Iteratively improves a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives it a 5/5 confidence score with zero unresolved comments.

    32k GitHub starsUsed in 4 repos~3.3k 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
  • Setup Matt Pocock Skills

    bestofjs/bestofjs

    Configure this repo for the engineering skills — set up its issue tracker, triage label vocabulary, and domain doc layout.

    3.1k GitHub starsUsed in 20 repos~1.7k 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

More from tobihagemann/turbo

All 81 skills in this repo
  • Consult Oracle

    tobihagemann/turbo

    Consult ChatGPT Pro via ChatGPT browser automation for problems that resist standard approaches.

    409 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Fetch PR Comments

    tobihagemann/turbo

    Fetch and summarize review feedback and conversation from a GitHub PR (unresolved review threads, review bodies, and PR conversation comments) without making changes.

    409 GitHub stars~967 tokensUpdated today
    Auto-check passed
  • Recall Rationale

    tobihagemann/turbo

    Recall why a past change was made by locating the Claude Code transcript that produced it.

    409 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Resolve PR Comments

    tobihagemann/turbo

    Evaluate, fix, answer, and reply to GitHub pull request review comments and conversation comments.

    409 GitHub stars~3.8k tokensUpdated today
    Auto-check passed
  • Assess Technical Debt

    tobihagemann/turbo

    Assess project-wide structural technical debt: complexity hotspots, deprecated API usage, duplication clusters, architecture rot, and low-value tests.

    409 GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Codex Exec

    tobihagemann/turbo

    Run autonomous task execution using the codex CLI. An agent skill from tobihagemann/turbo.

    409 GitHub stars~2.5k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Resolve PR Comments

What does Resolve PR Comments do?

Evaluate, fix, answer, and reply to GitHub pull request review comments and conversation comments. Resolve PR Comments is an agent skill from tobihagemann/turbo. Evaluate, fix, answer, and reply to GitHub pull request review comments and conversation comments.

When should I use Resolve PR Comments?

Resolve PR Comments fits situations like: the user asks to resolve PR comments; fix review comments; address PR feedback; handle review comments.

How do I install Resolve PR Comments in Claude Code?

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

How do I install Resolve PR Comments in Codex?

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

Can I use Resolve 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 tobihagemann/turbo --skill resolve-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/resolve-pr-comments, .gemini/skills/resolve-pr-comments, .github/skills/resolve-pr-comments and .opencode/skills/resolve-pr-comments in your project.

What does Resolve PR Comments need to run?

Going by SKILL.md and its folder, Resolve PR Comments needs a shell for the scripts in its folder and the command-line tools its instructions call (git and bash). Our summary lists: A Bash shell.

Does Resolve PR Comments access the network?

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

Is Resolve 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Resolve PR Comments use?

Resolve 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 Resolve PR Comments use?

About 3.8k tokens (SKILL.md is roughly 15k 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 Resolve PR Comments?

Skills that share tags, products or a category with Resolve PR Comments: PR Babysitter (openinterpreter/openinterpreter, 69k stars), Greploop (onyx-dot-app/onyx, 32k stars), Check PR (onyx-dot-app/onyx, 32k stars) and Setup Matt Pocock Skills (bestofjs/bestofjs, 3.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Resolve PR Comments?

tobihagemann (a GitHub user) maintains it in tobihagemann/turbo, which has 409 GitHub stars. The repository holds 81 skills in this directory. The repository was last updated on October 9, 2026.

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