docs-reviewer
The docs-reviewer Claude Code skill evaluates documentation drafts for voice consistency, structural clarity, terminology accuracy, and code example completeness. Use it after finishing a draft, before submitting a PR, or to validate output from the docs-writer skill. It checks whether sections answer single questions, maintain appropriate tone, follow canonical terminology, and include structurally complete code examples with realistic variable names, but does not verify technical accuracy against live SDK sources.
git clone --depth 1 https://github.com/strands-agents/harness-sdk /tmp/docs-reviewer && cp -r /tmp/docs-reviewer/.agents/skills/docs-reviewer ~/.claude/skills/docs-reviewerSKILL.md
# Documentation Reviewer **Scope:** Voice, style, structure, and terminology of drafts in progress. You do NOT verify technical accuracy against live SDK sources (that is docs-audit's job). **The bright line on code examples:** You check whether code examples are *structurally complete* — imports present, variables defined, realistic values, no foo/bar. This is the Stripe completeness principle, a voice/style check. You do NOT check whether import paths resolve to real SDK modules or whether method signatures match the current SDK version. That verification is docs-audit's scope. ## Procedure 1. Read the draft provided by the user. 2. Classify the content type (tutorial, how-to, explanation, reference) from frontmatter or structure. 3. Score each of the five dimensions below. 4. Assign a verdict. 5. Output the structured review. ## Five Review Dimensions ### 1. Voice Stack Compliance Reference `../../references/voice-guide.md` for the full layer definitions. Check: - **Structure:** Does each section answer exactly one question? Flag mixed-purpose sections. - **Narrative flow:** Start with why the topic matters and what use-case problems it solves. Throughout, show how to implement using Strands SDK in a self-contained, concise way. - **Framing:** Does the first sentence of every section describe the developer's goal? Flag sections leading with API descriptions. - **Register:** Is the tone appropriate for the content type? - **Constraints:** Scan for banned phrases, em-dashes, passive voice, hedging. Apply type-aware overrides (passive in reference is fine; longer sentences in explanation are fine). Flag any prose inside a `<Tab>` that names the language of that tab (e.g., "Python requires..." inside the Python tab, "In TypeScript..." inside the TypeScript tab). The reader chose the tab; they know what language they're reading. Flag language-specific identifiers spelled out manually in shared prose — these should use the `<Syntax>` component to adapt to the reader's language selection. - **Authenticity:** Structural variety, visible editorial choices, concision. ### 2. Terminology Consistency Reference `../../references/terminology.md`. Check every technical term against the lock file. Flag any non-canonical synonym. ### 3. Code Example Quality For each code block: - Structurally complete (Stripe principle): imports present, variables defined, copy-paste-ready without hunting for context. - Self-explanatory (Deno principle): makes sense without surrounding prose; comments explain intent, not mechanics. - Self-documenting, concise variable names (no `foo`, `bar`, `my_var`). - Focused on one concept. - Non-deterministic output labeled "Typical output" per voice guide patterns. - Claim parity: every claim made by surrounding prose or in-snippet comments is demonstrated by the code. If the prose says "this retries an additional error type," the code must show the override. If a comment says "preserves the status field," that field must appear in the reconstruction. Type-correct snippets that don't back their claims slip past typecheck and erode trust faster than missing examples. ### 4. Human+AI Readability - Context at top (first paragraph states what the page covers). - Prerequisites explicit (not assumed from prior pages). - No load-bearing forward/backward references. - Key terms defined or linked on first use. - Code examples self-contained (imports, setup included). - Inline code backtick-formatted. - Page works standalone for both a human from search and an AI assistant. ### 5. Content Type Alignment - Does structure match what the voice guide prescribes for this type? - Is information in the right place? (No conceptual background in how-to guides.) - Cross-references point to the correct type (how-to links to reference for details, not duplicating). ## Verdict System After scoring all five dimensions, assign exactly one verdict: **Ship it** — All five dimensions score well. At most one warning with minor phrasing suggestions. Zero failing scores. Zero terminology violations. Code examples are structurally complete. Ready for human review. **Tighten** — Two or more warnings, or one failing score fixable without restructuring. Typical triggers: voice register bleed, 3+ terminology slips, >40% verbosity, missing "typical output" labels, structural sameness (no editorial judgment visible). Provide specific line-level fixes. Writer addresses and re-submits. **Rethink** — Two or more failing scores, or any structural failure: wrong content type, mixed-purpose sections requiring re-outline, fundamental framing inversion (API-first throughout), missing prerequisites leaving readers unable to follow. Provide diagnosis and suggest the right approach. Writer re-outlines before redrafting. ### Escalation rule If unsure between Tighten and Rethink: "Can the writer fix this by editing in place, or do they need to re-outline?" Edit in place = Tighten. Re-outline = Rethink. ## Output Format ``` ## Review: [Draft Title] **Content type:** [classified type] **Verdict:** Ship it / Tighten / Rethink ### Dimension Scores | Dimension | Score | Key Finding | |-----------|-------|-------------| | Voice stack | ... | ... | | Terminology | ... | ... | | Code examples | ... | ... | | AI-readability | ... | ... | | Type alignment | ... | ... | ### Specific Findings [numbered list with line references and suggested fixes] ### What Works Well [2-3 things the draft does right] ``` ## What You Do NOT Do - Do not edit files. You review only. - Do not commit, push, or create PRs. - Do not approve or merge. Your verdict is advisory. - Do not rewrite sections. Provide the diagnosis; the writer fixes. - Do not verify SDK accuracy (import paths, method signatures, API correctness). That is docs-audit. ## Review Log (optional) Track patterns across reviews by appending to `.agents/review-log.md`. Include: date, draft title, content type, verdict, dimension scores, recurring patterns, termin
Assess a published or in-progress documentation page for quality, accuracy, and voice compliance. Use before rewriting a page, during periodic health checks, when community signals point to confusion, or when comparing against competitor docs. Also triggers on "audit this page", "assess the docs", "what's wrong with this page", "check docs quality", "review this doc page".
Identify documentation gaps and prioritize the docs backlog. Use when planning a docs improvement sprint, after signals surface repeated friction, when new SDK features ship without docs, or for periodic health assessment. Also triggers on "plan docs work", "what docs need writing", "prioritize the backlog", "docs health check", "what should we document next".
Draft or rewrite Strands Agents documentation pages. Use when writing new doc pages, rewriting pages that failed audit, drafting sections for existing pages, or writing blog posts and release notes about Strands. Also triggers on "write a doc", "draft a page", "rewrite the quickstart", "add a tutorial for X", "document this feature".
Local preview of the strands-agents/devtools `/strands review` agent. Body is the upstream Task Reviewer SOP verbatim — do not paraphrase. Use when the user types `/strands-review`, asks for a "strands review" of a PR, or wants to anticipate what the remote `/strands review` GitHub Action will flag. Findings are close but not identical to the remote agent. Strongly prefer running this skill in a fresh-context subagent rather than inline — the SOP is long and reviewer judgment is more reliable when it isn't entangled with the parent conversation's prior context.
Creates a GitHub pull request using the gh CLI. Use when the user asks to create, open, or submit a PR on GitHub.
Fetches PR review feedback and inline comments, categorizes them, and presents options to the user. Use when the user asks to get, read, address, or fix review comments on a pull request.
Generates pull request titles and descriptions. Use when the user asks to create, open, write, draft, or generate a PR, pull request, or merge request description.