Code Documenter
Automatically generate and improve code documentation following language-specific standards.
Overview
This skill automates documentation generation for development teams. It detects your codebase language, applies appropriate docstring standards (Google/NumPy for Python, JSDoc/TSDoc for TypeScript, Javadoc for Java, godoc for Go, rustdoc for Rust), and validates documentation quality.
What it automates:
- Detection of language and existing documentation style
- Generation of missing docstrings for public APIs
- Validation of documentation completeness and quality
- Suggestions for documentation improvements
Language Support
| Language | Supported Styles | Generator Tool |
|---|---|---|
| Python | Google, NumPy, Sphinx | Sphinx + Napoleon |
| JavaScript/TypeScript | JSDoc, TSDoc | TypeDoc |
| Java | Javadoc | javadoc |
| Go | godoc conventions | pkgsite |
| Rust | rustdoc (CommonMark) | cargo doc |
Workflow
Step 1: Detect Language and Style
First, I'll scan your codebase to identify:
- Primary programming language(s)
- Existing documentation conventions (if any)
- Public API surface that needs documentation
Step 2: Analyze Coverage
I'll check current documentation status:
- Files with existing documentation
- Public functions/classes missing documentation
- Documentation quality issues (incomplete params, missing returns)
Step 3: Generate Documentation
For undocumented code, I'll generate:
- One-line summary describing purpose
- Parameter documentation with types and descriptions
- Return value documentation
- Exception/error documentation where applicable
- Usage examples for complex functions
Step 4: Validate Quality
I'll verify documentation meets quality standards:
- No placeholder content (TODO, TBD, ...)
- All parameters documented
- Return types specified
- Consistent style throughout
Triggers
Run this skill when:
- Adding new functions or classes
- Preparing code for review
- Onboarding new team members
- Setting up documentation infrastructure
Verification
Success Indicators
- All public APIs have docstrings
- Documentation style is consistent
- No placeholder content remains
- Parameters and returns documented
Coverage Report
After running, I'll provide:
- Documentation coverage percentage
- List of newly documented items
- Remaining items needing manual attention
Examples
Example 1: Document a Python Module
User: Document the functions in src/utils/helpers.py
Assistant: Analyzing src/utils/helpers.py...
Found 5 public functions, 2 already documented.
Generating documentation for 3 functions using Google style:
def calculate_discount(price: float, percentage: float) -> float:
"""Calculate discounted price.
Args:
price: Original price in dollars.
percentage: Discount percentage (0-100).
Returns:
Final price after applying discount.
Raises:
ValueError: If percentage is not between 0 and 100.
"""
[Continues for remaining functions...]
Coverage: 100% (5/5 functions documented)
Example 2: Audit TypeScript Documentation
User: Check documentation coverage in src/components/
Assistant: Scanning TypeScript files in src/components/...
Documentation Report:
- Total exports: 24
- Documented: 18 (75%)
- Missing: 6
Missing documentation:
1. src/components/Button.tsx: ButtonProps interface
2. src/components/Modal.tsx: useModal hook
3. src/components/Form.tsx: validateField, submitForm, resetForm
Would you like me to generate TSDoc comments for these?
Example 3: Set Up Documentation Standards
User: Help us establish documentation standards for our Python project
Assistant: I'll analyze your current codebase and recommend a standard.
Current state:
- 3 files use Google-style docstrings
- 2 files use NumPy-style docstrings
- 5 files have no docstrings
Recommendation: Standardize on Google style (most common in your codebase).
I'll create:
1. Documentation style guide (CONTRIBUTING.md section)
2. Pre-commit hook to validate docstring format
3. Generate missing docs in Google style
Proceed? (y/n)
Configuration
Style Preferences
When multiple styles are valid, I'll ask which you prefer:
| Language | Options |
|---|---|
| Python | google, numpy, sphinx |
| TypeScript | jsdoc, tsdoc |
Scope Control
| Option | Effect |
|---|---|
| Public only | Document exported functions/classes only |
| Include private | Document all functions including internal |
| Specific files | Target only specified files/directories |
Safety
Idempotency
Running multiple times is safe:
- Existing documentation is preserved
- Only missing documentation is added
- Style conflicts are flagged, not overwritten
Reversibility
All changes are made through standard file edits:
- Use
git diffto review changes - Use
git checkoutto revert if needed
Output Checklist
Before considering documentation complete:
- All public functions have docstrings
- Parameter types and descriptions present
- Return values documented with type
- Exceptions documented where thrown
- No placeholder content (TODO, TBD, FIXME)
- Consistent style across codebase
- At least one example for complex functions
Converted and distributed by TomeVault — claim your Tome and manage your conversions.