From development-skills
Create a GitHub PR with Copilot as reviewer and poll until the review arrives.
How this skill is triggered — by the user, by Claude, or both
Slash command
/development-skills:copilot-reviewThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create a GitHub PR, request Copilot review, poll until it arrives, and triage the results.
Create a GitHub PR, request Copilot review, poll until it arrives, and triage the results.
Use pr-with-copilot-review.sh for the entire flow. Do NOT create the PR separately with gh pr create and then try to poll — the script handles PR creation, Copilot review request (--reviewer @copilot), and polling in one shot.
${CLAUDE_SKILL_DIR}/scripts/pr-with-copilot-review.sh --title "fix: foo" --body-file /tmp/body.md --base main
All arguments are forwarded to gh-post pr create --reviewer @copilot. The script then polls until Copilot's review arrives, outputting the review body and inline comments to stdout.
Inline --body <string> and -b <string> are rejected by gh-post — the wrapper exists to keep every body through its hardwrap validator. Use --body-file <path> (preferred) or --body-stdin.
After pushing fix commits to an existing PR, trigger a new Copilot review and wait:
${CLAUDE_SKILL_DIR}/scripts/pr-with-copilot-review.sh --re-review https://github.com/owner/repo/pull/123
This records the current review count, runs gh pr edit --add-reviewer @copilot to trigger a new review, then polls until a new review appears (ignoring previous ones).
If the PR was already created and review already requested:
${CLAUDE_SKILL_DIR}/scripts/pr-with-copilot-review.sh --poll https://github.com/owner/repo/pull/123
This skips PR creation and review request, going straight to polling.
COPILOT_POLL_INITIAL — initial poll interval in seconds (default: 60)COPILOT_POLL_MAX — max poll interval (default: 300)COPILOT_POLL_ATTEMPTS — max attempts (default: 10)Copilot reviews see the diff and file contents but lack project-specific knowledge about design decisions, test coverage, or runtime verification.
For each finding:
Each Copilot finding lives on an inline thread; that thread is the unit of response. After triaging, reply within each thread via gh-post reply-inline — every reply body is validated (hardwrap detector + halt-before-send) and a single batch covers the full review:
# 1. Collect target threads — by default this filters to Copilot-authored heads
# and reports per-thread state (resolved? has reply? outdated?).
# Use --unresolved --unreplied to narrow to threads that actually need a reply.
${CLAUDE_SKILL_DIR}/scripts/list-pr-threads.sh {owner}/{repo} {number} --unresolved --unreplied
# 2. Build a JSONL file: one {"id": <head-comment-id>, "body": "<reply text>"} per line.
# Each reply should be concise — state the classification (fixed, false positive,
# acknowledged) and the reasoning in 1-2 sentences.
# 3. Send the batch. The wrapper validates every body BEFORE any send; on a body
# failure no replies post. On a mid-batch API failure it prints un-sent indices
# and exits non-zero.
gh-post reply-inline {owner}/{repo} {number} < /tmp/replies.jsonl
If list-pr-threads.sh --unresolved --unreplied returns zero lines: every Copilot thread is already resolved or already has a reply — do NOT post additional replies. Surface this to the user and ask before doing anything else. Stacking a duplicate "addressed in …" reply on a closed thread is the failure mode this wrapper exists to prevent.
Direct gh api .../comments/{id}/replies -F body=... is still possible but defeats both the body-validation guarantee and the thread-state filter — use it only for one-off cases where the JSONL ceremony is overhead, and verify thread state via list-pr-threads.sh first.
gh CLI >= 2.88.0 (for --reviewer @copilot support)gh-post on PATH — the script routes PR creation through gh-post pr create so the body passes the wrapper's validator stackcodex review loop (pre-PR, local)
↓ clean
${CLAUDE_SKILL_DIR}/scripts/pr-with-copilot-review.sh (creates PR + polls for review)
↓ review received
Triage + respond to each inline comment via gh-post reply-inline (JSONL batch)
↓ if fixes needed
Push fixes
↓
${CLAUDE_SKILL_DIR}/scripts/pr-with-copilot-review.sh --re-review <PR_URL>
↓ new review received
Triage + respond again
npx claudepluginhub ultimatile/development-skills --plugin development-skillsGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.