eng-tech-docs
Write or maintain technical documentation — READMEs, runbooks, API references, architecture docs — that a specific reader can act on without asking follow-ups.
SKILL.mddocs/skills/eng-tech-docs/SKILL.md
GitHubWhen to use
Creating or updating any doc humans rely on to run, integrate with, or understand a system. Good docs answer the reader's next question before they ask it.
Not for: inline code comments, commit messages, or design debate that belongs in an ADR (use eng-architecture). This is reader-facing reference and how-to, not decision rationale.
Method
- Identify the reader and their goal: a new contributor getting set up, an on-call engineer mid-incident, or an integrator calling your API. Write for that one job; if two readers need different things, write two docs.
- Lead with the outcome. Put "what this is and why you'd use it" in the first three lines. Bury nothing important below the fold.
- Make it runnable. Every setup or usage step must be copy-pasteable and verified against a clean environment. If you can't run a step, mark it UNVERIFIED rather than implying it works.
- Match the form to the type:
- README → purpose, quickstart, config, common tasks, troubleshooting, links.
- Runbook → alert/symptom, diagnosis steps, remediation commands, escalation, rollback.
- API doc → endpoint, params, auth, request/response examples, error codes, rate limits.
- Architecture → context diagram, components, data flow, key decisions (link ADRs).
- Show real (sanitized) values, not
<placeholder>soup a reader has to decode. - State what's out of scope and add a "last verified" date. A doc that lies is worse than none — if you can't verify a section, say so.
Example
Runbook snippet for a "queue backing up" alert:
## Alert: order-queue depth > 10k
Symptom: OrderQueueDepth alarm; checkout latency climbing.
Diagnose: `aws sqs get-queue-attributes --queue-url $Q` → check
ApproximateNumberOfMessages and consumer count in the orders dashboard.
Remediate: scale consumers → `kubectl scale deploy/order-worker --replicas=8`
Escalate: if depth still rising after 10m, page @payments-oncall.
Rollback: revert last order-worker deploy → `deploy rollback order-worker`
Last verified: 2026-07-11
Pitfalls
- Writing for no one — a doc addressed to everyone helps no one; name the reader.
- Steps that only run on your machine because of an unstated prerequisite.
- Placeholder soup the reader must reverse-engineer into real values.
- Stale docs left undated — no "last verified" means readers can't judge trust.
Output format
Doc type: <README | Runbook | API | Architecture> Reader: <who + their goal>
<the document in Markdown, headings matched to the type above>
- runnable examples with expected output
- troubleshooting / FAQ where relevant
Out of scope: <what this doc does not cover>
Last verified: <YYYY-MM-DD> Related: <links to ADRs / other docs>