pr-review
Verify the technical accuracy of a vscode-docs pull request against the VS Code source code in microsoft/vscode and microsoft/vscode-copilot-chat. Use when…
npx skills add https://github.com/microsoft/vscode-docs --skill pr-reviewPR Technical Accuracy Review
Review a vscode-docs pull request and verify every factual claim about VS Code behavior against the source code in microsoft/vscode and microsoft/vscode-copilot-chat. Produce an actionable list of findings the author can address before merging.
This skill checks technical accuracy only. It does not enforce writing style, frontmatter, or release-notes structure — use the release-note-writer or frontmatter-description skills for those.
When to Use
- Reviewing a vscode-docs PR that documents a new or updated VS Code or Copilot feature.
- Auditing existing docs for drift after a feature has changed.
- Asked to "fact-check", "verify", or "validate" a docs change against the product.
- Before merging a PR that touches
docs/,api/,remote/, or release-notes content tied to a specific behavior.
Do not use this skill for pure copy-edits, redirects, image swaps, or other changes that make no factual claims.
Repos to Check
| Area being documented | Primary source repo(s) |
|---|---|
| Core editor, workbench, debug, terminal, tasks, settings, commands, keybindings | microsoft/vscode |
| Copilot Chat, inline chat, agent mode, chat tools, chat participants, MCP integration in chat | microsoft/vscode-copilot-chat |
Extension API, contribution points, package.json schema | microsoft/vscode (under src/vs/workbench/api/, src/vscode-dts/, and extensions/) |
| Enterprise policies | microsoft/vscode (policy definitions) — note that enterprise/policies.md is generated; verify against source, not the generated file |
Use the gh CLI for all GitHub interactions (see user memory gh-cli-powershell.md for PowerShell-specific patterns).
Procedure
1. Identify the PR and its diff
- If a PR number was given, run
gh pr view <number> --json number,title,headRefName,baseRefName,files,bodyto get metadata and the file list. - If no argument was given, run
gh pr view --json ...to use the PR for the current branch. If there is no associated PR, fall back togit diff origin/main...HEAD. - Get the actual changed lines with
gh pr diff <number>(orgit difffor a branch). - Skip files whose changes are purely cosmetic (typo fixes, image renames, redirect entries, frontmatter-only edits).
2. Extract verifiable claims
Walk the diff and build a list of every claim that can be checked against source code. Include line numbers from the new file content. Categories to look for:
| Category | Examples |
|---|---|
| Setting | editor.fontSize, chat.agent.enabled, default values, allowed enum values, deprecation status |
| Command | Command IDs (workbench.action.*), command palette titles, the action they perform |
| Keybinding | Default key bindings, when clauses, platform-specific overrides |
| Menu / UI label | Menu item text, button labels, view titles, walkthrough step titles |
| API | Names, signatures, and shapes in vscode.d.ts / vscode.proposed.*.d.ts |
| Contribution point | package.json schema entries (contributes.*), required fields |
| Chat tool / participant | Tool names, participant IDs, tool input/output schemas, agent mode availability |
| MCP | Server config schema, supported transports, capability flags |
| Version availability | "Available since 1.X" / "New in 1.X" claims |
| Default behavior | What happens out-of-the-box, what is on/off by default |
| Policy | Policy names, supported values, scope |
Treat anchor-style references (e.g., setting(chat.agent.enabled), command:workbench.action.X) as claims to verify.
3. Verify each claim
For every claim, locate the source of truth and compare. Prefer one targeted lookup per claim — do not download full files when a search will do.
Search the source repos (parallelize independent lookups):
gh search code --repo microsoft/vscode '"<exact-string>"'for setting IDs, command IDs, contribution keys.gh search code --repo microsoft/vscode-copilot-chat '"<exact-string>"'for chat tool names, participant IDs, agent-mode flags.gh api "search/code?q=<query>+repo:microsoft/vscode"when thegh searchCLI quotes the query in a way that breaks qualifiers (see user memorygh-cli-powershell.md).gh api repos/microsoft/vscode/contents/<path>?ref=mainto read a specific file.
Where things live (common starting points):
- Settings — search for
'<setting.id>'nearregisterConfigurationcalls; default values are in thedefault:field of the schema. - Commands — search for
CommandsRegistry.registerCommandorregisterAction2with the matchingid. - Keybindings — search for
KeybindingsRegistry.registerKeybindingRuleor look insrc/vs/workbench/browser/parts/editor/...and feature folders. - Extension API —
src/vscode-dts/vscode.d.ts(stable) andsrc/vscode-dts/vscode.proposed.*.d.ts(proposed). - Chat tools — search
microsoft/vscode-copilot-chatfordisplayName,toolReferenceName, or the tool ID string. - Contribution points —
extensions/<ext>/package.jsonand the schema insrc/vs/workbench/api/common/extHost*.ts.
Version availability — when a doc claims "since 1.X":
gh api repos/microsoft/vscode/contents/<file>?ref=release/1.Xto see if the symbol existed in that branch, orgh search commits --repo microsoft/vscode '<symbol>'to find when it was introduced.
If a claim cannot be verified after a reasonable search, mark it Unverified rather than failing it — the author may have access to context the source does not expose.
4. Categorize each finding
| Severity | Use when |
|---|---|
| Error | The doc contradicts the source code (wrong setting name, wrong default, wrong command ID, removed API, wrong key binding). |
| Warning | The claim is partially correct but misleading (default changed in a recent release, behavior is platform-specific and the doc does not say so, feature is behind a setting the doc does not mention). |
| Suggestion | Optional clarification — link to the source, add a "since 1.X" note, mention a related setting. |
| Unverified | Could not locate the source of truth; ask the author to confirm. |
5. Produce the findings list
Output a Markdown report with this structure:
## PR Accuracy Review: #<number> — <title>
**Files reviewed:** <count>
**Claims checked:** <count>
**Result:** <Pass | Pass with warnings | Needs changes>
### Errors
* **`<file>`:L<line>** (`<category>`) — <one-line description>
* Doc says: `<quoted text>`
* Source: `<repo>/<path>#L<line>` — <what the source actually says>
* Fix: <specific suggested correction>
### Warnings
* ...
### Suggestions
* ...
### Unverified
* **`<file>`:L<line>** — <claim>. Searched <queries tried>. Please confirm.
Rules for the report:
- Use workspace-relative paths and 1-based line numbers for vscode-docs files, formatted as Markdown links per the
fileLinkificationrules. - For source-code citations, include the repo, file path, and (when known) line or commit. A
gh-friendly URL is fine:https://github.com/microsoft/vscode/blob/main/<path>#L<line>. - Quote the doc text exactly so the author can search for it.
- Keep each finding to one issue — split combined problems into separate items.
- If everything checks out, say so explicitly and skip the empty sections.
6. Summary
End with:
- Counts by severity.
- An overall verdict: Pass, Pass with warnings, or Needs changes (any Errors → Needs changes).
- A reminder that this review covers technical accuracy only, and to run style/frontmatter skills separately if needed.
Notes
- Do not push commits or post review comments on the PR unless the user explicitly asks. This skill produces a report for the user to act on.
- Do not edit
enterprise/policies.md— it is generated; flag policy issues againstenterprise/policies-template.mdand the source policy definitions instead. - When the doc references screenshots or videos, do not attempt to verify their contents — only verify any captions, labels, or alt text that make factual claims.
- Prefer
mainas the source-of-truth ref unless the PR explicitly documents behavior on a release branch or Insiders-only feature, in which case checkrelease/1.Xor recent commits accordingly.