Agent skill

PR Review Triage

by stickerdaniel in stickerdaniel/linkedin-mcp-server

Collects every review comment on a pull request, checks each against the real code, fixes the valid ones, pushes, and replies on and resolves each thread.

Apache-2.0Auto-check passedDevelopment

Install PR Review Triage

skills CLI
$ npx skills add stickerdaniel/linkedin-mcp-server --skill triage-reviews -a claude-code

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

GitHub CLI
$ gh skill install stickerdaniel/linkedin-mcp-server triage-reviews --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/stickerdaniel/linkedin-mcp-server.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/triage-reviews .claude/skills/triage-reviews && 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
triage-reviews
GitHub stars
3.8k
Token cost
~1.4k tokens
SKILL.md length
603 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
Apache-2.0

At a glance

Collects every review comment on a pull request, checks each against the real code, fixes the valid ones, pushes, and replies on and resolves each thread.

  • Works in 5 steps: Gather Comments → Verify Each Finding → Fix & Ship → …
  • Working through a stack of bot and human review comments on an open PR
  • SKILL.md covers Phase 1: Gather Comments, Phase 2: Verify Each Finding, Phase 3: Fix & Ship and Phase 3.5: Reply on each…, plus 2 more sections
  • Calls gh and git

What it does

The agent finds the PR number from your argument or from the GitHub CLI, then pulls reviews, inline comments and issue comments through `gh api` with pagination. It removes duplicates across automated reviewers such as Copilot and Greptile and human ones, and groups what remains by file and line.

Every finding is checked before it is accepted: the agent reads the code at the referenced line, sees whether a later commit already fixed it, and verifies the claim through code analysis, the `btca` resource lookup or web search. Each one is classed as valid or a false positive. Valid issues are fixed, the project's lint and test commands run, and the changed files are committed with a fix message and pushed with `gt submit` or plain `git push`. A further phase replies on each review thread with the verdict and resolves it, so the PR view matches the triage.

When your agent uses it

  • Working through a stack of bot and human review comments on an open PR
  • Separating real bugs from reviewer misreadings before changing code
  • Closing out review threads after pushing fixes

Example prompts

  • “Triage the review comments on PR 214 and fix whatever holds up.”
  • “Copilot left a dozen comments on my branch. Check which are valid and push the fixes.”
  • “Go through the open review threads on this PR, reply with the outcome and resolve them.”

Requirements

  • GitHub CLI (`gh`) with access to the repository
  • Git
  • Graphite CLI (`gt`) if the repo uses it

Workflow steps

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

  1. Gather Comments
  2. Verify Each Finding
  3. Fix & Ship
  4. 5: Reply on each thread, then resolve it
  5. Report

What it can do on your machine

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

PR Review Triage loads about 1.4k tokens when it runs. Until then it costs about 28 tokens; SKILL.md has 603 words of instructions outside code blocks.

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

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 stickerdaniel/linkedin-mcp-server at commit ad00920, republished under its Apache-2.0 licence (© stickerdaniel). 603 words, ~1,425 tokens.

