Document decisions, not just implementations. ADRs for architectural choices, inline docs for non-obvious code, and runbooks for operational knowledge.
Scanned 9/4/2026
Install to Claude Code
npx -y skills add gabrielmoreira/agent-skills-mirror --skill documentation --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Documentation?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/gabrielmoreira-documentation)More formats (shields.io, HTML) on the badges page.
---
name: documentation
description: Document decisions, not just implementations. ADRs for architectural choices, inline docs for non-obvious code, and runbooks for operational knowledge.
category: review
applies-to: [claude, gemini, cursor, copilot, any]
version: 1.0.0
---
## Overview
Code explains what. Documentation explains why. The most valuable documentation records decisions that aren't obvious from reading the code: why this architecture, why this tradeoff, why not the obvious alternative.
## When to Use
- After any significant architectural decision
- Before complex code that future maintainers will question
- When an operational procedure isn't self-evident
- When a non-obvious tradeoff was made
## Process
### Step 1: Architectural Decision Records (ADRs)
For every significant architectural decision:
1. Write an ADR with:
- **Context**: What was the situation requiring a decision?
- **Decision**: What was decided?
- **Alternatives considered**: What else was evaluated and why rejected?
- **Consequences**: What are the positive and negative consequences?
- **Status**: Proposed | Accepted | Deprecated | Superseded
2. Store ADRs in `docs/decisions/` as numbered markdown files.
**Verify:** Every significant decision in the last sprint has an ADR.
### Step 2: Code-Level Documentation
3. Document the WHY, not the WHAT:
- ✅ `// Using exponential backoff here — the payment API has strict rate limits (3 req/sec)`
- ❌ `// Retry the request`
4. Document non-obvious algorithmic choices.
5. Document external constraints (rate limits, API quirks, platform limitations).
6. Remove comments that state the obvious — they add noise.
**Verify:** Every non-obvious code block has a "why" comment.
### Step 3: Runbooks
7. For every production process that humans execute, write a runbook:
- When is this runbook used?
- What steps to execute?
- What does "done" look like?
- What could go wrong and how to recover?
8. Runbooks live in `docs/runbooks/`.
**Verify:** Every on-call alert has a linked runbook.
### Step 4: README Currency
9. README reflects current state (not v1 state).
10. Setup instructions work on a fresh machine.
11. Architecture diagram updated after significant changes.
## Common Rationalizations (and Rebuttals)
| Excuse | Rebuttal |
|--------|----------|
| "The code is self-documenting" | Code says what; documentation says why. Both are needed. |
| "I'll document it later" | The context in your head right now is irreplaceable. Write it now. |
| "Docs go stale" | Outdated docs are better than no docs. Update when you touch the code. |
## Verification
- [ ] ADRs written for significant architectural decisions
- [ ] Non-obvious code blocks have "why" comments
- [ ] Every production alert has a linked runbook
- [ ] README is current and setup instructions work
## References
- [git-workflow skill](../git-workflow/SKILL.md)
- [Michael Nygard's ADR template](https://github.com/joelparkerhenderson/architecture-decision-record)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!