---
name: docs
description: "Generates/updates README, API docs, architecture notes. Triggers: docs, README, API docs, architecture note, documentation."
user-invocable: true
effort: high
argument-hint: "[type: readme/api/architecture-note]"
agent: documenter
context: fork
allowed-tools: Read, Write, Grep, Glob
---

# Generate Documentation

$ARGUMENTS

Generate or update documentation.

## Usage

```
/docs [type] [target]
```

## What This Command Does

1. **Analyzes** code structure
2. **Extracts** documentation info
3. **Generates** documentation files
4. **Updates** existing docs

## Documentation Types

| Type | Description |
|------|-------------|
| `readme` | Generate/update README |
| `api` | API documentation |
| `architecture-note` | Architecture note |
| `changelog` | Generate changelog |
| `comments` | Add code comments |
| `kb` | Knowledge base entry (enforces KB structure) |

## KB Document Rules (MANDATORY)

When creating or updating documents in the `kb/` directory, follow the `documentation-standards` knowledge skill (auto-loaded). Key rules:

- **7 required frontmatter fields:** title, category, service, tags, created, last_updated, description
- **6 valid categories:** reference, howto, procedures, troubleshooting, best-practices, planning
- **Category must match directory** (e.g., `category: howto` → `kb/howto/`)
- **English only.** No exceptions.
- **validate.sh rejects docs without valid frontmatter.**

Full spec: see `app/skills/documentation-standards/SKILL.md`.

## Templates

### README Generation
```markdown
# [Project Name]

[Auto-generated description]

## Installation
[Detected from package manager]

## Usage
[Extracted from code/examples]

## API
[Extracted from code]

## License
[Detected]
```

### Architecture Note Template
```markdown
# Architecture Note: [TITLE]

## Status
Proposed

## Context
[What is the issue?]

## Decision
[What was decided?]

## Consequences
[What are the results?]

## Date
[Today's date]
```

## Output Format

```markdown
## Documentation Report

### Generated
- [file 1]
- [file 2]

### Updated
- [file 3]: [what changed]

### Skipped
- [file 4]: [reason]

### Next Steps
- [ ] Review generated docs
- [ ] Add missing details
- [ ] Commit changes
```

## Common Rationalizations

| Excuse | Why It's Wrong |
|--------|----------------|
| "The code is self-documenting" | Code shows how, not why — decisions, constraints, and context need prose |
| "Nobody reads docs anyway" | People don't read bad docs — good docs are the first thing consulted |
| "I'll document it when it's stable" | Unstable code needs docs most — document intent so others can contribute |
| "Comments get stale" | That's an argument for maintaining docs, not skipping them |
| "The tests are the documentation" | Tests verify behavior but don't explain architecture, trade-offs, or setup |

## Configuration

Documentation settings in:
- `.claude/settings.json`
- Project's doc config

## REVIEW BEFORE COMMIT

Generated documentation should be reviewed.
AI may miss context or make assumptions.

## Documentation Inventory

Run the bundled script to audit documentation coverage and find gaps:

```bash
python3 ${CLAUDE_SKILL_DIR}/scripts/doc-inventory.py .
```

## Parallel Documentation (large codebases)

If the inventory script reports `doc_coverage_percent < 50` and the project has multiple modules, use Agent Teams for parallel documentation:

```
Create an agent team for documentation:
- Teammate 1 (documenter): "Document the [module-1] directory. Generate docstrings for all public functions." Use Sonnet.
- Teammate 2 (documenter): "Document the [module-2] directory. Generate docstrings for all public functions." Use Sonnet.
- Teammate 3 (documenter): "Generate README sections: installation, usage, API reference." Use Opus.
Teammates should NOT overlap — each owns their assigned scope.
```

## Related Skills
- Documenting an architecture decision? → `/council` for multi-perspective analysis first
- Need to explore the codebase? → `/explore` to understand structure before documenting
- Writing a PRD? → `/write-a-prd` for structured product requirements
- Auditing existing docs? → `/analyze` for coverage gaps
