From ravn-ai-toolkit
Reads open GitHub PR review comments, triages by severity, applies code fixes, and drafts replies. Use when addressing PR feedback or code review.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ravn-ai-toolkit:pr-comments-addressThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Read open review comments from a GitHub PR, intelligently triage them by severity and type, apply code fixes, and draft professional replies. This skill ensures no feedback is missed and all changes are intentional.
Read open review comments from a GitHub PR, intelligently triage them by severity and type, apply code fixes, and draft professional replies. This skill ensures no feedback is missed and all changes are intentional.
Identify the PR from arguments or auto-detect from current branch:
# If PR number/URL provided as argument, use it
# Otherwise detect from current branch
gh pr view --json number,url,title,body,author
If no PR is found, stop and ask the user for a PR number or URL.
Fetch all review comments from the PR:
gh pr view <PR> --json reviews,comments,reviewThreads
Parse the JSON output to extract:
Read any project-specific rules from CLAUDE.md or .claude/rules/ if they exist (e.g., code style, testing requirements, review conventions). Apply those rules when triaging comments.
Categorize every unresolved comment into exactly one category:
| Category | Definition | Action | Example |
|---|---|---|---|
| Must-fix | Required change, unambiguous, blocking merge | Apply code change | "Add error handling for null case" |
| Should-fix | Recommended improvement, clear intent, improves quality | Apply code change after confirmation | "Extract this to a separate function for readability" |
| Clarification needed | The intent is unclear or the solution depends on context | Ask user for decision | "Why does this use setTimeout instead of Promise?" |
| Discussion / Question | No code change needed, just needs a reply | Draft reply only | "What's the performance impact of this change?" |
| Praise / Acknowledgement | Positive feedback or agreement | Brief acknowledgement | "Nice implementation!" |
Triage decision tree:
Output a triage table showing every comment, its category, and the required action.
Present all "clarification needed" comments to the user with full context (file, line number, comment text). For each one, explicitly ask: "What should be changed?"
Do not proceed until the user has answered every ambiguous comment.
Show the full plan for every code change:
For must-fix and should-fix comments:
For discussion/question comments:
Ask the user: "Should I proceed with these changes?"
Wait for explicit user confirmation before making any edits.
For each approved code change:
Example workflow for a single change:
cat src/auth.ts # read file
# make the change (using Edit tool)
git diff src/auth.ts # then verify
After all code changes are applied, verify:
Use git diff to review all changes at once:
git diff
For every comment (must-fix, should-fix, clarification, discussion, praise), draft a reply:
For applied changes (must-fix, should-fix):
validateUser() in auth.ts:45-60."For clarifications now resolved:
For questions/discussion:
For praise/acknowledgements:
Important: Do not use filler phrases like "Great point!", "Thanks for catching that!", "Absolutely!", "Looking forward to your feedback!" These add noise without substance.
Show all draft replies to the user for review. Ask: "Should I post these replies?"
Wait for user approval before posting anything.
Once approved, post each reply to its corresponding comment thread:
gh pr comment <PR> --in-reply-to <COMMENT_ID> --body "<reply text>"
Or use the GitHub API directly if the command-line interface differs:
gh api repos/{owner}/{repo}/pulls/comments/{comment_id}/replies \
-f body="<reply text>"
Confirm which replies were posted successfully.
User: "address the review comments and fix the code feedback on PR #42"
Expected behavior: Fetch comments from PR #42, triage into must-fix / should-fix / clarification / discussion, present triage table, wait for user input, apply fixes after confirmation, draft replies.
User: "fix the PR feedback on my current branch"
Expected behavior: Detect PR from current branch, fetch comments, triage, present plan, apply approved changes, draft replies.
User: "respond to the code review on https://github.com/org/repo/pull/99"
Expected behavior: Fetch comments from PR #99, triage, resolve any ambiguities with user input, apply fixes and draft replies after confirmation.
User: "review this pull request #123"
Expected behavior: Do not use pr-comments-address. The user wants to review a PR, not address existing feedback. Use a PR review workflow instead.
User: "create a pull request for my branch"
Expected behavior: Do not use pr-comments-address. The user wants to create a new PR, not address comments on an existing one.
gh pr view returns no PR for the current branch.gh commands fail with "not authenticated" or token errors.gh auth login to authenticate, then retry the skill.npx claudepluginhub ravnhq/ai-toolkitProcesses PR review feedback by analyzing comments, implementing fixes, committing, pushing, replying on GitHub, and resolving threads. Triggered by /pr-respond or relevant queries.
Fetches GitHub PR review feedback, triages comments as valid/stale/incorrect, implements fixes, verifies with tests, and drafts replies.
Fetches and filters PR review comments, extracts outside-diff-range feedback from review bodies, and resolves threads with proper attribution. Useful when addressing CodeRabbit, Cursor, or human reviewer feedback.