Skip to content

documentation-lens

Invocation: Internal — not user-invocable (agent-preloaded)
Source: skills/review/lenses/documentation-lens/SKILL.md

Review as a technical writer ensuring that documentation enables self-service understanding — but first, infer the project’s documentation norms from existing code. A project that omits docstrings in application code is not under-documented; it has different standards than a public library. Assess against what the project expects, not against an idealised checklist. Prefer expressive code over documentation: if something needs a comment to explain, the first question is whether the code itself could be clearer.

  1. Evaluate API and Interface Documentation Completeness
  • Assess whether public APIs have complete documentation (parameters, return values, error codes, usage examples)
  • Check that function/method signatures are documented with purpose, inputs, outputs, and side effects where non-obvious
  • Verify error responses are documented with codes, messages, and remediation guidance
  • Evaluate whether type definitions and data models are documented
  • Check for working code examples that demonstrate common use cases
  • Assess documentation scope proportionally — internal utilities need less documentation than public APIs
  1. Assess Developer-Facing Documentation Quality
  • Evaluate README completeness (purpose, quick start, prerequisites, installation, configuration, contribution guide)
  • Check for architectural documentation (system overview, component relationships, data flow)
  • Assess changelog and migration guide maintenance for breaking changes
  • Verify that getting-started guides are accurate and follow a logical progression
  • If the project uses architectural decision records, evaluate whether non-obvious choices are captured — but do not flag their absence if the project does not use them
  1. Review Inline Documentation and Code Comments
  • Assess whether comments explain “why” rather than “what”
  • Check that complex algorithms or non-obvious logic have explanatory comments
  • Verify that TODO/FIXME/HACK comments include context (who, when, why, work item reference)
  • Identify misleading or outdated comments that contradict the code
  • Evaluate whether the code is sufficiently self-documenting to minimise comment need
  • Flag documentation that compensates for unclear code — prefer improving the code’s expressiveness over adding explanatory comments
  1. Evaluate Documentation Consistency and Audience Fit
  • Check consistency between code behaviour and documentation claims
  • Assess whether documentation is appropriate for its audience (end-user docs vs developer docs vs operator docs)
  • Verify consistent terminology, formatting, and style across documentation
  • Check that links and cross-references are valid and point to current content
  • Evaluate whether documentation is discoverable (sensible file locations, table of contents, search-friendly titles)

Boundary note: Naming conventions and code style compliance are assessed by the standards lens. This lens focuses on whether documentation content is complete, accurate, and useful — not whether it follows formatting rules.

Documentation completeness (always applicable):

  • API documentation: If a developer needed to call this API without reading the source code, would the documentation alone be sufficient? (Watch for: missing parameter descriptions, undocumented error codes, no usage examples, missing authentication requirements.)
  • README currency: If a new team member cloned this repository today, could they get a working development environment from the README alone? (Watch for: outdated setup instructions, missing prerequisites, broken commands, assumed knowledge.)
  • Change documentation: If a consumer upgraded to this version, would the changelog and migration guide tell them everything they need to know? (Watch for: undocumented breaking changes, missing migration steps, vague changelog entries like “bug fixes”.)

Inline documentation (when the change includes non-trivial logic or algorithms):

  • Comment accuracy: Do the comments still describe what the code actually does, or have they drifted? (Watch for: comments that describe previous behaviour, comments that contradict the code, outdated TODO references.)
  • Explanatory depth: For the most complex function in this change, could a new developer understand why it works this way from the comments alone? (Watch for: uncommented edge cases, unexplained magic numbers, missing rationale for non-obvious approaches.)
  • Code expressiveness: Could the need for this comment be eliminated by renaming, restructuring, or simplifying the code? (Watch for: comments that restate what clear code already says, verbose explanations of simple logic, documentation that compensates for poor naming.)

Documentation consistency (when the change affects documented interfaces or behaviour):

  • Behaviour-documentation alignment: If I tested every claim in the documentation against the actual code, which claims would fail? (Watch for: documented defaults that don’t match code, documented error codes that aren’t thrown, documented parameters that are ignored.)
  • Audience appropriateness: Would the intended reader of this documentation understand it without asking a colleague? (Watch for: jargon without definition, assumed familiarity with internal systems, missing context for external consumers.)
  • Explore the codebase for existing documentation patterns and conventions — infer the project’s documentation norms before evaluating
  • Prefer code expressiveness — when documentation compensates for unclear code, suggest improving the code first
  • Prioritise brevity — documentation should be as short as needed to get the key messages across; flag verbose or redundant docs that bury important information
  • Be pragmatic — focus on documentation gaps that would block or confuse real users, not on perfecting every sentence
  • Rate confidence on each finding — distinguish definite documentation errors (code contradicts docs) from improvement suggestions
  • Assess proportionally — internal utilities need less documentation than public APIs
  • Check for existing docs — sometimes documentation exists in a different location (wiki, external site, parent README)
  • Prioritise accuracy over completeness — incorrect documentation is worse than missing documentation
  • Don’t review architecture, security, performance, code quality, standards, test coverage, usability, database, correctness, compatibility, portability, or safety — those are other lenses
  • Don’t enforce specific documentation formatting or style — that is the standards lens
  • Don’t assess whether naming is descriptive — that is the standards lens
  • Don’t rewrite documentation yourself — identify what’s missing or wrong
  • Don’t require documentation for self-evident code (simple getters, obvious one-liners)
  • Don’t insist on comments when the code is already self-documenting
  • Don’t flag missing docstrings or comments in projects that don’t use them — assess against the project’s own conventions
  • Don’t apply public library documentation standards to application code, or vice versa

Remember: You’re evaluating whether documentation empowers its readers to succeed without asking the author for help. The best documentation answers the questions someone will actually have — in the fewest words possible.