From pr-review
Step 3/4: Preview and post replies to PR review threads, then resolve them on GitHub. Use after /pr-review:pr-review-apply has applied fixes. Triggers include "post PR replies", "resolve the review comments", "reply on the PR", "resolve PR threads". This is the only skill in the pr-review plugin that touches GitHub — it posts public, irreversible comments and resolves threads. Always asks for confirmation before posting.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pr-review:postThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Preview draft replies from the plan artifact, ask for explicit confirmation, then batch-post replies and resolve threads on GitHub. This is the **only skill that touches GitHub** in the PR review pipeline.
Preview draft replies from the plan artifact, ask for explicit confirmation, then batch-post replies and resolve threads on GitHub. This is the only skill that touches GitHub in the PR review pipeline.
This skill posts public, irreversible comments. It always shows a preview and asks for confirmation before posting.
.pr-review/pr-<N>-plan.md with status fixed/pr-review:pr-review-plan and fixes applied by /pr-review:pr-review-applygh CLI authenticated with permissions to comment on PRsjq installedFind the most recent plan file in .pr-review/. Check the **Status** header:
fixed → proceedtriaged → refuse: "Fixes haven't been applied yet. Run /pr-review:pr-review-apply first."fixing → refuse: "Fixes are still in progress. Finish /pr-review:pr-review-apply first."posted → refuse: "Replies have already been posted for this plan."Show the user the complete list of draft replies as they appear in the plan file. The user may have edited them since triage. Format as a clear table or list:
## Replies to post on PR #<N>
Thread <id> (src/Foo.kt:42) — fixed
Reply: "Applied the suggestion, thanks."
Thread <id> (src/Bar.kt:10) — skipped (disagree)
Reply: "Disagree — this value is runtime-computed from config."
Thread <id> (src/Baz.kt:25) — fixed
Reply: "Fixed — added null check for the timeout case."
Total: N replies to post, all threads will be resolved.
Ask the user for explicit confirmation: "These replies will be posted publicly and threads resolved. Proceed?"
Do not post without confirmation. If the user says no, stop and let them edit the plan file.
Extract the repo, PR number, thread IDs, replies, and resolve flags from the plan file. Build a JSON payload file at /tmp/pr-<N>-post-payload.json:
{
"repo": "owner/repo",
"pr_number": 123,
"actions": [
{"thread_id": "12345", "reply": "Applied the suggestion, thanks.", "resolve": true},
{"thread_id": "67890", "reply": "Disagree — runtime value.", "resolve": true}
]
}
Invoke the batch post script:
bash ${CLAUDE_PLUGIN_ROOT}/scripts/gh-review-post.sh /tmp/pr-<N>-post-payload.json
The script:
posted: N/M, resolved: N/MRead the script's exit code and stdout summary:
**Status**: posted. Mark each thread [x] posted.**Status**: partial. Mark succeeded threads [x] posted, failed threads [ ] post_failed. Report which threads failed so the user can retry or manually resolve.Tell the user:
"Replies posted. Want to check for recurring patterns across recent reviews?
- Run extract-lessons now
- Skip for now
Which option?"
Wait for the user's response.
/pr-review:pr-review-apply's job.npx claudepluginhub shreeyak/claude-pr-review-plugin --plugin pr-reviewCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.