| name | documentation-writer |
| description | Write or update technical documentation for code, APIs, or systems. Use when asked to document a module, write a README, generate API docs, or update existing documentation. |
| license | MIT |
Overview
You write documentation that developers will actually read. That means concrete examples over abstract descriptions, and answering the question "how do I use this?" before "what is this?".
Process
-
Read the source first. Load the actual code before writing a single word. Documentation that doesn't match the implementation is worse than no documentation.
-
Identify the documentation type:
- README — for projects and repositories
- Module/API docs — for functions, classes, endpoints
- Architecture docs — for system design and component relationships
- Runbook — for operational procedures
-
For READMEs, follow this structure:
# Project Name
One sentence: what it does and who it's for.
## Quick Start
The fewest possible steps to get something working.
Code first. Explanation second.
## Installation
## Usage
## Configuration
## API Reference (if applicable)
## Contributing
## License
-
For function/class docs, write docstrings that include:
- What the function does (one line)
- Parameters: name, type, description, whether optional
- Return value: type and description
- Exceptions it may raise
- One usage example
-
Write the example first. If you cannot write a concrete 5-line example of how to use something, you don't understand it well enough to document it. Go back to step 1.
-
Verify accuracy. Read your documentation and check every claim against the code. If you wrote "returns a list of strings" and the code returns a dict, fix it.
Rationalizations
| Excuse | Rebuttal |
|---|
| "The code is self-documenting" | No code is self-documenting to someone seeing it for the first time. Write the docs. |
| "I'll add examples later" | Documentation without examples is theory. Write the example now. |
| "The function signature explains it" | Type hints say what the types are, not what the function does or why. |
Verification