documenting
Creates clear, maintainable documentation for code and APIs. Use when writing README files, API docs, code comments, or when asked to document code.
SKILL.md
Full skill instructions
Documenting
Documentation Types
| Type | Audience | Content |
|---|---|---|
| README | New users | Quick start, installation, usage |
| API docs | Developers | Endpoints, parameters, responses |
| Code docs | Contributors | Architecture, patterns, decisions |
| Comments | Code readers | Why, not what |
README Structure
# Project Name
Brief description (1-2 sentences).
## Quick Start
\`\`\`bash
npm install project-name
\`\`\`
## Usage
\`\`\`typescript
import { feature } from 'project-name';
// Minimal working example
\`\`\`
## API Reference
Link to detailed docs or brief overview.
## Contributing
How to contribute, run tests, submit PRs.
## License
License type and link.
Code Comments
// Good - explains WHY
// Cache invalidated after 5 minutes to balance freshness vs API rate limits
const CACHE_TTL = 300_000;
// Bad - explains WHAT (obvious from code)
// Set cache TTL to 300000
const CACHE_TTL = 300_000;
JSDoc Format
/**
* Calculates the total price including tax.
*
* @param items - Cart items to calculate
* @param region - Tax region (affects rate)
* @returns Total price in cents
* @throws {ValidationError} If items array is empty
*
* @example
* const total = calculateTotal([{ price: 1000 }], 'EU');
* // Returns: 1210 (with 21% VAT)
*/
function calculateTotal(items: Item[], region: Region): number {
Principles
- Audience-first: Write for the reader, not yourself
- Examples over explanation: Show, don't just tell
- Keep current: Outdated docs are worse than none
- DRY: Link to existing docs, don't duplicate
- Scannable: Use headings, lists, tables
