mcouthon/agents/documentation
Claude Code and agent skill by mcouthon/agents
- community
Checking that the SKILL.md file is still in the repository.
Documentation standards and best practices for code changes. Use when writing or reviewing documentation, adding public APIs, making user-facing changes, or checking documentation quality. Triggers on: 'use documentation mode', 'document', 'documentation', 'docstring', 'add docs', 'update docs', 'documentation review', 'API documentation', 'README update'. Full access mode - can write documentation and update code comments.
Install
npx vskill@latest install mcouthon/agents/documentationSKILL.md
Documentation Standards
Write documentation that serves humans and AI agents. Keep it accurate, layered, and close to the code.
"Documentation is a love letter that you write to your future self." — Damian Conway
Documentation Hierarchy
Documentation lives in layers. Each layer has a distinct audience, scope, and update cadence.
| Layer | Audience | Scope | Update Frequency | |
|---|---|---|---|---|
| Code comments | Maintainers, AI agents | Single block / decision | Only when a non-obvious decision exists | |
| Docstrings | Consumers, AI agents | Function / class contract | When a docstring exists and the contract changed | |
| Module docs | Team members, onboarding | File / package purpose | When module role changes | |
| Project docs (README, guides) | All stakeholders | System / feature | Every user-facing change | |
| Architecture docs (ADRs) | Maintainers, future devs | Design decisions | When decisions are made |
Audience Matrix
| Audience | What They Need | Key Layers | |
|---|---|---|---|
| Internal maintainers | Intent, trade-offs, edge cases | Comments, docstrings, ADRs | |
| New team members | Orientation, key concepts, how things connect | Module docs, README, architecture | |
| External users / consumers | How to use it, API contracts | README, API reference, how-to guides | |
| AI agents | Purpose, contracts, intent behind decisions | Docstrings, architecture docs, comments |
Layer Rules
Code Comments
- Explain why, never what — the code already says what
- Mark non-obvious decisions, trade-offs, and workarounds
- Cite the durable artifact — issue/ticket, ADR, commit — for context:
// Workaround for #1234. Never cite orchestration scratch (task folders, phase plans, session state) - Delete rather than comment out dead code (use version control)
- Keep comments adjacent to the code they describe
Docstrings
- Non-obvious contracts: State the contract — params, returns, raises/throws, brief description
- Self-documenting signatures: No docstring — the name and types already carry it
- Skip entirely: Simple getters/setters, constructors with no logic, obvious wrappers
- Describe the contract (what), not the implementation (how)
- Include a usage example only when usage is genuinely non-obvious
Module / Package Docs
- Top-of-file docstring or comment: one paragraph explaining purpose
- List key classes/functions and their roles
- Describe usage patterns and entry points
- Update when the module's responsibility changes
Project Docs
Follow the Diátaxis framework (see below). Keep docs in the repo, close to what they describe.
- README: Project purpose, quickstart, key links — the front door
- CHANGELOG: User-facing changes per release
- Architecture docs: Design decisions, system structure, component relationships
- API reference: Generated or maintained per public surface
Diátaxis Quick Reference
Four types of documentation, each serving a different user need:
| Type | Orientation | Answers | Structure | |
|---|---|---|---|---|
| Tutorial | Learning | "Follow these steps to learn X" | Step-by-step, hands-on, minimal explanation | |
| How-to Guide | Task | "How to accomplish X" | Goal-oriented steps, assumes knowledge | |
| Reference | Information | "Specification of X" | Precise, complete, consistent structure | |
| Explanation | Understanding | "Why X works this way" | Conceptual, discursive, gives context |
Common mistakes:
- Mixing tutorial steps with reference details
- Writing a how-to guide as a tutorial (too many basics)
- Putting explanations in reference docs (keep them factual)
- Missing how-to guides (users know what they want to do, not where to look)
Quality Checklist
Anti-Patterns
| Anti-Pattern | Problem | Correction | |
|---|---|---|---|
| Comment restates the code | Noise, drifts out of sync | Delete or explain the why | |
| Narration or section-divider comments | Noise that drifts; structure should carry it | Delete; restructure or rename if structure is unclear | |
| Comments citing task/phase/session state | Orchestration scratch leaks into shipped code | Delete, or cite the durable artifact (issue, ADR, commit) | |
| Docstring describes implementation | Couples docs to internals | Focus on the contract (what, not how) | |
| README lists features that don't exist | Misleading, erodes trust | Audit docs against actual behavior | |
| Docs live only in PR/commit messages | Invisible to future readers | Move to permanent location in repo | |
| Over-documenting trivial code | Clutter, maintenance burden | Skip obvious getters/setters/constructors | |
| Copy-pasting docstrings across overloads | Drift between copies | Document the base, reference it from overloads | |
| Huge top-of-file comment blocks | Nobody reads them | Keep to one paragraph; link to detailed docs |
Docstring Standards
Follow the standard specified by each language's instruction file. Do not invent custom formats.
| Language | Standard | Reference | |
|---|---|---|---|
| Python | Google style | python.instructions.md — Documentation section | |
| TypeScript | TSDoc | TSDoc conventions | |
| JavaScript | JSDoc | JSDoc conventions |
When a language-specific instruction file doesn't cover documentation, apply the global rule — docstrings only where the contract is non-obvious. When one is warranted:
- Public functions: brief description +
@param+@returns+@throws - Classes: brief description + constructor params
- Interfaces/types: brief description of purpose and usage context
Agent-Specific Guidance
AI agents consume documentation differently than humans. Optimize for both.
What helps agents most:
| Signal | Agent Benefit | |
|---|---|---|
| Precise names + explicit types | Correct usage, navigation, zero docs needed | |
| Architecture docs | High-level context for cross-cutting changes | |
| "Why" comments on non-obvious constraints | Correct decisions about modifications | |
| Explicit contracts (pre/post conditions) | Safe refactoring boundaries |
Principles:
- Keep docs close to code — agents search files, not wikis
- Structured formats (tables, lists) are easier to parse than prose
- Be explicit about edge cases and invariants in docstrings
- Name things well — good names reduce the documentation needed
- When docs and code disagree, the code is right — fix the docs
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckinggenerated/claude/skills/documentation/SKILL.md
Popularity
- Repository stars
- 79
- Repository forks
- 11
- 7-day trend score
- 22
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/mcouthon/agents/documentation)