Elixir Docs Review
by @anderskev
Reviews Elixir documentation for completeness, quality, and ExDoc best practices. Use when auditing @moduledoc, @doc, @spec coverage, doctest correctness, an...
clawhub install elixir-docs-review📖 About This Skill
name: elixir-docs-review description: Reviews Elixir documentation for completeness, quality, and ExDoc best practices. Use when auditing @moduledoc, @doc, @spec coverage, doctest correctness, and cross-reference usage in .ex files.
Elixir Documentation Review
Quick Reference
| Issue Type | Reference | |------------|-----------| | @moduledoc, @doc quality, anti-patterns | references/doc-quality.md | | @spec, @type, @typedoc coverage | references/spec-coverage.md |
Review Checklist
Module Documentation
Function Documentation
Doctests
Cross-References
MyModule)function/2)t:typename/0)Metadata
Valid Patterns (Do NOT Flag)
Context-Sensitive Rules
| Issue | Flag ONLY IF | |-------|--------------| | Missing @moduledoc | Module is public AND not a protocol impl | | Missing @spec | Function is public AND exported | | Missing doctests | Function is pure AND deterministic | | Generic @doc | Doc restates function name without adding value |
Gates (sequenced — do not skip)
Work in order. Do not draft or ship a finding until the prior step passes.
1. Scope lock — Pass when: You listed the exact .ex/.exs file paths (or Module names) under review; no vague “the project” scope.
2. Full-context read — Pass when: For each candidate issue, you read the full surrounding definition (all clauses for multi-clause functions; full @moduledoc block for module-level claims), not only a diff hunk or search snippet.
3. Evidence bundle — Pass when: Every draft finding uses the [FILE:LINE] ISSUE_TITLE header (line range allowed) and includes a verbatim quote or pointer to the @doc / @spec / doctest text in question. Module.function/arity may appear as supporting context but does not replace the [FILE:LINE] anchor. For “doctest fails” claims, Pass when: you cite mix test output for the relevant file or line, or the exact error string.
4. Protocol before report — Pass when: You loaded and followed review-verification-protocol (its Pre-Report checklist) before finalizing the issue list—not after.