PR helper skills: review and resolve PR comments, and draft structured PR descriptions.
97
92%
Does it follow best practices?
Impact
98%
1.44xAverage score across 10 eval scenarios
Advisory
Suggest reviewing before use
Resolve unaddressed PR feedback on a GitHub PR by fixing the underlying source code, verifying the fix, committing, pushing, and replying on the appropriate thread.
The user will provide one of:
#689)https://github.com/org/repo/pull/689)If no specific comment is mentioned, address all unresolved PR feedback.
# If on a feature branch, find the associated PR
gh pr view --json number,url
# Get the authenticated user's login (used to detect our own replies)
gh api user --jq '.login'
# Fetch line review comments
gh api repos/{owner}/{repo}/pulls/{pr_number}/comments
# Fetch top-level PR issue comments
gh api repos/{owner}/{repo}/issues/{pr_number}/comments
# Fetch review summaries / approvals / change requests
gh api repos/{owner}/{repo}/pulls/{pr_number}/reviewsin_reply_to_id) that has a child reply with user.login matching the authenticated user's login.git log, commit authorship, Co-Authored-By: Claude, or ?since= timestamps to decide what to ignore.Assess all non-outdated reviewer or bot feedback across these surfaces, including issue comments, review summaries, minor comments, and nitpicks. Do not skip something just because it seems small; decide whether to address, defer, or disagree in step 2.
If no unaddressed feedback remains after filtering, report this to the user and stop.
Do not blindly action every item. For each feedback item:
openapi.json, types.d.ts, build artifacts)Once you have assessed all feedback items, present your plan to the user before making any changes. Use the ask question tool (or equivalent structured prompt) to show:
Ask the user to confirm the plan or adjust individual items. Only proceed with fixes after receiving confirmation. This prevents wasted effort on misunderstood feedback and keeps the user in control.
If the project has generated files affected by the change (e.g. OpenAPI specs, type definitions, compiled output), run the appropriate regeneration command. Check CLAUDE.md or project docs for the correct command (e.g. bun run api:sync).
bun run format && bun run lint)Stage only the relevant files (source + regenerated artifacts). Write a clear commit message:
fix: <concise description of what was fixed>
<brief explanation of root cause and what changed>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>Push to the current branch.
Reply on the most specific available GitHub surface for that feedback:
Replies must be very short, concise, and clear. No fluff, no preamble. A few words to a single sentence is ideal. Examples:
"Fixed in <sha> — updated the return type to match the schema.""Valid point — deferring to a follow-up since it requires a broader refactor.""Keeping as-is — the explicit check is needed here because <brief reason>."When you've made a decision that differs from what the reviewer suggested, briefly explain why. Don't just say "won't fix" — give the reasoning in one sentence.
For line review comments:
gh api repos/{owner}/{repo}/pulls/comments/{comment_id}/replies \
-f body="<short reply>"Use the comment_id from step 1 (the top-level review comment's id, not a child reply's ID).
For PR issue comments or review summaries:
gh api repos/{owner}/{repo}/issues/{pr_number}/comments \
-f body="<short reply referencing the original feedback>"Mention the reviewer or bot and include enough context that it is obvious which issue comment or review summary you are addressing.
If the /replies endpoint fails for a line review comment, do not immediately fall back to a top-level comment. Diagnose first:
owner, repo, and comment_id — common mistakes: using a reply's ID instead of the top-level ID, wrong owner for forks, or swapped PR number and comment IDid, then retrygh api repos/{owner}/{repo}/pulls/{pr_number}/comments/{comment_id}/repliesgh api repos/{owner}/{repo}/issues/{pr_number}/comments \
-f body="<short reply referencing the original review comment>"