review-vcpkg-prs-today

작성자: microsoft

최근 30일 이내에 업데이트된 마이크로소프트/vcpkg의 오픈된 초안이 아닌 풀 리퀘스트를 검토합니다. 일괄 트라이지, PR별 검토 보고서, 그룹화된 인덱스 등이 요청될 때 사용합니다.

npx skills add https://github.com/microsoft/vcpkg --skill review-vcpkg-prs-today

Inputs

InputRequiredMeaning
investigation-rootNoPreferred directory for large temporary work such as detached worktrees, extracted archives, build trees, example builds, installs, caches, and other investigation artifacts. Final review deliverables are not investigation artifacts and must still be written under reviews/ in the caller's current directory. When omitted, infer a short same-drive investigations location if that is clear; otherwise ask the user. Do not use the Copilot session directory or an arbitrary long temp path.
review-depthNoOne of no-examples, examples, or examples-and-patches. Default to no-examples.

Example invocations

  • /review-vcpkg-prs-today investigation-root D:/vcpkg-prs
  • /review-vcpkg-prs-today review-depth examples
  • /review-vcpkg-prs-today investigation-root D:/vcpkg-prs and review-depth examples

Procedure

  1. Discover candidate PRs with the GitHub Search API or gh api, not by paging the generic pulls list. Filter to:
    • repo:microsoft/vcpkg
    • is:pr
    • is:open
    • draft:false
    • updated:>=<today minus 30 days>
  2. Prefer authenticated GitHub requests via gh or GITHUB_TOKEN, because unauthenticated API limits are usually too low for a full batch run.
  3. For each candidate PR, fetch the changed file list and identify touched ports from paths matching ports/<portname>/.
  4. Treat the competing-PR relationship as port-specific. Group PRs together only for the particular shared port or ports they both modify.
  5. Keep PRs that do not modify a port in a separate index section instead of mixing them into port-competition groups.
  6. Evaluate each candidate PR independently according to the rules in .github/skills/shared/review-vcpkg-pr-guide.md. Be sure each worker reads all of .github/skills/shared/review-vcpkg-pr-guide.md. Competing PRs that touch the same port are still reviewed as separate PRs; only group them in the final index.md.
  7. Write each per-PR report as you complete it. Write index.md last, after aggregating the final results from every reviewed PR directory and adding any port-specific competing-PR groups.

Parallel execution safety

  1. A worker that checks out a PR, uses gh pr checkout, edits files, or creates build trees must do so only inside its own isolated workspace, not in the calling repository.
  2. Never point multiple workers at the same writable repository path, even if they are reviewing different PRs.
  3. Use detached worktrees or equivalent detached-HEAD checkouts for workers so that review activity does not change the caller's branch state. When setting up a worker, copy vcpkg.exe (windows) or vcpkg (non-Windows) into the worker's isolated workspace. For example, after git worktree add D:\vcpkg2 origin/master, copy .\vcpkg.exe to D:\vcpkg2.
  4. Do not use the shared current working tree for concurrent PR reviews unless exactly one worker is active and the user explicitly allows it.
  5. If you need a clean baseline for multiple workers, create the isolated workspaces first and then launch the workers against those paths.

index.md content

index.md must include:

  1. Coverage summary, including how many PRs were reviewed, skipped, or failed.
  2. PRs grouped by recommended action as described in .github/skills/shared/review-vcpkg-pr-guide.md
    • approve
    • approve-with-notes
    • request-changes
    • unknown
  3. Competing PRs grouped by shared modified port.
  4. PRs with no touched ports/<portname>/ entries.
  5. PRs that failed to review, with a short reason instead of silently omitting them.

cleanup-worktrees.ps1 content

If temporary worktrees were created during the review process, write this script with one git worktree remove line per worktree. If this file is already present, append to it. Skip this file when no temporary worktrees were created.

Required output layout

Write all deliverables under reviews/ in the caller's current directory, not under investigation-root. Each worker reviews one PR and substitutes its number for {{PR_NUMBER}}. Find out what report.md is from .github/skills/shared/review-vcpkg-pr-guide.md

reviews/
├── index.md
├── cleanup-worktrees.ps1  (only when temporary worktrees were created)
├── pr-12345/
│   ├── report.md
│   └── patches/
│       └── *.patch
└── pr-12346/
    ├── report.md

Do not stop until reviews/index.md and reviews/pr-{{PR_NUMBER}}/report.md for each reviewed PR number exist and are complete. If temporary worktrees were created, also ensure reviews/cleanup-worktrees.ps1 exists and is complete.