From copilot-cli-toolkit
Coordinates GitHub PR review responses: gathers comments, triages by priority/domain (security, bugs, style), tracks threads/resolutions, acknowledges feedback, posts replies. Use for handling PR feedback.
npx claudepluginhub rjmurillo/ai-agentsThis skill uses the workspace's default tool permissions.
Coordinates PR review responses through context gathering, comment tracking, and orchestrator delegation.
Coordinates GitHub PR review responses: gathers comment context, triages by actionability/domain/priority, tracks threads/resolutions, acknowledges feedback, and posts replies. Use for handling PR feedback.
Reads open GitHub PR review comments, triages by severity and type, applies code fixes, and drafts replies. Use for addressing review feedback.
Addresses GitHub PR review feedback systematically: fetches inline comments and review bodies, handles outside-diff-range comments, triages by priority, resolves threads with attribution.
Share bugs, ideas, or general feedback.
Coordinates PR review responses through context gathering, comment tracking, and orchestrator delegation.
| Phrase | Action |
|---|---|
respond to PR comments | Full workflow |
address review feedback on PR #123 | Full workflow |
handle PR review comments | Full workflow |
fix PR review issues | Full workflow |
reply to reviewer on PR #123 | Target specific PR |
ALWAYS extract PR context from prompt first. Never prompt for information already provided.
SCRIPTS_DIR="${CLAUDE_PLUGIN_ROOT:-.claude}/skills/github/scripts"
# Extract PR number and owner/repo from user prompt
python3 "$SCRIPTS_DIR/utils/extract_github_context.py" --text "[prompt]" --require-pr
Supported patterns:
PR 806, PR #806, pull request 123, #806github.com/owner/repo/pull/123See references/workflow.md Phase -1 for full details.
| Operation | Script |
|---|---|
| Context extraction | extract_github_context.py |
| PR metadata | get_pr_context.py |
| Comments | get_pr_review_comments.py --include-issue-comments |
| Domain classification | get_pr_review_comments.py --group-by-domain |
| Reviewers | get_pr_reviewers.py |
| Reply | post_pr_comment_reply.py |
| Reaction | add_comment_reaction.py |
| Resolve thread | resolve_pr_review_thread.py |
| Priority | Reviewer | Signal |
|---|---|---|
| P0 | cursor[bot] | 100% actionable |
| P1 | Human reviewers | High |
| P2 | coderabbitai[bot] | ~50% |
| P2 | Copilot | ~44% |
Comments are classified into domains for priority-based triage:
| Priority | Domain | Keywords | Use Case |
|---|---|---|---|
| P0 | Security | CWE-*, vulnerability, injection, XSS, SQL, CSRF, auth, secrets, credentials, TOCTOU, symlink, traversal | Process FIRST - security-critical issues |
| P1 | Bug | error, crash, exception, fail, null, undefined, race condition, deadlock, memory leak | Address functional issues |
| P2 | Style | formatting, naming, indentation, whitespace, convention, prefer, consider, suggest | Apply improvements when time permits |
| P3 | Summary | Bot-generated summaries (## Summary, ### Overview) | Informational only |
Domain-First Processing Workflow:
SCRIPTS_DIR="${CLAUDE_PLUGIN_ROOT:-.claude}/skills/github/scripts"
# Get comments grouped by domain
comments=$(python3 "$SCRIPTS_DIR/pr/get_pr_review_comments.py" --pull-request 908 --group-by-domain --include-issue-comments)
# Process security FIRST (CWE, vulnerabilities, injection)
echo "$comments" | jq -r '.Security[]' | while read -r comment; do
# Handle security-critical issues immediately
# Route to security agent if needed
echo "Processing security comment"
done
# Then bugs (errors, crashes, null references)
echo "$comments" | jq -r '.Bug[]' | while read -r comment; do
# Address functional issues
echo "Processing bug comment"
done
# Then style (formatting, naming, conventions)
echo "$comments" | jq -r '.Style[]' | while read -r comment; do
# Apply style improvements
echo "Processing style comment"
done
# Finally general comments (everything else)
echo "$comments" | jq -r '.General[]' | while read -r comment; do
# Process general feedback
echo "Processing general comment"
done
# Skip summary comments (bot-generated noise)
# .Summary contains informational summaries only
Benefits:
Use this skill when:
Use direct post_pr_comment_reply.py instead when:
extract_github_context.pypr-comment-responder-skills memory--group-by-domain for priority triage).agents/pr-comments/PR-[N]/comments.mdSee references/workflow.md for full phase details.
See references/gates.md for gate implementation.
See references/templates.md for:
See references/bots.md for:
| Avoid | Why | Instead |
|---|---|---|
| Replying to bot summaries as actionable comments | Wastes time on informational noise | Skip Summary domain comments |
| Processing style before security | Misses critical issues | Process domains in P0-P3 priority order |
Using raw gh commands | Bypasses tested skill scripts | Use post_pr_comment_reply.py and other skill scripts |
| Prompting user for PR number already in prompt | Redundant and frustrating | Use extract_github_context.py to parse from input |
get_pr_review_comments.py --group-by-domainreferences/templates.md