Download SKILL.mdSave it as .claude/skills/triage-reviews/SKILL.md (or your agent's skills folder).
name
triage-reviews
description
Fetch PR review comments, verify each against real code/docs, fix valid issues, commit and push
argument-hint
[PR number]

Triage PR Review Comments

Fetch all review comments on the current PR, verify each finding against real code, fix valid issues, and push.

Phase 1: Gather Comments

  1. Determine the PR number:

    • Use $ARGUMENTS if provided
    • Otherwise: gh pr view --json number --jq .number
  2. Fetch ALL comments (reviewers post in multiple places):

    gh api --paginate repos/{owner}/{repo}/pulls/{pr}/reviews
    gh api --paginate repos/{owner}/{repo}/pulls/{pr}/comments
    gh api --paginate repos/{owner}/{repo}/issues/{pr}/comments
  3. Extract unique findings — deduplicate across Copilot, Greptile, and human reviewers. Group by file and line.

Phase 2: Verify Each Finding

For EVERY finding, verify against real code before accepting or rejecting:

  1. Read the actual code at the referenced file:line
  2. Check if the issue still exists — it may already be fixed in a later commit
  3. Verify correctness using:
    • Code analysis (read surrounding context, trace call paths)
    • Run btca resources to see what's available, then btca ask -r <resource> -q "..." for library/framework questions
    • Web search for API behavior, language semantics, or CVEs
  4. Classify each finding:
    • Valid — real bug, real gap, or real improvement needed
    • False positive — reviewer misread the code, outdated reference, or style preference

Phase 3: Fix & Ship

  1. Fix all Valid findings
  2. Run the project's lint/test commands
    • If lint/tests fail, fix the failures before committing
    • If a failure cannot be fixed automatically, skip that fix and report it as Valid (unfixed) in the Phase 4 table
  3. git add only changed files, git commit with message:
    fix: Address PR review feedback
    
    - <one-line summary per fix>
  4. Push: gt submit (or git push if not using Graphite)

Phase 3.5: Reply on each thread, then resolve it

Pushing the fix isn't enough. Each inline review comment lives in its own thread that GitHub keeps showing as "Unresolved" until someone explicitly resolves it. The skill must close that loop for every Valid and False-positive finding so the PR view actually reflects what was triaged.

Workflow per finding:

  1. Reply on the thread with the verdict and evidence:

    • Valid + fixed: Fixed in <short-sha>. <one-line what changed>.
    • Valid + unfixed: Valid, deferred to follow-up. Reason: <why>.
    • False positive: False positive. <one-line evidence: file:line shows X, or doc link Y>.
  2. Resolve the thread only when the finding is Fixed or False positive. Valid + unfixed threads must stay open so the PR view continues to surface the real bug. Resolving them would let the PR look ready while the bug is still in the code. Leave the maintainer to close those threads when they file the follow-up.

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

GitHub's review threads can only be resolved via GraphQL (REST has no endpoint). The thread ID is a GraphQL node ID, not the REST comment ID, so fetch both together. Use --paginate so PRs with more than 100 threads are covered, the page size cap is per-request not total:

bash
PR=<pr-number>
OWNER=<owner>
REPO=<repo>

gh api graphql --paginate -f query='
  query($owner: String!, $repo: String!, $pr: Int!, $endCursor: String) {
    repository(owner: $owner, name: $repo) {
      pullRequest(number: $pr) {
        reviewThreads(first: 100, after: $endCursor) {
          pageInfo { hasNextPage endCursor }
          nodes {
            id
            isResolved
            comments(first: 1) { nodes { databaseId path line body } }
          }
        }
      }
    }
  }' \
  -F owner="$OWNER" -F repo="$REPO" -F pr=$PR \
  --jq '.data.repository.pullRequest.reviewThreads.nodes[] | select(.isResolved == false) | {threadId: .id, commentId: .comments.nodes[0].databaseId, path: .comments.nodes[0].path, line: .comments.nodes[0].line}' \
  > /tmp/triage-threads-$PR.json

Each entry now has {threadId, commentId, path, line}. Match it against your Phase-2 finding map (by path + line or commentId). For each match:

bash
# Post reply (REST endpoint for replies on a specific review comment)
gh api -X POST "/repos/$OWNER/$REPO/pulls/$PR/comments/$COMMENT_ID/replies" \
  -f body="Fixed in $SHORT_SHA. <one-line>."

# Resolve the thread (GraphQL) — Fixed and False-positive only. SKIP for Valid+unfixed.
gh api graphql -f query="
  mutation {
    resolveReviewThread(input: {threadId: \"$THREAD_ID\"}) {
      thread { isResolved }
    }
  }"

If the parent review left a separate top-level summary comment (Greptile's Greptile Summary issue-level comment, for example), leave it alone, only inline review threads need resolving.

Cap: resolve only threads tied to findings you actually classified. Do not bulk-resolve unrelated threads (other reviewers, human discussion, follow-up questions that aren't from this triage round).

Phase 4: Report

Present a final summary table of ALL findings with verdicts:

#SourceFile:LineFindingVerdictReasonThread

Last column: replied + resolved, replied + still open (e.g. waiting on reviewer), or n/a (no inline thread, only summary). If any thread stayed open, name it explicitly so the next pass picks it up.

Notes

  • Never dismiss a finding without reading the actual code first
  • If unsure, err toward "Valid" — it's cheaper to fix than to miss a bug
  • For library/API questions, always use btca or web search — don't guess

© stickerdaniel, 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 .agents/skills/triage-reviews of stickerdaniel/linkedin-mcp-server.

Open the folder on GitHubat commit ad00920

Compare with similar skills

PR Review Triage 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.

PR Review Triage compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
PR Review Triage this skillstickerdaniel/linkedin-mcp-server3.8k—~1.4kAutomated safety check: PassApache-2.0
Address PR Feedback for ruby-gitruby-git/ruby-git1.8k—~657Automated 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
PR Review State Fetchprisma/orm48k—~767Automated safety check: PassApache-2.0
Create Pull Request with Work Item IDmakeplane/plane61k—~824Automated safety check: PassAGPL-3.0

Similar skills

  • Addresses unresolved pull request review threads and suppressed (low-confidence) Copilot review comments on the current branch, folds each fix into the…

    1.8k GitHub stars~657 tokensUpdated 9 days ago
    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
  • Official

    Fetches a pull request's canonical review state as JSON, validates it, and renders markdown, a text summary and triage target files from it using bundled scripts.

    48k GitHub stars~767 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Opens a pull request for the current branch using the repo's template, a work item ID in the title and a description filled in from the actual diff.

    61k GitHub stars~824 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Official

    Generate a clear, concise GitHub PR title and description from the diff between two local git branches, and save it to prDescription.md in the repo root.

    12k GitHub stars~838 tokensUpdated yesterday
    DevelopmentAuto-check passed

More from stickerdaniel/linkedin-mcp-server

  • Issue and PR Triage

    stickerdaniel/linkedin-mcp-server

    Turns the open issues and pull requests of the linkedin-mcp-server repository into a read-only priority list for maintainers.

    3.8k GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • LinkedIn MCP Issue Investigator

    stickerdaniel/linkedin-mcp-server

    Investigates a reported LinkedIn-MCP issue by matching the reporter's tool call to the exact source file and tests, without applying a fix.

    3.8k GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Verify Candidate PR Fix

    stickerdaniel/linkedin-mcp-server

    Reviews a candidate pull request's diff and tests against its linked issue, with an optional live comparison against a previously captured baseline, without editing, merging or pushing.

    3.8k GitHub stars~2k tokensUpdated today
    Auto-check passed
  • BTCA Local Repo Search

    stickerdaniel/linkedin-mcp-server

    Searches git repositories cloned locally under a sandbox folder to answer questions with cited links and complete code snippets.

    3.8k GitHub stars~660 tokensUpdated today
    Auto-check passed
  • GitHub Issue Packet Intake

    stickerdaniel/linkedin-mcp-server

    Turns a bug report or feature idea into a properly sourced GitHub issue or comment, only after searching for a matching issue first.

    3.8k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • LinkedIn MCP Usage Rules

    stickerdaniel/linkedin-mcp-server

    Rules for using the bundled LinkedIn MCP server for profile, company, job, post, feed and inbox work, with explicit authorization required for messages and connection requests.

    3.8k GitHub stars~651 tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about PR Review Triage

What does PR Review Triage do?

Collects every review comment on a pull request, checks each against the real code, fixes the valid ones, pushes, and replies on and resolves each thread. The agent finds the PR number from your argument or from the GitHub CLI, then pulls reviews, inline comments and issue comments through `gh api` with pagination. It removes duplicates across automated reviewers such as Copilot and Greptile and human ones, and groups what remains by file and line.

When should I use PR Review Triage?

PR Review Triage fits situations like: working through a stack of bot and human review comments on an open PR; separating real bugs from reviewer misreadings before changing code; closing out review threads after pushing fixes.

How do I install PR Review Triage in Claude Code?

Run `npx skills add stickerdaniel/linkedin-mcp-server --skill triage-reviews -a claude-code`. Or copy the skill folder (.agents/skills/triage-reviews in stickerdaniel/linkedin-mcp-server) into .claude/skills/triage-reviews in your project. Claude Code loads it when a task matches its description.

How do I install PR Review Triage in Codex?

Run `npx skills add stickerdaniel/linkedin-mcp-server --skill triage-reviews -a codex`. Or copy the skill folder (.agents/skills/triage-reviews in stickerdaniel/linkedin-mcp-server) into .agents/skills/triage-reviews in your project. Codex loads it when a task matches its description.

Can I use PR Review Triage 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 stickerdaniel/linkedin-mcp-server --skill triage-reviews -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/triage-reviews, .gemini/skills/triage-reviews, .github/skills/triage-reviews and .opencode/skills/triage-reviews in your project.

What does PR Review Triage need to run?

Going by SKILL.md and its folder, PR Review Triage needs the command-line tools its instructions call (gh and git). Our summary lists: GitHub CLI (`gh`) with access to the repository; Git; Graphite CLI (`gt`) if the repo uses it.

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

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

About 1.4k tokens (SKILL.md is roughly 5.7k 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 PR Review Triage?

Skills that share tags, products or a category with PR Review Triage: Address PR Feedback for ruby-git (ruby-git/ruby-git, 1.8k stars), Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars), Create Pull Request (cline/cline, 70k stars) and PR Review State Fetch (prisma/orm, 48k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains PR Review Triage?

stickerdaniel (a GitHub user) maintains it in stickerdaniel/linkedin-mcp-server, which has 3,816 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 10, 2026.

Source: stickerdaniel/linkedin-mcp-server on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.