← ClaudeAtlas

docstring-coveragelisted

Detect exported / public API symbols missing a docstring — functions, classes, modules, endpoints, exported types — and optionally gate on a coverage threshold. A docstring states WHY / the contract, not a restated signature. An undocumented public API is a coverage gap.
adnanmokhtar/refract · ★ 1 · AI & Automation · score 80
Install: claude install-skill adnanmokhtar/refract
# docstring-coverage ## Premise Every exported / public symbol — function, class, module, endpoint, exported type — carries a docstring that states its **contract and its WHY**: what it guarantees, what it assumes, when to reach for it, what it raises. Not a restated signature. An undocumented public API is a coverage gap, and a docstring that merely re-spells the parameter names in prose is a *zero-information* gap wearing a docstring's clothes — worse, because it green-lights the count while teaching nothing. Cite-or-halt. Every finding cites the symbol at `<path:line>` and its category: `NO-DOC`, `EMPTY-DOC`, `SIGNATURE-RESTATE`, or `INCOMPLETE` (missing param/return/raises on a signature that has them). "This could use more docs" is a vibe. A gap without a symbol citation and a category is not reportable. **Cross-owned with the lint toolchain — mirror, don't impose.** Docstring coverage is enforced in most ecosystems by a linter (see the adapt table). This skill **defers to the project's existing docstring linter** and its configured convention (Google vs NumPy vs reST style; which D-rules are on; the JSDoc tags required). It reads that config and reports against it. If the repo has no docstring linter wired, this skill reports raw coverage and proposes adopting the ecosystem-standard one — it does **not** invent a house convention or fight a configured one. The linter owns the rules; this skill surfaces and (optionally) gates on the coverage they imply. ## When to r