Validate content against the latest Anthropic documentation
When invoked, your job is to take a body of content (a file, a passage, a code sample, or a list of claims) and check each factual assertion against the current Anthropic docs. You produce a structured report. You do NOT silently fix things; you surface findings so the user can decide.
Workflow
Identify what to validate.
- If the user pointed at a file or section, read it.
- If the user pasted a claim, treat the message as the input.
- Extract a list of discrete, factual, verifiable claims. Skip stylistic opinions and the user's own preferences.
Map each claim to the most likely doc page. Use the URL index below. If you are unsure, fetch https://code.claude.com/docs/llms.txt first to discover the index.
Fetch the doc page with a specific, narrow prompt. Use WebFetch and ask for the exact passage that confirms or refutes the claim. Quote verbatim. Do not paraphrase the docs.
Compare claim vs. doc. Classify each finding as one of:
- Confirmed: doc quote supports the claim.
- Refuted: doc quote contradicts the claim. Include the corrected statement.
- Stale / changed: doc indicates the API or behavior has changed (deprecated, renamed, replaced).
- Not documented: doc page does not address the claim. Note that this does NOT mean the claim is wrong, only unverifiable from official docs.
- Ambiguous: doc text is consistent with multiple readings; flag for human judgment.
Produce the report. Use the format in the Output section below.
Do not modify the original content unless the user asks. Validation is read-only by default. If they say "fix it", apply the corrections; otherwise just report.
Anthropic documentation URL index
Use these as your first stop. Only fall back to WebSearch if a topic isn't covered here.
Claude Code (the CLI)
| Topic |
URL |
| Doc index (truth source) |
https://code.claude.com/docs/llms.txt |
| CLAUDE.md, rules, auto memory |
https://code.claude.com/docs/en/memory |
| settings.json hierarchy, all settings keys |
https://code.claude.com/docs/en/settings |
| Hooks (events, JSON payload, exit codes) |
https://code.claude.com/docs/en/hooks |
| Skills (precedence, frontmatter, locations) |
https://code.claude.com/docs/en/skills |
| MCP servers (scopes, precedence) |
https://code.claude.com/docs/en/mcp |
| Permissions (allow/deny, sandbox) |
https://code.claude.com/docs/en/permissions |
| Plugins |
https://code.claude.com/docs/en/plugins |
| CLI flags, env vars |
https://code.claude.com/docs/en/cli-reference |
| Subagents |
https://code.claude.com/docs/en/sub-agents |
| Hooks guide (worked examples) |
https://code.claude.com/docs/en/hooks-guide |
| Context window |
https://code.claude.com/docs/en/context-window |
| Debug a config |
https://code.claude.com/docs/en/debug-your-config |
| Features overview |
https://code.claude.com/docs/en/features-overview |
Anthropic API / SDK
| Topic |
URL |
| API docs root |
https://docs.anthropic.com |
| Models (capabilities, IDs, deprecation) |
https://docs.anthropic.com/en/docs/about-claude/models |
| Messages API |
https://docs.anthropic.com/en/api/messages |
| Tool use |
https://docs.anthropic.com/en/docs/build-with-claude/tool-use |
| Prompt caching |
https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching |
| Extended thinking |
https://docs.anthropic.com/en/docs/build-with-claude/extended-thinking |
| Files API |
https://docs.anthropic.com/en/docs/build-with-claude/files |
| Batch API |
https://docs.anthropic.com/en/api/creating-message-batches |
| Citations |
https://docs.anthropic.com/en/docs/build-with-claude/citations |
| Agent SDK (Python) |
https://docs.anthropic.com/en/api/agent-sdk/python |
| Agent SDK (TypeScript) |
https://docs.anthropic.com/en/api/agent-sdk/typescript |
GitHub repos (for known issues, feature requests)
- Claude Code:
https://github.com/anthropics/claude-code/issues
- Anthropic SDKs: search via
gh CLI when needed
How to call WebFetch correctly
Write a prompt that asks for specific verifiable facts, not summary. Bad prompts produce paraphrased answers that drift. Good prompts ask for quotes.
Good prompt to WebFetch:
"Find documentation on claudeMdExcludes. Quote VERBATIM the section that explains: (a) what JSON file it lives in, (b) whether patterns are matched against absolute or relative paths, (c) whether the setting works on managed-policy CLAUDE.md files."
Bad prompt:
"Tell me about claudeMdExcludes."
Output format
Produce a markdown report. One row per claim. Group by status.
# Validation report: <subject>
Validated against: <list of URLs fetched, with timestamps>
## Summary
- N confirmed
- N refuted
- N stale/changed
- N not documented
- N ambiguous
## Refuted (HIGHEST PRIORITY)
### Claim: "<exact quote of the claim from the content>"
**Status:** Refuted
**Doc text:** > "<verbatim quote from doc>"
**Source:** <URL>
**Correction:** <one-line statement of what the claim should say>
## Stale / changed
(same format as Refuted)
## Confirmed
### "<claim>"
**Source:** <URL>
**Doc text:** > "<verbatim quote>"
## Not documented
(list claims with brief note on what was checked)
## Ambiguous
(list claims with both readings and a recommendation for which to use)
## Recommended fixes
<numbered list of concrete textual changes the user could apply>
Things to watch out for
- Doc pages change. Always quote verbatim with a timestamp. A correct answer from last week may be stale today.
- Feature requests vs shipped features. Some terms (e.g., env vars, settings keys) appear in GitHub issues as requests. Verify against the docs, not just search snippets.
- Version-specific behavior. If a doc says "requires Claude Code v2.x.y or later", flag that the claim may only apply to recent installs.
- API vs CLI confusion.
https://docs.anthropic.com covers the API/SDK. https://code.claude.com covers the CLI. They are different products; don't validate CLI claims against API docs.
- Path matching is the #1 source of subtle bugs. Different settings use different conventions:
claudeMdExcludes matches absolute paths; .claude/rules/ paths: field matches relative paths. Always check.
- Frontmatter keys are case-sensitive and exact. YAML formatting matters.
Scope limits
This skill validates against PUBLIC Anthropic documentation only. It does not validate:
- Third-party blog posts, even from well-known authors
- ClaudeLog, eesel, or community wikis (use as discovery aids, not source of truth)
- GitHub issue comments that are not from Anthropic staff
- Internal Anthropic docs you do not have access to
If the only available source is a community blog, say so explicitly in the report and downgrade the confidence rating.
1---2name: anthropic-doc-validator3description: Validate claims, documentation, code examples, or generated content about Claude Code, the Anthropic API, or Anthropic SDKs against the latest official documentation. Use when the user asks to "validate against docs", "check against anthropic docs", "verify this is current", "is this still accurate", "audit content against documentation", or similar. Also use proactively after generating slides, READMEs, blog posts, training materials, or runbooks that make specific factual claims about Anthropic products, so that those claims do not drift from the source of truth.4---56# Validate content against the latest Anthropic documentation78When invoked, your job is to take a body of content (a file, a passage, a code sample, or a list of claims) and check each factual assertion against the current Anthropic docs. You produce a structured report. You do NOT silently fix things; you surface findings so the user can decide.910## Workflow11121. **Identify what to validate.**13 - If the user pointed at a file or section, read it.14 - If the user pasted a claim, treat the message as the input.15 - Extract a list of discrete, factual, verifiable claims. Skip stylistic opinions and the user's own preferences.16172. **Map each claim to the most likely doc page.** Use the URL index below. If you are unsure, fetch `https://code.claude.com/docs/llms.txt` first to discover the index.18193. **Fetch the doc page with a specific, narrow prompt.** Use `WebFetch` and ask for the exact passage that confirms or refutes the claim. Quote verbatim. Do not paraphrase the docs.20214. **Compare claim vs. doc.** Classify each finding as one of:22 - **Confirmed**: doc quote supports the claim.23 - **Refuted**: doc quote contradicts the claim. Include the corrected statement.24 - **Stale / changed**: doc indicates the API or behavior has changed (deprecated, renamed, replaced).25 - **Not documented**: doc page does not address the claim. Note that this does NOT mean the claim is wrong, only unverifiable from official docs.26 - **Ambiguous**: doc text is consistent with multiple readings; flag for human judgment.27285. **Produce the report.** Use the format in the Output section below.29306. **Do not modify the original content unless the user asks.** Validation is read-only by default. If they say "fix it", apply the corrections; otherwise just report.3132## Anthropic documentation URL index3334Use these as your first stop. Only fall back to `WebSearch` if a topic isn't covered here.3536### Claude Code (the CLI)3738| Topic | URL |39|---|---|40| Doc index (truth source) | `https://code.claude.com/docs/llms.txt` |41| CLAUDE.md, rules, auto memory | `https://code.claude.com/docs/en/memory` |42| settings.json hierarchy, all settings keys | `https://code.claude.com/docs/en/settings` |43| Hooks (events, JSON payload, exit codes) | `https://code.claude.com/docs/en/hooks` |44| Skills (precedence, frontmatter, locations) | `https://code.claude.com/docs/en/skills` |45| MCP servers (scopes, precedence) | `https://code.claude.com/docs/en/mcp` |46| Permissions (allow/deny, sandbox) | `https://code.claude.com/docs/en/permissions` |47| Plugins | `https://code.claude.com/docs/en/plugins` |48| CLI flags, env vars | `https://code.claude.com/docs/en/cli-reference` |49| Subagents | `https://code.claude.com/docs/en/sub-agents` |50| Hooks guide (worked examples) | `https://code.claude.com/docs/en/hooks-guide` |51| Context window | `https://code.claude.com/docs/en/context-window` |52| Debug a config | `https://code.claude.com/docs/en/debug-your-config` |53| Features overview | `https://code.claude.com/docs/en/features-overview` |5455### Anthropic API / SDK5657| Topic | URL |58|---|---|59| API docs root | `https://docs.anthropic.com` |60| Models (capabilities, IDs, deprecation) | `https://docs.anthropic.com/en/docs/about-claude/models` |61| Messages API | `https://docs.anthropic.com/en/api/messages` |62| Tool use | `https://docs.anthropic.com/en/docs/build-with-claude/tool-use` |63| Prompt caching | `https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching` |64| Extended thinking | `https://docs.anthropic.com/en/docs/build-with-claude/extended-thinking` |65| Files API | `https://docs.anthropic.com/en/docs/build-with-claude/files` |66| Batch API | `https://docs.anthropic.com/en/api/creating-message-batches` |67| Citations | `https://docs.anthropic.com/en/docs/build-with-claude/citations` |68| Agent SDK (Python) | `https://docs.anthropic.com/en/api/agent-sdk/python` |69| Agent SDK (TypeScript) | `https://docs.anthropic.com/en/api/agent-sdk/typescript` |7071### GitHub repos (for known issues, feature requests)7273- Claude Code: `https://github.com/anthropics/claude-code/issues`74- Anthropic SDKs: search via `gh` CLI when needed7576## How to call WebFetch correctly7778Write a prompt that asks for specific verifiable facts, not summary. Bad prompts produce paraphrased answers that drift. Good prompts ask for quotes.7980**Good prompt to WebFetch:**81> "Find documentation on `claudeMdExcludes`. Quote VERBATIM the section that explains: (a) what JSON file it lives in, (b) whether patterns are matched against absolute or relative paths, (c) whether the setting works on managed-policy CLAUDE.md files."8283**Bad prompt:**84> "Tell me about claudeMdExcludes."8586## Output format8788Produce a markdown report. One row per claim. Group by status.8990```markdown91# Validation report: <subject>9293Validated against: <list of URLs fetched, with timestamps>9495## Summary96- N confirmed97- N refuted98- N stale/changed99- N not documented100- N ambiguous101102## Refuted (HIGHEST PRIORITY)103104### Claim: "<exact quote of the claim from the content>"105**Status:** Refuted106**Doc text:** > "<verbatim quote from doc>"107**Source:** <URL>108**Correction:** <one-line statement of what the claim should say>109110## Stale / changed111112(same format as Refuted)113114## Confirmed115116### "<claim>"117**Source:** <URL>118**Doc text:** > "<verbatim quote>"119120## Not documented121122(list claims with brief note on what was checked)123124## Ambiguous125126(list claims with both readings and a recommendation for which to use)127128## Recommended fixes129130<numbered list of concrete textual changes the user could apply>131```132133## Things to watch out for134135- **Doc pages change.** Always quote verbatim with a timestamp. A correct answer from last week may be stale today.136- **Feature requests vs shipped features.** Some terms (e.g., env vars, settings keys) appear in GitHub issues as requests. Verify against the docs, not just search snippets.137- **Version-specific behavior.** If a doc says "requires Claude Code v2.x.y or later", flag that the claim may only apply to recent installs.138- **API vs CLI confusion.** `https://docs.anthropic.com` covers the API/SDK. `https://code.claude.com` covers the CLI. They are different products; don't validate CLI claims against API docs.139- **Path matching is the #1 source of subtle bugs.** Different settings use different conventions: `claudeMdExcludes` matches absolute paths; `.claude/rules/` `paths:` field matches relative paths. Always check.140- **Frontmatter keys are case-sensitive and exact.** YAML formatting matters.141142## Scope limits143144This skill validates against PUBLIC Anthropic documentation only. It does not validate:145- Third-party blog posts, even from well-known authors146- ClaudeLog, eesel, or community wikis (use as discovery aids, not source of truth)147- GitHub issue comments that are not from Anthropic staff148- Internal Anthropic docs you do not have access to149150If the only available source is a community blog, say so explicitly in the report and downgrade the confidence rating.