load-pr-comments
Use to load open/unresolved PR review comments then aggregate them as tasks in .specs/comments/*.md for parallel agents to fix.
Skill by NeoLabHQ
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/neolabhq-load-pr-comments-6da61e
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions: not checked yet.
What's inside
- Skill name
load-pr-comments- Description
- Use to load open/unresolved PR review comments then aggregate them as tasks in .specs/comments/*.md for parallel agents to fix.
- License
- GPL-3.0
- Instructions
- 182 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (1)
- SKILL.md
SKILL.md (first lines)
# Load Unresolved PR Review Comments as Parallel Tasks
Load ONLY open/UNRESOLVED PR review threads and rewrite them into grouped markdown task files under `.specs/comments/*.md`, each safe for a separate parallel agent to implement with no overlap.
## Critical Guidelines
- You MUST load ONLY threads where the resolved state is false. Skip resolved threads.
- You MUST rewrite each comment as an actionable TASK requirement, not a summary. Preserve substance (code suggestions, exact instructions) verbatim.
- You MUST NOT post, reply to, or modify anything on GitHub. This skill is read-only against the API.
- You MUST group comments so each file is independently implementable with NO duplication across files.
## Step 0: Verify what tools are available
1. Check if GitHub CLI is installed and authenticated:
```bash
gh auth status
```
2. Check if the GitHub MCP server is available:
```bash
mcp__MCP_DOCKER__pull_request_read
```
or simular command without `MCP_DOCKER` prefix, if installed directly.
- if both are available, use any that have enough accesses to the repository.
- if github mcp server avaiable but have different structure, adjust in order to fit the expected structure.
- if none is available, try to load directly through curl in case if it is public repository. If it is private, ask user to install GitHub CLI or GitHub MCP server.
- if MCP server not installed, but github cli is installed, but not authenticated, ask user to run `gh auth login` to authenticate.
## Step 1: Resolve the Target PR
- An explicit PR argument ALWAYS takes precedence over current-branch resolution. If a PR number or URL was passed, use it (a URL like `https://github.com/{owner}/{repo}/pull/{n}` → number `{n}`) and do NOT consult the current branch.
- Otherwise default to the PR of the CURRENT branch:
```bash
gh pr view --json number,url,headRefName # current branch's PR
```
- Resolve repo owner/name: `gh repo view --json owner,name`.
- If no PR exists for the branch, `gh pr view` errors with "no pull requests found" — STOP and report that no PR is associated with the branch (ask for a PR number/URL).
## Step 2: Retrieve UNRESOLVED Comments
Resolved/unresolved is a GraphQL `reviewThreads { isResolved }` concept — the REST `/pulls/{n}/comments` endpoint does NOT expose it. Use one of the two approaches below; if the primary is unavailable, fall back to the other.
### Primary: gh CLI (GraphQL)
Filter `isResolved == false` directly in the jq:
```bash
gh api graphql -f query='
query($owner:String!,$repo:String!,$pr:Int!){
repository(owner:$owner,name:$repo){
pullRequest(number:$pr){
reviewThreads(first:100){
nodes {
isResolved
isOutdated
path
line
startLine
originalLine
comments(first:50){
nodes { author{login} body diffHunk url }
}
}
}
}
}
}' -F owner=OWNER -F repo=REPO -F pr=PR_NUMBER \
--jq '[.data.repository.pullRequest.reviewThreads.nodes[]
| select(.isResolved==false)
| {path, isOutdated,
line: (.line // .startLine // .originalLine),
comments: [.comments.nodes[]
| {author: .author.login, url, body, diffHunk}]}]'
```
This returns each unresolved thread with its file `path`, an `isOutdated` flag, a usable `line`, and ordered comments (author, body, permalink `url`, `diffHunk`).
IMPORTANT: For OUTDATED threads `line` is `null` (the diff moved). The jq above already falls back `line // startLine // originalLine`, so `line` is never null when any anchor exists. When ALL three are null, omit the `:<line>` segment entirely in the template — never render `path:null`.
### Fallback: GitHub MCP
If the GitHub MCP server (`MCP_DOCKER`) is available, use the `mcp__MCP_DOCKER__pull_request_read` tool with `method: "get_review_comments"`:
```
mcp__MCP_DOCKER__pull_request_read
method: "get_review_comments"
owner: "OWNER"
repo: "REPO"
pullNumber: PR_NUMBER
perPage: 100
```
It returns `review_threads[]`, each with `is_resolved`, `is_outdated`, `is_collapsed` (all snake_case — verified against this tool's response) and `comments[]` (`body`, `path`, `author`, `html_url`). Keep only threads where `is_resolved` is `false`. Note the MCP comment objects expose `path` but NOT a line number, so use the `html_url` as the location anchor. Paginate with `after: <endCursor>` while `pageInfo.hasNextPage` is true.
## Step 3: Group and Rewrite as Tasks
Convert unresolved threads into focused task files for parallel agents.
Deduplicate FIRST (before grouping): if two or more threads request the same change at the same `path` (and same/overlapping line), or carry an identical suggested fix, collapse them into ONE requirement. Do not emit a separate line item per duplicate thread — this matters most in the nitpick file where repeated trivial suggestions cluster.
Rewrite rules per thread:
- Drop conversation framing and author names. Output a task, not a transcript.
- If a HUMAN reviewer left feedback, write THAT as the requirement.
- If only a bot/AI suggestion exists (Claude, CodeRabbit, Copilot, etc.), write that fix suggestion as the requirement.
- Preserve substance — do NOT summarize away code blocks, suggested diffs, or exact wording.
- Add context: a short issue description and a link to the file/line (the comment `url`/`html_url`, plus `path:line`) when available. If `line` is null (outdated/unanchorable thread), write just `path` with no `:line` segment and note it is outdated.
Before/after (lock in "rewrite as task, do not summarize"):
- Raw thread (bot): "commands is incorrect, real commands is more like ```/add-task /plan-task /implement-task```"
- Task requirement: "- [ ] Replace the listed commands with the correct ones: `/add-task`, `/plan-task`, `/implement-task`" (suggestion preserved verbatim, conversation framing dropped — NOT "fix the commands").
Grouping rules:From NeoLabHQ/context-engineering-kit, GPL-3.0.
More from NeoLabHQ/context-engineering-kit
- 0.623score
write-tests
NeoLabHQ
Add missing test coverage for your local code changes by generating new test files (covers uncommitted and untracked changes, or the latest commit if…
SkillBFreshness: B★ 1.8KClaude Code +9 - 0.623score
multi-agent-patterns
NeoLabHQ
Design multi-agent architectures for complex tasks.
SkillBFreshness: B★ 1.8KClaude Code +9 - 0.623score
review-pr
NeoLabHQ
Review an existing GitHub pull request and post inline review comments on its diff.
SkillBFreshness: B★ 1.8KClaude Code +9 - 0.623score
brainstorm
NeoLabHQ
Use when creating or developing, before writing code or implementation plans - refines rough ideas into fully-formed designs through collaborative…
SkillBFreshness: B★ 1.8KClaude Code +9 - 0.621score
review-local-changes
NeoLabHQ
Review your local uncommitted working-tree changes (git diff plus untracked files) and return actionable improvement suggestions.
SkillBFreshness: B★ 1.8KClaude Code +9 - 0.621score
load-pr-comments
NeoLabHQ
Use to load open/unresolved PR review comments then aggregate them as tasks in .specs/comments/*.md for parallel agents to fix.
SkillBFreshness: B★ 1.8KClaude Code +9 - 0.621score
resolve-fixed-pr-comments
NeoLabHQ
Verify what PR review comments have been addressed (committed/pushed OR uncommitted local changes) and resolve the threads that are genuinely fixed or no…
SkillBFreshness: B★ 1.8KClaude Code +9 - 0.621score
launch-sub-agent
NeoLabHQ
Launch an intelligent sub-agent with automatic model selection based on task complexity, specialized agent matching, Zero-shot CoT reasoning, and mandatory…
SkillBFreshness: B★ 1.8KClaude Code +9 - 0.620score
root-cause-tracing
NeoLabHQ
Use when errors occur deep in execution and you need to trace back to find the original trigger - systematically traces bugs backward through call stack…
SkillBFreshness: B★ 1.8KClaude Code +9 - 0.620score
git-notes
NeoLabHQ
Use when adding metadata to commits without changing history, tracking review status, test results, code quality annotations, or supplementing commit messages…
SkillBFreshness: B★ 1.8KClaude Code +9 - 0.618score
create-pr
NeoLabHQ
Create pull requests using GitHub CLI with proper templates and formatting
SkillBFreshness: B★ 1.8KClaude Code +9 - 0.618score
actualize
NeoLabHQ
Reconcile the project's FPF state with recent repository changes
SkillBFreshness: B★ 1.8KClaude Code +9
Signals
- Stars
- 1,782
- Forks
- 163
- Open issues
- 7
- Last commit (this folder)
- Jun 20, 2026 (4 months ago)
- Last release
- Aug 26, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- GPL-3.0
- Website
- neolab.gitbook.io/cek
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
- 0.621score
load-pr-comments
NeoLabHQ
Use to load open/unresolved PR review comments then aggregate them as tasks in .specs/comments/*.md for parallel agents to fix.
SkillBFreshness: B★ 1.8KClaude Code +9 - 0.324score
load-pr-comments
NeoLabHQ
Use to load open/unresolved PR review comments then aggregate them as tasks in .specs/comments/*.md for parallel agents to fix.
SkillBFreshness: B★ 1.8KClaude Code +9
More from NeoLabHQ
- 0.623score
brainstorm
NeoLabHQ
Use when creating or developing, before writing code or implementation plans - refines rough ideas into fully-formed designs through collaborative…
SkillBFreshness: B★ 1.8KClaude Code +9 - 0.623score
multi-agent-patterns
NeoLabHQ
Design multi-agent architectures for complex tasks.
SkillBFreshness: B★ 1.8KClaude Code +9 - 0.623score
review-pr
NeoLabHQ
Review an existing GitHub pull request and post inline review comments on its diff.
SkillBFreshness: B★ 1.8KClaude Code +9 - 0.623score
write-tests
NeoLabHQ
Add missing test coverage for your local code changes by generating new test files (covers uncommitted and untracked changes, or the latest commit if…
SkillBFreshness: B★ 1.8KClaude Code +9 - 0.621score
launch-sub-agent
NeoLabHQ
Launch an intelligent sub-agent with automatic model selection based on task complexity, specialized agent matching, Zero-shot CoT reasoning, and mandatory…
SkillBFreshness: B★ 1.8KClaude Code +9 - 0.621score
load-pr-comments
NeoLabHQ
Use to load open/unresolved PR review comments then aggregate them as tasks in .specs/comments/*.md for parallel agents to fix.
SkillBFreshness: B★ 1.8KClaude Code +9
Cite this page
load-pr-comments skill. Agent Mart. https://agentmart.dev/skills/neolabhq-load-pr-comments-6da61e (last updated 2026-10-24)