From git-skills
Apply review feedback to code, commit and push the changes, then reply to each review thread. Intended to run after /pr-review-analyze — by invocation time the user has already analyzed reviews, decided what to address, and applied the code changes. Use when the user says "apply review feedback", "address review", "fix review comments", "review 반영", or "/pr-review-apply".
How this skill is triggered — by the user, by Claude, or both
Slash command
/git-skills:pr-review-applyThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Resolve the PR number in this priority order:
Resolve the PR number in this priority order:
gh pr view --json number -q .number or GitHub MCP *get_pull_request*.Once the PR number is known, run the following in parallel:
| Operation | MCP pattern | gh CLI fallback |
|---|---|---|
| List review comments | *list_pull_request_review_comments* | gh api repos/{owner}/{repo}/pulls/<PR>/comments |
| List PR reviews (for context) | *list_pull_request_reviews* | gh api repos/{owner}/{repo}/pulls/<PR>/reviews |
To resolve {owner} and {repo}: parse git remote get-url origin.
Filter the thread list: skip any thread where the current authenticated user has already replied (identified via gh api user -q .login or MCP equivalent). Mark those as [already replied] in the final summary.
Scan the available tool list for:
| Operation | MCP pattern | gh CLI fallback |
|---|---|---|
| Reply to a review comment thread | *create_review_comment_reply* or *reply_to_review_comment* | gh api repos/{owner}/{repo}/pulls/<PR>/comments/<comment_id>/replies -X POST -f body="<body>" |
Run git diff --stat HEAD to display the list of modified files. If the working tree is clean (no staged or unstaged changes and no untracked files relevant to the review), skip Phase 1 entirely and proceed to Phase 2.
Draft a commit message that summarizes which review items were addressed. Print it and proceed immediately to Step 3:
Changed files:
<git diff --stat output>
Commit message:
<draft message>
git add -A
git commit -m "<drafted message>"
git push
Stop if push fails and report the error. Do not proceed to Phase 2 until push succeeds.
Process unresolved threads one at a time in chronological order.
Before drafting, show the full thread:
---
Thread #<n> of <total unresolved>
File: <filename> (line <line>)
Reviewer: <login> (<review state: CHANGES_REQUESTED | APPROVED | COMMENTED>)
> <original comment text>
<any existing replies in the thread, in chronological order>
---
If the comment has no file/line (top-level PR comment), show (general comment) instead.
Draft a reply in Korean (or the language specified at invocation). The reply should:
Copilot bot threads — if the reviewer login matches copilot, github-copilot, copilot[bot], or the account's type field is Bot:
Submit the reply immediately without asking for confirmation. Print:
[Auto] Reply submitted to thread #<n> (Copilot bot).
Human reviewer threads:
Present the draft:
Proposed reply:
<draft text>
[yes / skip / edit: <your text> / stop]
| User input | Action |
|---|---|
yes or y | Submit the draft as-is |
skip or s | Skip this thread, move to next |
edit: <text> | Replace the draft with <text> and submit |
stop or abort | Stop the entire workflow, emit the summary so far |
Path A — GitHub MCP reply tool available:
Call the discovered *create_review_comment_reply* tool with:
pull_number: PR numbercomment_id: the ID of the root (first) comment in the threadbody: the confirmed reply textPath B — gh CLI fallback:
gh api "repos/{owner}/{repo}/pulls/<PR>/comments/<comment_id>/replies" \
-X POST \
-f body="<reply text>"
After successful submission, confirm: Reply submitted to thread #<n>.
Move to the next unresolved thread and repeat from Step 1.
After all threads are processed, output:
## Reply Summary
- Replied: <count>
- Skipped: <count>
- Already replied (skipped): <count>
- Total threads: <count>
edit: <text> response in a different language, submit that text as-is. Continue using the session default for subsequent threads unless the user changes it.{owner} and {repo}, resolve them from git remote get-url origin before proceeding.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub kimharry99/ai-agent-plugins --plugin git-skills