Help us improve
Share bugs, ideas, or general feedback.
From github-devflow
This skill should be used when the user asks to "reply to PR comments", "respond to review comments", "reply to PR
npx claudepluginhub hhiroshell/gh-devflow-plugins --plugin github-devflowHow this skill is triggered — by the user, by Claude, or both
Slash command
/github-devflow:replyThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Reply to comments on a GitHub pull request by finding threads that need responses, generating thoughtful replies based on codebase context, and posting them directly.
Processes PR review feedback by analyzing comments, implementing fixes, committing, pushing, replying on GitHub, and resolving threads. Triggered by /pr-respond or relevant queries.
Reads open GitHub PR review comments, triages by severity, applies code fixes, and drafts replies. Use when addressing PR feedback or code review.
Guides GitHub PR comment workflows: drafts responses, creates pending reviews via gh CLI, resolves feedback by fixing code or replying per strict style rules.
Share bugs, ideas, or general feedback.
Reply to comments on a GitHub pull request by finding threads that need responses, generating thoughtful replies based on codebase context, and posting them directly.
Filter criteria for actionable threads:
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 |
Use the helper script to fetch review threads that need replies:
PR_NUMBER=$ARGUMENTS
bash ${CLAUDE_PLUGIN_ROOT}/scripts/fetch-review-threads.sh $PR_NUMBER --filter-resolved --filter-skill reply
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)isResolved: Always false (filtered)path: File path in the repositoryline: Line number in the filecomments.nodes: Array of all comments in the thread (latest comment is last)If no actionable threads are found (totalCount: 0), report that no replies are needed.
For each actionable thread:
comments.nodes array to understand the full conversation contextpath around lineWhen generating replies:
Post each reply using the helper script:
bash ${CLAUDE_PLUGIN_ROOT}/scripts/post-reply.sh --skill reply "<thread-id>" "<reply-body>"
Or for longer replies, write to a file first:
bash ${CLAUDE_PLUGIN_ROOT}/scripts/post-reply.sh --skill reply --file "<thread-id>" /tmp/reply.md
The script returns JSON with:
success: Boolean indicating successcomment.id: The created comment's IDcomment.url: URL to the commentAfter processing all threads, provide a summary:
This skill must NOT modify any files. Only suggest changes in replies:
path fieldgh CLI is not authenticated, inform the user to run gh auth loginUsage: 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 reply → "github-devflow:reply")
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