skills/gh-pr-review/SKILL.md
Systematic workflow for addressing PR review comments using gh-pr-review CLI. Use when the user wants to work through PR review comments and prefers the gh-pr-review tool over helper scripts.
npx skillsauth add scottatron/gh-pr-review gh-pr-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
GitHub repo: https://github.com/scottatron/gh-pr-review
A systematic approach to addressing PR review comments efficiently: fetch unresolved threads, work through them one by one with the user, implement and verify each fix before moving to the next issue, and keep review state clean as each thread is resolved.
gh) installed and authenticatedgh-pr-review CLI on PATHFetch review threads for a PR with resolution status.
# Unresolved threads only
gh-pr-review list --pr [PR_NUMBER] --status unresolved
# All threads
gh-pr-review list --pr [PR_NUMBER] --status all
# Resolved threads without replies
gh-pr-review list --pr [PR_NUMBER] --status resolved-no-reply
Use --repo owner/name if not running within the repo. Use --json for structured output.
gh-pr-review reply --thread-id "THREAD_ID" --body "Reply message"
gh-pr-review resolve --thread-id "THREAD_ID"
gh-pr-review unresolve --thread-id "THREAD_ID"
Fetch all unresolved review threads:
gh-pr-review list --pr [PR_NUMBER] --status unresolved --json
If you need all threads, use --status all.
Key data points:
thread.id - GraphQL thread ID (needed for replies/resolve/unresolve)thread.isResolved - Resolution statusthread.path - File paththread.line - Line numbercomments[].body / comments[].author.login - comment contextIdentify the next thread to handle based on priority (critical bugs first, then correctness, then quality/docs). Keep the remaining threads queued, but only actively discuss one issue at a time.
For the current thread only:
Present exactly one issue at a time. Do not batch multiple review comments into one decision step, and do not ask the user to approve a whole set of issues up front.
Format:
Issue #N: [Brief description]
File: path/to/file.ts:42
Severity: Critical/Medium/Low
Options:
1. [Quick fix] - [Trade-offs]
2. [Thorough fix] - [Trade-offs]
3. [Alternative] - [Trade-offs]
Recommendation: Option X because [reasoning]
Collect the user's decision for the current thread, then move immediately into implementation for that thread before discussing the next one.
Key Principle: The loop is always: Fetch unresolved threads -> pick one thread -> discuss one thread -> implement one thread -> reply/resolve one thread -> verify -> move to the next thread.
After the user decides how to handle the current thread:
gh-pr-review reply --thread-id "THREAD_ID" --body "Fixed in collaboration with Codex - [brief description]"
gh-pr-review resolve --thread-id "THREAD_ID"
gh-pr-review reply, which should auto-submit the review if GitHub associates the reply with a pending review.Keep changes focused to the current thread. Do not silently absorb additional review issues into the same user decision unless they are inseparable from the fix.
Create a comprehensive commit message once the intended set of threads for the round is complete:
fix: address [source] PR review comments
[One-sentence summary of scope]
**Critical Fixes:**
- [Security/bug fixes]
**Code Quality:**
- [Refactoring, best practices]
**Documentation:**
- [Examples, guides, comments]
**Changes:**
- path/to/file: [what changed and why]
All addressed review threads in this round are resolved.
Relates to #[PR_NUMBER]
Commit and push:
git add [files]
git commit -m "[message above]"
git push
Verify the targeted threads are resolved and no new unresolved threads were introduced:
gh-pr-review list --pr [PR_NUMBER] --status unresolved --json
If threads remain unresolved, continue the one-by-one loop. Do not collapse back into a batch triage step.
For PRs with many comments (>10), split into rounds:
Each round still processes threads sequentially: Fetch -> pick one -> analyze -> decide -> implement -> reply/resolve -> verify -> repeat
Before committing:
Security: Always prioritize (Round 1), create issue if complex, document considerations
Naming/Style: Check existing patterns, apply consistently, update style guide if new pattern
Dependencies: Consider version compatibility, check breaking changes, update lock files
Documentation: Fix incorrect examples, update guides/READMEs, add comments for complex changes
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.