بنقرة واحدة
copilot-review
Create a GitHub PR with Copilot as reviewer and poll until the review arrives.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Create a GitHub PR with Copilot as reviewer and poll until the review arrives.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Single source of truth for universal code-quality items. Definitions live in items/<slug>.md; audit and preflight skills reference items by slug.
Full review pipeline from local changes through PR, CodeRabbit review, postmortem elevation, and umbrella drift join. Pauses at the user-controlled merge gate between Phase 4a and 4b.
Full review pipeline from local changes through PR, Copilot review, postmortem elevation, and umbrella drift join. Pauses at the user-controlled merge gate between Phase 4a and 4b.
Preflight sweep of quality-list items before or during implementation, framed as 'what to set up so done-check passes at the end'. Dual of done-check.
Create a GitHub PR and poll until the auto-triggered CodeRabbit review arrives.
Investigate a GitHub issue or free-text task with empirical (subagent probes) and derivational (in-context deduction) hypotheses, producing a vetted implementation plan with Inconclusive / Deferred items. Accepts an issue number or task text.
| name | copilot-review |
| description | Create a GitHub PR with Copilot as reviewer and poll until the review arrives. |
| allowed-tools | Bash(*/copilot-review/scripts/pr-with-copilot-review.sh:*), Bash(*/copilot-review/scripts/list-pr-threads.sh:*) |
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:
finding-triage SSOT dispositions — typically actionable, false-positive (with reasoning), or uncertain-validity; a real finding whose fix is non-local is opens-a-question → re-enter researchEach 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