一键导入
pr-feedback
Address reviewer feedback on GitHub pull requests by making targeted fixes or explaining disagreements. Use when responding to PR comments.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Address reviewer feedback on GitHub pull requests by making targeted fixes or explaining disagreements. Use when responding to PR comments.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Set up the full CLaaS stack (vLLM + API + OpenClaw/Telegram) locally. Uses Docker if available, falls back to native setup otherwise.
Deploy the CLaaS Modal serverless distillation API. Use when deploying the SDPO distillation service to production.
Deploy the CLaaS Tinker stack (API + OpenClaw/Telegram) via Docker Compose. No GPU required.
Delete all checkpoints from your Thinking Machine Tinker prod account to reduce storage charges. Requires TINKER_API_KEY.
| name | pr-feedback |
| description | Address reviewer feedback on GitHub pull requests by making targeted fixes or explaining disagreements. Use when responding to PR comments. |
Address reviewer feedback on GitHub pull requests by making targeted fixes or explaining disagreements.
DO NOT just make fixes locally and push. For EVERY comment you process, you MUST:
*Comment generated by Claude Code*If you do not leave replies on GitHub, reviewers will not know their feedback was addressed!
When this skill is invoked, follow these steps:
If no PR number is provided, get the current branch's PR:
gh pr view --json number -q '.number'
Fetch all review comments (both human and AI reviewers):
# Get PR review comments (inline code comments)
gh api repos/{owner}/{repo}/pulls/{pr_number}/comments --jq '.[] | {id, user: .user.login, body, path, line: .original_line, commit_id: .original_commit_id, in_reply_to_id, url: .html_url}'
# Get PR review threads with their resolution status
gh api repos/{owner}/{repo}/pulls/{pr_number}/reviews --jq '.[] | {id, user: .user.login, state, body}'
# Get issue-style comments on the PR
gh api repos/{owner}/{repo}/issues/{pr_number}/comments --jq '.[] | {id, user: .user.login, body, url: .html_url}'
Before processing, categorize all comments into two groups:
For Group A: Use the Task tool with subagent_type=general-purpose to address multiple comments in parallel. Each subagent handles one comment independently, makes the fix, commits, and replies.
Example:
Task tool with prompt: "Address PR comment #{id} on {file}: '{comment_text}'. Make the fix, commit with message referencing the comment, and reply to comment #{id} on GitHub with the commit link. End reply with '*Comment generated by Claude Code*'"
Launch multiple subagents in parallel for independent comments to maximize efficiency.
For Group B: Process in the main context to maintain full context for:
For each unresolved comment in Group B:
Read the comment and determine:
Skip comments that are:
git add <specific-file>
git commit -m "$(cat <<'EOF'
Fix: <brief description of what was fixed>
Addresses review feedback: <short summary>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
EOF
)"
git rev-parse HEAD
gh api repos/{owner}/{repo}/pulls/{pr_number}/comments/{comment_id}/replies \
-f body="Fixed in [\`{short_sha}\`](https://github.com/{owner}/{repo}/commit/{full_sha})
Comment generated by Claude Code"
#### 4c. If You Disagree with the Feedback
Reply to the comment thread explaining why (2-3 sentences max):
```bash
gh api repos/{owner}/{repo}/pulls/{pr_number}/comments/{comment_id}/replies \
-f body="@{reviewer_username} <explanation of why you disagree - 2-3 sentences max>
*Comment generated by Claude Code*"
Note: If the comment is from chatgpt-codex-connector[bot] (Codex), always tag @codex instead of the bot username to invite their response.
Common reasons to disagree:
For complex algorithm or architecture comments, expect multiple rounds:
This is why Group B stays in main context - you need full conversation history to handle: "Actually, I meant X not Y" or "This commit made things worse, please restore..."
If you launched subagents for Group A comments:
TaskOutput to check on subagent completionAfter addressing all feedback (wait for any parallel subagents to complete):
git push
Provide a summary of actions taken:
gh api repos/{owner}/{repo}/pulls/{pr_number}/comments/{comment_id}/replies \
-f body="Your response
*Comment generated by Claude Code*"
gh api repos/{owner}/{repo}/issues/{pr_number}/comments \
-f body="Your response
*Comment generated by Claude Code*"
gh repo view --json owner,name -q '"\(.owner.login)/\(.name)"'
Comment: "This function should handle the case where the list is empty"
Analysis: Valid - the function doesn't check for empty input
Action: Add empty list check, commit, reply with commit link
Comment: "Consider using a more descriptive variable name than 'x'"
Analysis: Disagree - 'x' is conventional for coordinates in this context
Action: Reply "@reviewer x is the standard name for x-coordinates in graphics code, keeping for consistency with the domain"
Comment: "Nice work!"
Analysis: Not actionable - skip
Action: None
gh api - do not just make local fixes!*Comment generated by Claude Code* to all PR comment replieschatgpt-codex-connector[bot]), tag @codex to invite their responseUse subagents (Group A) when:
Use main context (Group B) when:
Efficiency tip: Launch all Group A subagents in parallel first, then work through Group B comments sequentially in main context. Check for subagent completion before pushing.