From ravn-ai-toolkit
Reads open GitHub PR review comments, triages by severity and type, applies code fixes, and drafts replies. Use for addressing review feedback.
npx claudepluginhub ravnhq/ai-toolkitThis skill is limited to using the following tools:
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.
Fetches unresolved GitHub PR comments and threads, analyzes reviewer feedback, implements fixes, builds/tests, commits/pushes changes, replies to comments, and resolves threads.
Resolves GitHub PR review comments: fetches via GitHub CLI and API, classifies by severity, filters new feedback, applies fixes with confirmation, commits changes, and replies to threads.
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.
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.