| name | gh-pr |
| description | Run simple GitHub PR operations in natural language: open PR, pull new comments idempotently, and mark one or many comments pending/addressed. |
| references | ["scripts/README.md"] |
gh-pr
Use this skill for minimal, direct PR operations.
When to use
- User says
gh pr and asks to open PR, check new comments, or mark comments pending/addressed.
- User wants idempotent comment triage between pushes.
Defaults
ADDRESSED_REACTION=+1 (:thumbsup:) means addressed.
PENDING_REACTION=eyes (:eyes:) means in progress.
BOT_REPLY_PREFIX=🤖 marks bot-authored replies.
- New comment = no pending/addressed reaction and body does not start with bot prefix.
Core operations
1) Open PR
Use native CLI and avoid over-automation:
gh pr create --title "<title>" --body-file <body.md> --base <base-branch>
2) Pull new comments (idempotent)
Use helper script:
bun skills/gh-pr/scripts/gh_pr_ops.ts queue --repo <owner/repo> --pr <number>
This fetches issue comments, inline review comments, and top-level PR review bodies (including summary reviews from Cursor Bugbot, Hodor, and similar tools), then returns only unmarked, non-bot-prefixed items.
3) Mark pending/addressed (one or many)
--status addressed now resolves GitHub review threads for PR review comments (instead of only adding a reaction).
Issue comments still use reactions.
bun skills/gh-pr/scripts/gh_pr_ops.ts mark --repo <owner/repo> --pr <number> --ids 12345 --status pending
bun skills/gh-pr/scripts/gh_pr_ops.ts mark --repo <owner/repo> --pr <number> --ids 12345 --status addressed
bun skills/gh-pr/scripts/gh_pr_ops.ts mark --repo <owner/repo> --pr <number> --ids 12345,12346,12347 --status addressed
4) Address comment(s) end-to-end
When user says "address comment" (or equivalent), execute this full sequence:
- Mark selected comment(s)
pending (:eyes:).
- Implement the requested fix.
- Run relevant verification (tests/lint/build as appropriate).
- Commit changes with a clear message.
- Push branch.
- Mark selected comment(s)
addressed (:+1:) only after push and only if actually resolved.
If verification fails or the fix is incomplete, keep the comment in pending state and report what remains.
Workflow
- Pull new comments from queue.
- Mark picked comments as
pending (:eyes:).
- Implement the fix.
- Verify.
- Commit.
- Push.
- Mark as
addressed (:+1:) only if the comment is actually resolved.
Guardrails
- Keep behavior deterministic; do not mutate unrelated PR metadata.
- Never treat bot-prefixed replies as new feedback.
- Mark only comments that were actually handled.
- Preserve source URLs and IDs in summaries.