| name | inline-documentation |
| description | Use when writing code - ensure complete JSDoc, docstrings, and inline comments assuming documentation will be generated from code |
| allowed-tools | [] |
| model | opus |
Inline Documentation
Overview
Document code assuming docs will be generated from it.
Core principle: Future developers (including you) will read this code. Help them.
Announce at use: "I'm adding complete inline documentation for this code."
What to Document
Always Document
| Element | Documentation Required |
|---|
| Public functions/methods | Full JSDoc/docstring |
| Public classes | Class-level documentation |
| Public interfaces/types | Description of purpose |
| Exported constants | What they control |
| Complex logic | Why, not what |
| Non-obvious decisions | Explain reasoning |
Skip Documentation For
| Element | Why |
|---|
| Private trivial helpers | Self-evident |
| Single-line getters | Obvious from name |
| Standard patterns | Well-known idioms |
| Test files | Tests are documentation |
TypeScript/JavaScript (JSDoc)
Function Documentation
function calculateTotal(
items: LineItem[],
taxRate: number,
discounts?: string[]
): number {
}
Class Documentation
class AuthService {
constructor(private config: AuthConfig) { }
async login(credentials: Credentials): Promise<Session> { }
}
Interface Documentation
interface CacheConfig {
ttl: number;
maxSize: number;
backend: 'memory' | 'redis';
redisUrl?: string;
}
Python (Docstrings)
Function Documentation
def calculate_total(
items: list[LineItem],
tax_rate: float,
discounts: list[str] | None = None
) -> float:
"""Calculate the total price including tax and discounts.
Applies discounts before tax calculation. Discounts are applied
in order of magnitude (largest first).
Args:
items: Line items to calculate.
tax_rate: Tax rate as decimal (e.g., 0.08 for 8%).
discounts: Optional discount codes to apply.
Returns:
Total price after discounts and tax.
Raises:
ValidationError: If tax_rate is negative.
InvalidDiscountError: If discount code is invalid.
Example:
>>> total = calculate_total(
... [LineItem(price=100), LineItem(price=50)],
... 0.08,
... ['SAVE10']
... )
>>> total
145.80 # 150 - 10% = 135, + 8% tax
"""
pass
Class Documentation
class AuthService:
"""Manages user authentication and session lifecycle.
Handles login, logout, session refresh, and multi-device
session management. Uses JWT for stateless authentication
with Redis for session invalidation tracking.
Attributes:
config: Authentication configuration.
redis: Redis client for session tracking.
Example:
>>> auth = AuthService(config)
>>> session = await auth.login(credentials)
>>> await auth.logout(session.id)
"""
def __init__(self, config: AuthConfig) -> None:
"""Create an AuthService instance.
Args:
config: Authentication configuration including
JWT secret and session TTL.
"""
pass
Inline Comments
When to Use
function dijkstra(graph: Graph, start: Node): Map<Node, number> {
const queue = new PriorityQueue<Node>();
const distances = new Map<Node, number>();
}
Explain Why, Not What
counter++;
counter++;
Link to Context
const exp = Math.floor(Date.now() / 1000) + ttlSeconds;
const result = complexWorkaround();
Mark Non-Obvious Behavior
app.use(authMiddleware);
app.use(rateLimitMiddleware);
items.sort((a, b) => a.priority - b.priority);
Documentation Checklist
For each public element:
Functions/Methods
Classes
Interfaces/Types
Anti-Patterns
| Anti-Pattern | Correct Approach |
|---|
| No documentation | Document all public APIs |
| Stale documentation | Update docs with code changes |
| Obvious comments | Only document non-obvious |
| Missing examples | Add examples for complex APIs |
| Copy-paste docs | Write specific documentation |
Generating Documentation
TypeScript
npx typedoc src/index.ts --out docs
npx @microsoft/api-extractor run
Python
sphinx-apidoc -o docs/source src/
sphinx-build docs/source docs/build
pdoc --html src/ -o docs/
Integration
This skill is applied by:
issue-driven-development - Step 7
comprehensive-review - Documentation criterion
This skill ensures:
- Maintainable code
- Onboarding ease
- Generated documentation quality
- API discoverability