name: writing-technical-documentation description: Writes READMEs, architecture docs, and runbooks that lead with purpose, put a working quickstart first, and stay ruthlessly scannable. Use when the user asks to write or improve a README, project documentation, an architecture document, a design doc, a runbook, or internal engineering docs. Do not use for API endpoint reference docs, step-by-step tutorials, or user-facing release notes — separate skills cover those.
Writing Technical Documentation
When to use / when NOT to use
- Use for: READMEs, architecture/design docs, runbooks, onboarding docs, internal engineering documentation.
- Do NOT use for: API endpoint reference (writing-api-documentation), step-by-step tutorials (writing-tutorials), release notes (writing-release-notes), or blog posts (writing-blog-posts).
House rules
-
Lead with what it is and who it's for — first two sentences.
- ✅ "payment-router routes card transactions to the cheapest eligible processor. It's used by the checkout service; most engineers only need the client library."
- ❌ "Welcome to the payment-router repository! This document describes the project."
-
Quickstart before reference. A copy-paste working example must appear in the first screen of a README.
- ✅ Install command + minimal working snippet within the first 30 lines.
- ❌ Three screens of architecture background before the first runnable command.
-
Document the why, not just the what (ADR mini-pattern: Context → Decision → Consequences).
- ✅ "We chose SQS over Kafka because volume is under 100 msg/s and we already pay for AWS. Revisit if we need replay."
- ❌ "The system uses SQS."
-
Docs live next to the code and change in the same PR.
- ✅ "Updated
docs/runbook.mdin the PR that changed the alert threshold." - ❌ A wiki page last edited two majors ago.
- ✅ "Updated
-
Ruthless scannability. A heading roughly every 10 lines; tables for enumerable facts; every code block tested before committing.
- ✅ A "Configuration" table with name/default/effect columns.
- ❌ Configuration options described across four paragraphs of prose.
-
No marketing adjectives. Claims must be verifiable.
- ✅ "Handles 2,000 requests/s on one c7g.large."
- ❌ "Blazingly fast, robust, and seamless."
-
Date-stamp anything that rots. Benchmarks, dependency lists, screenshots, on-call contacts get an "as of YYYY-MM" marker.
- ✅ "Benchmarks (as of 2026-08): …"
- ❌ Undated numbers that outlive their truth.
Workflow
- Identify the doc type (README / architecture doc / runbook) and the primary reader; write both at the top as the first two sentences.
- Draft the skeleton: purpose → quickstart → how it works → reference → operations. For runbooks: symptom → diagnosis → fix → escalation.
- Write the quickstart first and actually run every command in it.
- Fill remaining sections; convert any enumerable prose into tables.
- Self-review against the seven house rules; delete every unverifiable adjective; add date stamps; fix violations before delivering.
Edge cases
- Existing doc to improve → preserve its structure where sound; apply rules 1–2 first (purpose and quickstart), then scannability. List what you changed.
- No runnable quickstart possible (pure library of internals, docs-only repo) → substitute a "minimal usage" code snippet or a "start here" reading path.
- Audience is mixed (users + contributors) → split: README for users, CONTRIBUTING/ARCHITECTURE for contributors. Never interleave.
References
Extended before/after examples: see references/examples.md.