docs-reviewer
GitHub审查文档草稿的语气一致性、结构、术语及代码示例完整性,确保符合发布标准。适用于提交PR前、收到检查指令或文档生成后自动触发。
Trigger Scenarios
Install
npx skills add strands-agents/harness-sdk --skill docs-reviewer -g -y
SKILL.md
Frontmatter
{
"name": "docs-reviewer",
"description": "Review documentation drafts for voice consistency, structure, and terminology before PR submission. Use after completing a draft, when checking if docs are ready to ship, or automatically after docs-writer produces output. Also triggers on \"review this draft\", \"check my docs\", \"is this ready to ship\", \"review before merging\"."
}
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
- Read the draft provided by the user.
- Classify the content type (tutorial, how-to, explanation, reference) from frontmatter or structure.
- Score each of the five dimensions below.
- Assign a verdict.
- 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).
- Authenticity: Structural variety, visible editorial choices, concision.
2. Multi-Language Correctness
For pages with <Tabs> for Python and TypeScript:
- Prose between tabs is language-neutral. Flag prose inside a
<Tab>that names the language of that tab (e.g., "Python requires..." inside the Python tab). The reader chose the tab; they know. - Flag language-specific identifiers spelled out manually in shared prose — these should use the
<Syntax>component to adapt to the reader's language selection. - Headings describe the concept, not the API. Flag headings containing language-specific parameter names or syntax (e.g.
preserve_context=False,preserveContext: false). The table of contents should read the same regardless of language. - Callout boxes (
:::note,:::caution, etc.) meet the bar defined inmdx-authoring.md. Most facts belong as inline prose.
3. Terminology Consistency
Reference ../../references/terminology.md. Check every technical term against the lock file. Flag any non-canonical synonym.
4. 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. Type-correct snippets that don't back their claims slip past typecheck and erode trust faster than missing examples.
Site build conventions (reference ../../references/mdx-authoring.md):
- TypeScript code uses
--8<--snippet includes from sibling.tsfiles, never inlined in MDX. Flag raw TypeScript inside a code fence. - Each TypeScript fence includes both an imports snippet and a body snippet. A body-only include missing its imports is incomplete.
- Python may be inlined.
- Diagrams are
<Diagram>SVGs or```mermaidfences, never ASCII art or box-drawing characters. For<Diagram>SVGs, run the review checklist in../../references/diagrams.md: accent on at most two elements, no hard-coded colors, a completealt, and checked in both themes.
5. 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.
6. 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 dimensions, assign exactly one verdict:
Ship it — All 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 | ... | ... |
| Multi-language | ... | ... |
| 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, terminology decisions.
Version History
- 1adcaf9 Current 2026-10-20 04:22
- 2b6af5a 2026-08-20 16:58


