| name | github-pr-threads |
| description | Reply to and resolve GitHub PR review threads after pushing fixes. Use after committing changes that address PR feedback — matches threads to commits, posts replies with commit references, and resolves threads. Triggers on: resolve threads, reply to PR feedback, address PR comments, close review threads. |
GitHub PR Thread Management
Resolve every thread whose underlying issue is handled; leave open only
what's genuinely outstanding. "Addressed" = a pushed commit does exactly
what the thread asked, or a reply explains why current code already
answers it. Pending/deferred/follow-up work is NOT addressed — stays open.
Rules
- Reply only after the addressing commit is on the remote branch.
- Reply format: "addressed in {short_sha} — {description}". Describe
what changed, not why the reviewer was right.
- Only resolve threads addressed by commits on THIS PR's branch.
- If a thread asks for X and the commit does Y (related but not X),
don't resolve.
- Batch: reply to all addressed threads in one pass, then resolve in
one pass. Always pair reply with resolve, after every round of fixes.
Voice
Lowercase, no emoji, one sentence (two max), humble, name the specific
change. Never name the reviewer — say "the review" or "feedback".
- "addressed in ac7636e2 — all reserved fields removed, fields renumbered sequentially."
- "good catch, missed this one. added min_len:1, max_len:131072 in 651c4af3."
Workflow
- Gather thread state:
gh api graphql -f query='query {
repository(owner: "OWNER", name: "REPO") {
pullRequest(number: NUM) {
reviewThreads(first: 100) {
nodes {
id
isResolved
comments(first: 1) {
nodes { databaseId author { login } body path line }
}
}
}
}
}
}'
-
Categorize each open thread: (pushed commit fixes
exactly what was asked), (needs discussion — reply, don't
resolve), (future commit — skip for now).