pr-review
$
npx mdskill add microsoft/vscode-docs/pr-reviewVerify VS Code documentation facts against source code.
- Detects mismatches in settings, commands, and API shapes.
- Queries microsoft/vscode and microsoft/vscode-copilot-chat repositories.
- Generates actionable findings for factual corrections.
- Outputs a clear list of errors for the PR author.
SKILL.md
.github/skills/pr-reviewView on GitHub ↗
--- name: pr-review description: '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 reviewing a docs PR for factual correctness — setting names, command IDs, default values, API shapes, keybindings, versioned availability, and described behavior.' argument-hint: '<PR number or branch> (defaults to the current PR / branch)' --- # PR 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,body` to 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 to `git diff origin/main...HEAD`. * Get the actual changed lines with `gh pr diff <number>` (or `git diff` for 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 the `gh search` CLI quotes the query in a way that breaks qualifiers (see user memory `gh-cli-powershell.md`). * `gh api repos/microsoft/vscode/contents/<path>?ref=main` to read a specific file. **Where things live (common starting points):** * Settings — search for `'<setting.id>'` near `registerConfiguration` calls; default values are in the `default:` field of the schema. * Commands — search for `CommandsRegistry.registerCommand` or `registerAction2` with the matching `id`. * Keybindings — search for `KeybindingsRegistry.registerKeybindingRule` or look in `src/vs/workbench/browser/parts/editor/...` and feature folders. * Extension API — `src/vscode-dts/vscode.d.ts` (stable) and `src/vscode-dts/vscode.proposed.*.d.ts` (proposed). * Chat tools — search `microsoft/vscode-copilot-chat` for `displayName`, `toolReferenceName`, or the tool ID string. * Contribution points — `extensions/<ext>/package.json` and the schema in `src/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.X` to see if the symbol existed in that branch, or * `gh 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: ```markdown ## 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 `fileLinkification` rules. * 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 against `enterprise/policies-template.md` and 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 `main` as the source-of-truth ref unless the PR explicitly documents behavior on a release branch or Insiders-only feature, in which case check `release/1.X` or recent commits accordingly.
More from microsoft/vscode-docs
- content-redirect'Create and manage redirects in VS Code documentation when pages are moved, renamed, or deleted. Use when moving docs pages, renaming files, restructuring content, or when the user asks about redirects.'
- doc-writerPlan and write VS Code documentation for a new or updated feature. ALWAYS use this skill when the user asks to "document", "add docs for", "write docs for", or "update the docs for" a feature, or provides a GitHub issue/PR link to document — even if the change seems small. Proposes a documentation plan and asks clarifying questions first — it does not edit any files until you approve the plan.
- docs-product-alignmentAudit and update docs/copilot/ documentation to accurately reflect current VS Code AI capabilities. Use when: competitive analysis reveals gaps, product launches new features, docs use outdated framing, or keyword coverage needs strengthening for discoverability by users and AI agents. Produces a gap analysis plus targeted edits across affected files.
- frontmatter-description'Check and optimize MetaDescription frontmatter fields in VS Code documentation. Use when auditing, adding, or improving page descriptions for SEO and discoverability. Apply this when making content changes to markdown articles.'
- release-note-writerGuidelines for writing and reviewing Insiders and Stable release notes for Visual Studio Code.