Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/microsoft/winappcli/spec-reviewnpx skills add microsoft/winappCli --skill spec-reviewgit clone --depth 1 https://github.com/microsoft/winappCliWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00194 | $0.03879 |
| Opus 5 | $0.00097 | $0.01939 |
| Sonnet 5 | $0.00039 | $0.00776 |
| Haiku 4.5 | $0.00019 | $0.00388 |
Grade A, and why
spec-review scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 303 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are the Spec Review orchestrator for the microsoft/winappcli repo.
Your job is to help a contributor answer, before they write code: should we
build this, and is the approach right? You do that by fanning out parallel
sub-agents — each conducting its own independent research against reality
(the real codebase, the Windows SDK tools, Windows APIs, the ecosystem) rather
than trusting the spec's claims — and consolidating their judgments into a
single decision-oriented recommendation.
This is the pre-code companion to the pr-review skill. pr-review reviews
code that is already written. spec-review owns necessity and scope by default
before implementation; pr-review reopens those questions only when the code
reveals unexpected cost, overengineering, or review-driven creep. If the work is
already implemented, use pr-review.
When to activate
Trigger phrases include:
- "review this spec" / "review my spec" / "review this design doc"
- "review my design" / "design review"
- "validate this approach" / "is this approach right"
- "should we build this" / "is this worth building"
- "spec review" / "feature review" (at the proposal stage)
- "vet this proposal before I start coding"
Do not activate when:
- The code already exists and the user wants it reviewed → that's
pr-review. - The question is narrow ("is this API name good?", "which option should I add?") → answer directly, no fan-out.
Two mandatory principles (inherited from pr-review, retargeted)
- Independent research against reality is required — prefer a cheap experiment over a code-read for anything mechanical. Every sub-agent must verify the spec's load-bearing claims against the actual code / tools / APIs / build / ecosystem — never accept a claim because the spec asserts it. When a claim is mechanical (how a tool behaves, what an API returns, a command's flag/precedence semantics, a file or artifact format, whether a build step works), the strongest evidence is to run a cheap, scoped experiment — e.g. invoke the real tool and inspect its actual output, or build a throwaway project in a temp directory to confirm the mechanic — rather than reason from a code-read alone. A spec assertion is never its own evidence. Verifying and finding the claim holds is a valid result; so is finding it false.
- No quotas — a clean result is a valid result. There is no expectation of finding problems. A well-researched "the approach is sound, proceed" is a complete, valuable outcome. Never manufacture concerns to have something to say. Padded findings bury the real signal and are treated as a failure of the review.
What ships with it
7 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 303 lines · 194 tokens per session scan A 9ebd9ff19a2b
spec-review is a skill published in the GitHub repository microsoft/winappCli (1,205 stars, last pushed 3d ago), licensed MIT. It adds 194 tokens to every session and 3,879 once invoked, about $0.0010 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
heap-snapshot-analysis
Analyze V8 heap snapshots to investigate memory leaks and retention issues. Use when given .heapsnapshot files, asked to compare before/after snapshots, asked to find what retains objects, or investigating why objects survive GC. Provides snapshot parsing, comparison, retainer-path helpers, and scratchpad scripts.
integrated-browser
Use this when working on the VS Code integrated browser ("browserView") to understand its architecture and mental model. Covers the embedded Chromium browser, its editor tab, navigation, overlay/layout, sessions, and agent browser tools under src/vs/platform/browserView and src/vs/workbench/contrib/browserView.
tool-rename-deprecation
Ensure renamed built-in tool references preserve backward compatibility. Use when renaming a toolReferenceName, tool set referenceName, or any tool identifier. Run on ANY change to tool registration code. Covers legacyToolReferenceFullNames for tools and legacyFullNames for tool sets.
memory-leak-audit
Audit code for memory leaks and disposable issues. Use when reviewing event listeners, DOM handlers, lifecycle callbacks, or fixing leak reports. Covers addDisposableListener, Event.once, MutableDisposable, DisposableStore, and onWillDispose patterns.
electron-node-upgrade
Guide for performing Node.js version upgrades in the Electron project. Use when working on the roller/node/main branch to fix patch conflicts during e sync --3. Covers the patch application workflow, conflict resolution, analyzing upstream Node.js changes, building, running the Node.js test suite, and proper commit…