From github-devflow
This skill should be used when the user asks to "fix PR comments", "fix review feedback", "fix PR
npx claudepluginhub hhiroshell/gh-devflow-plugins --plugin github-devflowThis skill is limited to using the following tools:
Process unresolved review threads on a pull request by analyzing each thread and taking the appropriate action: fix the code, create a new issue, or dismiss with no action. After all actions are taken, reply to each thread reporting the results.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Process unresolved review threads on a pull request by analyzing each thread and taking the appropriate action: fix the code, create a new issue, or dismiss with no action. After all actions are taken, reply to each thread reporting the results.
Action types:
| Action | Description |
|---|---|
| fix | Make code changes to address the reviewer's concern and commit |
| new issue | Create a GitHub issue to track the problem for later |
| won't fix | No action needed (minor suggestion, style preference, or already addressed) |
This skill uses shared helper scripts in scripts/ at the plugin root:
| Script | Purpose |
|---|---|
fetch-review-threads.sh | Fetch review threads from a PR with optional filtering |
post-reply.sh | Post a reply to a review thread |
Fetch unresolved review threads that need attention:
PR_NUMBER=$ARGUMENTS
bash ${CLAUDE_PLUGIN_ROOT}/scripts/fetch-review-threads.sh $PR_NUMBER --filter-resolved --filter-skill fix
This returns JSON with:
owner, repo, prNumber: Repository contextthreads: Array of threads requiring actiontotalCount: Number of actionable threadsEach thread contains:
id: Thread ID for posting replies (e.g., PRRT_xxx)path: File path in the repositoryline, startLine: Line numbers in the filecomments.nodes: Array of all comments in the threadIf no actionable threads are found (totalCount: 0), report that no action is needed.
For each thread, read all comments and examine the code context to decide the appropriate action.
comments.nodes to understand the full conversationpath around line to understand the contextProcess each thread according to its decided action. Track all actions taken for the summary.
git add <changed-files>
git commit -m "Fix: <brief description of the fix>
Addresses review comment on <file>:<line> in PR #$PR_NUMBER"
Create a GitHub issue with context from the review thread:
gh issue create --title "<concise title describing the problem>" --body "$(cat <<EOF
## Context
Raised in review of PR #$PR_NUMBER
**File**: `<path>`
**Line**: <line>
## Problem
<description from the review comment>
## Suggested Approach
<any suggestions from the thread or initial thoughts on how to address>
---
*Issue created with [Claude Code](https://claude.ai/code) - github-devflow:fix*
EOF
)"
Record: issue number, issue URL, brief description
No code changes or issue creation needed. Record: brief reason why no action was taken.
After executing all actions, reply to each thread reporting what was done.
For fix actions:
Fixed in commit <sha>.
<brief description of the change made>
For new issue actions:
Created issue #<number> to track this.
<issue URL>
For won't fix actions:
No action taken: <brief explanation>
Post each reply using:
bash ${CLAUDE_PLUGIN_ROOT}/scripts/post-reply.sh --skill fix "<thread-id>" "<reply-body>"
Or for longer replies:
bash ${CLAUDE_PLUGIN_ROOT}/scripts/post-reply.sh --skill fix --file "<thread-id>" /tmp/reply.md
Push all commits to the remote branch:
git push
Provide a summary of all actions taken:
gh CLI is not authenticated, inform the user to run gh auth logingit push fails (e.g., due to branch protection rules or authentication), inform the user of the error and suggest manual resolutionUsage: fetch-review-threads.sh <pr-number> [--filter-resolved] [--filter-skill <name>]
Options:
--filter-resolved Filter out resolved threads
--filter-skill <name> Filter out threads where the latest
comment contains the specified skill's signature
(github-devflow:<name>)
Output: JSON with repository info and thread array
Usage: post-reply.sh [--skill <name>] <thread-id> <body>
post-reply.sh [--skill <name>] --file <thread-id> <body-file>
Options:
--skill <name> Include skill identifier in signature
(e.g., --skill fix → "github-devflow:fix")
Arguments:
thread-id The GraphQL ID of the review thread (e.g., PRRT_xxx)
body The reply message text
body-file Path to a file containing the reply message
Note: Automatically appends a "Claude Code" signature to identify
AI-generated replies for filtering in subsequent runs.
Output: JSON with success status and comment details