pr-review
Skill18 starsChanged 33 days agoMITView on GitHub
Multi-dimensional review of a PR or feature branch in the microsoft/WinAppVSCE repo. Activate when a contributor asks to "review my PR", "review my changes", "vet my branch before pushing", "do a full review", "PR review", "review this feature", or similar. Fans out parallel sub-agents covering security, correctness and tests, extension UX, alternative solutions, necessity and simplicity, shipping surfaces (docs/package.json contributions/VSIX packaging), and an independent different-model cross-check, then validates critical/high findings by building, packaging, and driving the extension the way a user would. Applies a mandatory gut check that drops findings which are true-but-not-necessary, so the review does not drive scope creep. Reports a compact, human-first decision and finding list to stdout. Does NOT apply fixes unless explicitly asked.
195 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- static-web-server/static-web-servertheir own version, first seen Nov 9, 2026
- zerx-lab/FluxDowntheir own version, first seen Nov 9, 2026
- civitai/civitaitheir own version, first seen Nov 9, 2026
- harshitsinghbhandari/domain-expansiontheir own version, first seen Nov 8, 2026
- Azure/azure-sdk-toolstheir own version, first seen Nov 8, 2026
- databricks/clitheir own version, first seen Nov 8, 2026
Used with
Projects with it also use oss-pr, pr-automation and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
CES-LtdSkilloss-pr
Use when creating a pull request, after committing changes, or when user invokes /oss-pr. Covers branch management, quality checks, commit, push, and PR creation.
Also in 3 projects that use this
CES-LtdSkillpr-automation
PR Automation Orchestrator: poll open PRs, check CI, run review, fix, and merge eligible PRs. Use when: (1) Invoked by daemon via scripts/pr-automation.sh, (2) User says "/pr-automation".
Also in 3 projects that use this
jtenniswoodSkillexpert-reset
Reimagine this repository from first principles using the current product and user experience as the target. Use when the user says "/expert-reset", asks how the project should be rebuilt if starting again, wants bold architecture or component-structure recommendations, or wants a research-only reset plan unconstrained by current implementation details.
Also in 3 projects that use this
jtenniswoodSkillupdates
Summarize user-facing project updates from the last 7 days, ordered by importance and written as one-sentence "Feature: description" entries. Use when the user says "/updates", asks what changed recently, or wants a concise list of recent features, device support, fixes that users will notice, or other product value.
Also in 3 projects that use this
openchamberSkillclack-cli-patterns
Use when creating or modifying OpenChamber CLI commands, prompts, terminal output, non-TTY behavior, `--quiet`, or `--json` behavior.
Also in 3 projects that use this
openchamberSkilldrag-to-reorder
Use when implementing or modifying OpenChamber sortable or drag-to-reorder behavior, especially `@dnd-kit`, touch/mobile interactions, variable-width items, or wrapping layouts.
Also in 3 projects that use this
- +6 more from openchamber
Other versions195 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- microsoft/winappCli★ 1.4k87% same
Wrote their own version · 194
- Significant-Gravitas/AutoGPT★ 188ksame name
- pytorch/pytorch★ 105ksame name
- rtk-ai/rtk★ 86ksame name
- saadeghi/daisyui★ 43ksame name
- rustfs/rustfs★ 36ksame name
- dotnet/maui★ 23ksame name
- NVIDIA/Megatron-LM★ 18ksame name
- MiniMax-AI/skills★ 14ksame name
- btriapitsyn/openchamber★ 13ksame name
- openchamber/openchamber★ 13ksame name
184 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository4 other files it gives its agents.
- .github/skills/vsce-testing/AGENTS.mdAGENTS.md
- pr-lifecycleSkill
- spec-reviewSkill
- vsce-testingSkill
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 5 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 178 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 11
Do not activate for "review this function" or "is this line correct" — those are direct questions, not PR scope.
- Very specific: line 16
Default to the branch: git --no-pager diff origin/main...HEAD.
- Very specific: line 50
Necessity is conditional: run it when the diff adds user-facing surface (command, setting, launch.json field, editor tab, contribution …
- Distinctive: line 82
The most important step: Every reviewer returned things that are *defensible* — that is the trap.
- Distinctive: line 92
Delete it if the code works and it describes a tidier alternative.
- Distinctive: line 115
If the head comes from a fork or an author outside the repository's maintainers, ask the user before installing dependencies, building, …
- Very specific: line 123
Run it as a user would, not dev mode: Default: package the VSIX (.\scripts\build-vsce.ps1 -Package) and install it into an isolated VS Code …
- Very specific: line 141
Never mark something validated without real evidence.
- Very specific: line 195
If asked to post the review as a PR comment, open with > 🤖 AI-generated review (WinAppVSCE pr-review skill) — verify before acting.
- Distinctive: line 197
Never post silently, never drop the banner.
“Common” is measured: kept by at least 6 in 10 of the 178 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
You are the PR review orchestrator for microsoft/WinAppVSCE. Fan out
parallel reviewers, run the branch for real, and hand back a human-readable
decision with only the changes that actually matter.
Do not activate for "review this function" or "is this line correct" — those are direct questions, not PR scope.
1. Get the diff
Default to the branch: git --no-pager diff origin/main...HEAD. If the working
tree is dirty and the branch has no new commits, review the working tree
(git --no-pager diff HEAD) instead, and include untracked files via
git ls-files --others --exclude-standard — new files in a feature usually live
there. If both have substance, ask which the user wants. Honor an explicitly
named scope or base ref over any of this.
Fall back through origin/main → main → origin/HEAD for the base; if none
resolve, stop and ask.
Capture the file list (--stat) and the full unified diff. 0 files → say so
and stop. >50 files → warn and ask before proceeding.
Note whether this is a re-review: the user says so ("I addressed the findings", "another pass"), or an earlier report is in this conversation.
2. Fan out
Launch these in one response with the task tool, mode sync. Each prompt
must be self-contained: role line, the diff, which changed files fall in that
reviewer's area, then the full text of dimensions/_shared-contract.md and
dimensions/<name>.md. On a re-review, add: "already reviewed once — emit
critical/high only, and treat code added in response to earlier review comments
as re-openable, not settled design."
| Reviewer | File |
| security | dimensions/security.md |
| correctness & tests | dimensions/correctness-and-tests.md |
| extension-ux | dimensions/extension-ux.md |
| alternative-solution | dimensions/alternative-solution.md |
| ship-surfaces | dimensions/ship-surfaces.md |
| necessity & simplicity — conditional | dimensions/necessity-and-simplicity.md |
Necessity is conditional: run it when the diff adds user-facing surface
(command, setting, launch.json field, editor tab, contribution point), adds new
internal structure (module / class / abstraction / config knob), or this is
a re-review. Skip it for small fixes, refactors, perf, docs, tests, and CI on a
first review. spec-review owns scope before implementation; this pass reopens
it only when the implementation reveals unexpected cost, overengineering, or
review-driven creep.
Then, after those return, launch multi-model (dimensions/multi-model.md)
with a model override selecting the latest model from a different family than
yourself (GPT / Opus / Gemini). Pass it the diff and the real changed files,
not the consolidated findings — those anchor it into agreement. The specialists'
critical/high list is optional input it reads only after its own pass.
Tell every sub-agent: if a tool call is blocked, keep going with what you have and still return findings. If one returns nothing or dies, re-run that one hardened; record the failure internally only if the retry also fails.
3. Consolidate
Dedupe (same file, overlapping lines, same root cause — keep the higher severity, append the other domain internally). Track IDs, severity, confidence, model, and domain only while consolidating; do not expose bookkeeping in the final report. Sort by severity, then user impact. Merge overlapping additive fixes: if several reviewers each want a new guard or helper in the same area, that is one recommendation, not three. You are the only one who sees the total.
On a re-review, drop medium and low rather than carrying deferred polish into the final report.
4. The gut check
The most important step. Every reviewer returned things that are defensible — that is the trap. A list of nine defensible findings reads to the author as nine required changes, and the PR grows to satisfy it.
Go through every surviving finding and ask:
Would a busy maintainer, looking at a PR that is otherwise ready to ship, genuinely want this changed — or is this merely a true statement about the code?
Delete it if the code works and it describes a tidier alternative; if the fix costs more complexity than the problem costs users; if it guards against something that cannot happen here; if it is a "for completeness" item with no user-visible effect; or if you cannot finish the sentence "a user doing X will hit Y."
Also delete or downgrade it if you cannot show the smallest concrete command, input, workspace, or code path and explain it to a junior developer with no prior conversation context.
Never cut security, data loss (including a corrupted AppxManifest.xml),
crashes, wrong output, or a broken VSIX install — this removes polish and
speculation, not defects.
If more than about 6 findings survive on a normal PR, go again. Cutting a real-but-minor finding is cheap; padding the list is expensive, because that is how simple things get complicated. Record the kept count internally.
5. Validate for real
Static review misses what only shows up at runtime. Confirm or drop every critical/high finding with real evidence, and record what you could not do.
If the head comes from a fork or an author outside the repository's maintainers, ask the user before installing dependencies, building, running tests, or installing the VSIX — those steps execute the PR's code with your privileges. Without approval, keep the review static.
- Build (
.\scripts\build-vsce.ps1, or targetednpm run compile-tsc,npm run lint,npm run test:unit). A build, type-check, or lint failure is itself critical. - Run it as a user would, not dev mode. Default: package the VSIX
(
.\scripts\build-vsce.ps1 -Package) and install it into an isolated VS Code using the vsce-testing harness. An F5 Extension Development Host runs the esbuild bundle fromdist/with the whole repo on disk, so it hides.vscodeignore, bundledbin/CLI, and syncedschemas/bugs. Escalate only when the change needs it — manifest-editor andwinapp.newUI changes validate via the Playwright suite (npm run test:e2e); release/packaging changes validate the packaged VSIX contents. - Exercise the changed commands through the vsce-testing driver queue against a throwaway app in a temp dir. For webview, quick-pick, and debugger changes, drive the real VS Code UI — test fakes mask real behavior.
- Try the security red-team attempt the security reviewer described.
- Mark each finding
validated(reproduced — add the runtime evidence), drop it (refuted — record why internally), or leave itstatic-onlyand state exactly what you'd need (cert, admin elevation, debugger extension, ARM64 hardware, sample app).
Never mark something validated without real evidence.
6. Report
Print this to stdout. No file output, no PR comment, and no fixes unless explicitly asked. State each finding once.
# PR Review — <head> vs <base>
## Decision
<merge | changes required | blocked> — <one or two plain sentences explaining why>
## Must fix
### <plain finding title>
- **What is wrong:** <the defect>
- **Show me:** <smallest command/input/code path; input -> actual -> expected>
- **Why it matters:** <concrete consequence>
- **Smallest fix:** <least-complex repair>
- **Location:** `<path>:<line>`
<Repeat only for critical/high findings, or write "None — mergeable as-is.">
## Non-blocking
### <plain finding title>
- **What is wrong:** <the improvement>
- **Show me:** <smallest concrete example>
- **Why it matters:** <bounded consequence>
- **Smallest fix:** <least-complex repair>
- **Location:** `<path>:<line>`
<Repeat only for medium/low findings, or write "None.">
## What was exercised
- `<build/test/command>` — <observed result>
- Not exercised: <specific path> — <why, and how that affects confidence or action>Decision is the stop signal. Must fix is critical/high only; Non-blocking
is explicitly optional work. Paths support the explanation instead of replacing
the title. Keep coverage, domain, model, confidence, and validation bookkeeping
out of the report unless one changes the decision or tells the author what still
needs proof. Zero findings is a great result.
If asked to fix
Fix critical and high only, then stop and ask before touching medium/low — mechanically applying every finding is exactly how a review loop over-engineers a PR. Apply the smallest version of each fix; if a finding offered a subtractive option, take it. Put authorized fixes into the existing PR by default, preserving collaborator changes; use a separate fix PR only when the user asks. For publishing and readiness tracking, use pr-lifecycle. A review-only request still does not authorize edits, pushes, PR comments, or label changes.
If asked to post the review as a PR comment, open with
> 🤖 AI-generated review (WinAppVSCE pr-review skill) — verify before acting.
Never post silently, never drop the banner. Production comments and documentation
must not contain internal finding IDs, review-round numbers, model/domain coverage
tables, or review provenance.
Maintaining this skill
A dimension file contains only what a competent reviewer would not already know about this repo. If a line would be true of any TypeScript VS Code extension, delete it — generic advice dilutes the repo-specific knowledge that makes this skill worth running. Say each thing once: the shared contract owns the bar and the severity scale, so dimension files must not restate them.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

