Docs Guard

Checks docs against source: hallucinated symbols, broken samples, unverifiable claims

Tested · Works

Test report

Verdict
Tested · Works
Score
9.2/10
Tested
Jul 21, 2026
Environment
Claude Code 2.x (agent harness)
Upstream re-checked
Aug 10, 2026 · d0531b7

INSTALL: frontmatter is valid YAML with name + a long, well-scoped description; all six referenced files (references/verification.md, code-samples.md, docstrings.md, review-checklist.md, sources.md, agents/openai.yaml) returned HTTP 200 on raw fetch; no scripts, no curl|sh, no base64, no secret access, no injection text — the skill is pure markdown. TRIGGER, 5/5 correct: SHOULD fire — "Review this README against the code before I publish it, is anything in it wrong?", "The agent just rewrote our API reference and docstrings, check them for drift before I merge", "Write a README for this package" (the description names "write a README" and defines a live mode); SHOULD NOT fire — "Rewrite our homepage hero copy to be more persuasive" (marketing copy is in the explicit DO NOT USE list), "Review this PR's Python error handling" (production code review, routed to clean-code-guard). OUTPUT: I wrote a 24-line retry.py plus a deliberately drifted README, produced a baseline review with no skill loaded (8 findings, prose list, no line refs), then a skill-following review-mode pass; the skill version found 11 findings including three the baseline missed (no failure-path docs so RetryError is never mentioned, no version/compat policy, the sample's undefined `fetch` breaking self-containment), cited file:line on both doc and code sides, and — following verification.md's "prefer executable checks" — I actually ran the sample and got `TypeError: retry() got an unexpected keyword argument 'max_retries'` and confirmed `e.__cause__ is None`, turning two soft assertions into hard evidence. Cost is length (~3x the baseline) and a self-assessed "23 claims checked" tally; the core drift findings overlapped heavily, so the gain is rigor and evidence rather than a new class of catch. DOCS: README's per-skill claims (progressive-disclosure references, @param matching, "blazingly fast leaves the building") all map to real rules in the body — Rule 7 literally lists that phrase and docstrings.md covers tag accuracy; research figures are cited with URLs in sources.md, which I did not open.

Scored on four weighted criteria — install, triggering, output vs. baseline, docs. How scoring works

  • Installs cleanly 5/5
  • Triggers reliably 5/5
  • Output vs. baseline 8/10
  • Docs & honesty 5/5

What Docs Guard does

Docs Guard is a review pass for developer documentation — READMEs, API references, docstrings, PHPDoc/JSDoc, changelogs, tutorials. It turns a document into a list of claims and verifies each symbol, signature, flag, endpoint, config key, and code sample against the actual source, then reports findings as Claim / Reality / Fix with file:line evidence and a publish verdict. Triggers when you ask to review, audit, or fact-check docs, when an agent has just written or edited documentation, or before publishing a README or API reference.

How to install Docs Guard

npx skills add amElnagdy/guard-skills --skill docs-guard        # add --global for a global install, --agent claude-code to pin the agent
# manual alternative:
git clone https://github.com/amElnagdy/guard-skills /tmp/guard-skills
mkdir -p ~/.claude/skills
cp -r /tmp/guard-skills/skills/docs-guard ~/.claude/skills/docs-guard
# then: "Use docs-guard on this README before we ship it."

Skills live in ~/.claude/skills/ (global) or .claude/skills/ (per-project). Restart Claude Code after installing.

Commands — how to trigger Docs Guard

  • /docs-guard Checks docs against source: hallucinated symbols, broken samples, unverifiable claims

It also activates on plain-language prompts like these:

  • Is this documentation accurate to the code
  • Review the docs before I publish this update
  • Check this README for stale information

Frequently asked questions

Is the Docs Guard skill free?
Yes. The skill itself is free from amElnagdy/guard-skills. SkillProof publishes the install command and an independent test verdict at no cost.
Does Docs Guard work with Claude Code?
We tested it with Claude Code 2.x (agent harness) on Jul 21, 2026. Verdict: Tested · Works. INSTALL: frontmatter is valid YAML with name + a long, well-scoped description; all six referenced files (references/verification.md, code-samples.md, docstrings.md, review-checklist.md, sources.md, agents/openai.yaml) returned HTTP 200 on raw fetch; no scripts, no curl|sh, no base64, no secret access, no injection text — the skill is pure markdown. TRIGGER, 5/5 correct: SHOULD fire — "Review this README against the code before I publish it, is anything in it wrong?", "The agent just rewrote our API reference and docstrings, check them for drift before I merge", "Write a README for this package" (the description names "write a README" and defines a live mode); SHOULD NOT fire — "Rewrite our homepage hero copy to be more persuasive" (marketing copy is in the explicit DO NOT USE list), "Review this PR's Python error handling" (production code review, routed to clean-code-guard). OUTPUT: I wrote a 24-line retry.py plus a deliberately drifted README, produced a baseline review with no skill loaded (8 findings, prose list, no line refs), then a skill-following review-mode pass; the skill version found 11 findings including three the baseline missed (no failure-path docs so RetryError is never mentioned, no version/compat policy, the sample's undefined `fetch` breaking self-containment), cited file:line on both doc and code sides, and — following verification.md's "prefer executable checks" — I actually ran the sample and got `TypeError: retry() got an unexpected keyword argument 'max_retries'` and confirmed `e.__cause__ is None`, turning two soft assertions into hard evidence. Cost is length (~3x the baseline) and a self-assessed "23 claims checked" tally; the core drift findings overlapped heavily, so the gain is rigor and evidence rather than a new class of catch. DOCS: README's per-skill claims (progressive-disclosure references, @param matching, "blazingly fast leaves the building") all map to real rules in the body — Rule 7 literally lists that phrase and docstrings.md covers tag accuracy; research figures are cited with URLs in sources.md, which I did not open.
What is the Docs Guard SkillProof Score?
9.2/10 — installs cleanly 5/5, triggers reliably 5/5, output vs. baseline 8/10, docs & honesty 5/5.
How do I install Docs Guard?
Copy the install command from this page, run it in your terminal, and restart Claude Code. Skills live in ~/.claude/skills/ (global) or .claude/skills/ inside a project.
Can I use Docs Guard with Cursor, Copilot, Gemini CLI, Codex or other AI tools?
The SKILL.md format is native to Claude (Claude Code, Desktop, claude.ai). The instructions inside adapt to other assistants: Cursor rules, GitHub Copilot instructions, Windsurf rules, Custom GPTs, AGENTS.md for OpenAI Codex, and GEMINI.md for Google Gemini CLI — our conversion guides cover each, and the free converter on the tools page does the wrapping for you.