Technical Writing
Use this skill when the deliverable is internal technical documentation for builders and operators.
technical-writing is the documentation-cluster anchor for:
- technical specs
- product requirements documents (PRDs)
- architecture docs
- ADRs / decision records
- runbooks and incident procedures
- rollout / rollback / migration guides
- developer-facing implementation or maintenance guides
When to use this skill
- A team needs a technical spec before implementation starts
- A team needs a PRD for product/feature requirements before design or implementation
- An engineer needs an architecture document or ADR that records trade-offs and decisions
- Ops needs a runbook, rollback guide, or incident response procedure
- A migration or rollout needs a durable written path with validation and rollback notes
- A developer-facing internal guide needs to explain how a system works and how to work on it safely
When not to use this skill
The lane is internal documentation. Say so and hand back when the real job is:
- Published API, SDK, OpenAPI or developer-portal content — an external
reference surface with its own versioning and consumers.
- End-user onboarding, tutorials, FAQs or help-centre flows — the audience
is a customer, not a builder or operator.
- Release notes,
CHANGELOG.md or customer-facing migration announcements.
- Slides, decks or roadmap presentations.
- Product positioning, launch copy or GTM messaging.
- Deciding the feature or API itself, which has to happen before the
document describing it can be written.
These boundaries are stated as work, not as skill names, so they stay true
whichever documentation skills happen to be installed. Name a specific skill
only if one is actually available in the current session.
Reference map
Load on demand; do not read all of these up front.
| File |
Use it for |
references/document-modes-and-boundaries.md |
Choosing the primary mode and deciding what is out of scope |
references/mode-structures.md |
The smallest fitting section layout for the chosen mode |
references/prd.md |
PRD-specific structure: personas, stories, acceptance criteria, metrics |
references/quality-checklists.md |
The Step 7 quality check in full |
references/docs-as-code-and-maintenance.md |
Repo-friendly conventions and long-term doc maintenance |
Instructions
Step 1: Classify one primary mode
Normalize the request into one primary mode before drafting.
technical_writing_mode:
primary_mode: prd | spec | architecture | adr | runbook | migration | internal-guide
audience: engineers | operators | mixed | unknown
source_of_truth: repo | incident-notes | existing-doc | mixed | unknown
lifecycle_state: draft | review | rewrite | maintenance
docs_surface: markdown-repo | docs-site | wiki | unknown
review_need: decision-signoff | operational-accuracy | handoff-clarity | unknown
Use one primary mode per run:
prd → product requirement, personas, stories, acceptance criteria, success metrics, risks
spec → planned change, goals, constraints, design, rollout, rollback, open questions
architecture → system structure, boundaries, interfaces, trade-offs, failure modes
adr → one material decision with options and rationale
runbook → operate, diagnose, recover, escalate
migration → move from old to new safely with validation and rollback
internal-guide → implementation-facing explanation for maintainers
Step 2: Confirm audience and route-outs
Answer three questions before writing:
- Who will act on this document?
- What decision or action should it enable?
- Which neighboring skills must stay out of scope?
Quick route-out table. Hand the work back with this reason; pick a named skill
from the current session only if one genuinely covers it.
| If the request sounds like... |
It is not this lane because... |
| Publish docs for an API, SDK, webhook, or developer portal |
The audience is external and the surface is versioned separately |
| Write a tutorial, onboarding guide, or FAQ |
The audience is an end user, not a builder or operator |
Summarize shipped changes or maintain CHANGELOG.md |
It reports what shipped rather than enabling a decision or action |
| Make slides for a launch, roadmap, or architecture review |
The artifact is a presentation, not a reviewable document |
| Write launch or product messaging |
It is positioning, not internal technical record |
| Decide the API or feature design before writing docs |
The decision has to exist before it can be documented |
Step 3: Gather the minimum technical evidence
Do not draft from vibes alone. Pull the smallest credible evidence set first:
- current behavior or architecture notes
- interfaces, schemas, commands, or operational signals
- rollout or operational constraints
- known failure modes and recovery steps
- unresolved questions or trade-offs
If evidence is missing, label assumptions explicitly instead of pretending the document is authoritative.
Step 4: Choose the smallest fitting structure
Use the mode rules below and only keep the sections that fit the chosen document.
Step 5: Apply mode-specific writing rules
- Specs must separate goals from non-goals.
- Architecture docs must explain boundaries and trade-offs, not every code path.
- ADRs must capture one decision, not become a full design doc.
- Runbooks must optimize for fast action under pressure.
- Migration guides must foreground compatibility, validation, and rollback.
- Internal guides must explain implementation reality, not customer education or marketing value props.
Step 6: Keep it docs-as-code friendly
Default to reviewable, repo-friendly writing:
- stable headings
- concise bullet lists where operators scan
- explicit commands, paths, owners, and prerequisites
- dated decisions and status for ADR-like docs
- links to source-of-truth docs instead of duplicated narrative when possible
Step 7: Run the quality check
Before finalizing, verify:
- The audience is named or obvious.
- The document states what decision or action it enables.
- Assumptions and unknowns are labeled.
- Commands, interfaces, validation, rollback, or escalation are concrete where relevant.
- Neighboring documentation skills are not being absorbed.
- The title and section layout match the chosen mode.
Step 8: Return a brief or the finished artifact
Preferred summary shape before full drafting:
# Technical Writing Brief
## Mode
- Primary mode:
- Why it fits:
- Audience:
## Source material used
- Repo/docs/evidence:
- Assumptions / gaps:
## Draft structure
1. section
2. section
3. section
## Writing notes
- Key decisions / actions enabled:
- Risks / unknowns:
- Route-outs kept out of scope:
If the user already asked for the finished artifact, produce the chosen document directly with the matching structure above.
Examples
Example 1: Internal design doc before implementation
Input
Write a technical spec for moving our worker queue from Redis lists to Redis streams. Engineers need goals, constraints, rollout, and rollback before coding.
Good output direction
- mode:
spec
- audience: engineers
- include goals, non-goals, constraints, design, rollout, rollback, open questions
- keep API portal publishing out of scope
Example 2: Architecture decision capture
Input
We chose Postgres logical replication over dual writes. Record the decision and alternatives in an ADR.
Good output direction
- mode:
adr
- capture context, decision, alternatives, consequences, follow-up
- keep the document short and decision-focused
Example 3: Incident runbook
Input
Write a runbook for when the payments worker backlog spikes and retries start timing out.
Good output direction
- mode:
runbook
- include symptoms, immediate checks, operating steps, escalation, rollback / recovery
- optimize for operator speed, not essay-style explanation
Example 4: Boundary with API docs
Input
Refresh our public webhook quickstart and auth troubleshooting page for external developers.
Good output direction
- decline the request as outside the internal-documentation lane
- explain that the main job is published developer-facing API docs, not internal technical documentation
Best practices
- Choose the document mode before writing the body.
- Keep internal technical docs decision- and action-oriented.
- Write only the sections the mode needs; do not force every template into every document.
- Separate internal design / ops docs from API portals, user help, release notes, decks, and GTM copy.
- Prefer docs-as-code structure: reviewable Markdown, stable headings, and source-linked facts.
- Label assumptions and unresolved questions explicitly.
- For runbooks and migrations, make rollback and escalation easy to find.
- When the request changes audience, route out instead of stretching the internal-docs lane.
References
1---2name: technical-writing3description: Internal engineering docs: specs, ADRs, architecture, runbooks, migrations, rollout plans, and maintainer guides.4license: MIT5---67# Technical Writing89Use this skill when the deliverable is **internal technical documentation for builders and operators**.1011`technical-writing` is the documentation-cluster anchor for:12- technical specs13- product requirements documents (PRDs)14- architecture docs15- ADRs / decision records16- runbooks and incident procedures17- rollout / rollback / migration guides18- developer-facing implementation or maintenance guides1920## When to use this skill21- A team needs a technical spec before implementation starts22- A team needs a PRD for product/feature requirements before design or implementation23- An engineer needs an architecture document or ADR that records trade-offs and decisions24- Ops needs a runbook, rollback guide, or incident response procedure25- A migration or rollout needs a durable written path with validation and rollback notes26- A developer-facing internal guide needs to explain how a system works and how to work on it safely2728## When not to use this skill2930The lane is *internal* documentation. Say so and hand back when the real job is:3132- **Published API, SDK, OpenAPI or developer-portal content** — an external33 reference surface with its own versioning and consumers.34- **End-user onboarding, tutorials, FAQs or help-centre flows** — the audience35 is a customer, not a builder or operator.36- **Release notes, `CHANGELOG.md` or customer-facing migration announcements.**37- **Slides, decks or roadmap presentations.**38- **Product positioning, launch copy or GTM messaging.**39- **Deciding the feature or API itself**, which has to happen before the40 document describing it can be written.4142These boundaries are stated as *work*, not as skill names, so they stay true43whichever documentation skills happen to be installed. Name a specific skill44only if one is actually available in the current session.4546## Reference map4748Load on demand; do not read all of these up front.4950| File | Use it for |51| --- | --- |52| `references/document-modes-and-boundaries.md` | Choosing the primary mode and deciding what is out of scope |53| `references/mode-structures.md` | The smallest fitting section layout for the chosen mode |54| `references/prd.md` | PRD-specific structure: personas, stories, acceptance criteria, metrics |55| `references/quality-checklists.md` | The Step 7 quality check in full |56| `references/docs-as-code-and-maintenance.md` | Repo-friendly conventions and long-term doc maintenance |5758## Instructions5960### Step 1: Classify one primary mode61Normalize the request into one primary mode before drafting.6263```yaml64technical_writing_mode:65 primary_mode: prd | spec | architecture | adr | runbook | migration | internal-guide66 audience: engineers | operators | mixed | unknown67 source_of_truth: repo | incident-notes | existing-doc | mixed | unknown68 lifecycle_state: draft | review | rewrite | maintenance69 docs_surface: markdown-repo | docs-site | wiki | unknown70 review_need: decision-signoff | operational-accuracy | handoff-clarity | unknown71```7273Use one primary mode per run:74- `prd` → product requirement, personas, stories, acceptance criteria, success metrics, risks75- `spec` → planned change, goals, constraints, design, rollout, rollback, open questions76- `architecture` → system structure, boundaries, interfaces, trade-offs, failure modes77- `adr` → one material decision with options and rationale78- `runbook` → operate, diagnose, recover, escalate79- `migration` → move from old to new safely with validation and rollback80- `internal-guide` → implementation-facing explanation for maintainers8182### Step 2: Confirm audience and route-outs83Answer three questions before writing:841. Who will act on this document?852. What decision or action should it enable?863. Which neighboring skills must stay out of scope?8788Quick route-out table. Hand the work back with this reason; pick a named skill89from the current session only if one genuinely covers it.9091| If the request sounds like... | It is not this lane because... |92|---|---|93| Publish docs for an API, SDK, webhook, or developer portal | The audience is external and the surface is versioned separately |94| Write a tutorial, onboarding guide, or FAQ | The audience is an end user, not a builder or operator |95| Summarize shipped changes or maintain `CHANGELOG.md` | It reports what shipped rather than enabling a decision or action |96| Make slides for a launch, roadmap, or architecture review | The artifact is a presentation, not a reviewable document |97| Write launch or product messaging | It is positioning, not internal technical record |98| Decide the API or feature design before writing docs | The decision has to exist before it can be documented |99100### Step 3: Gather the minimum technical evidence101Do not draft from vibes alone. Pull the smallest credible evidence set first:102- current behavior or architecture notes103- interfaces, schemas, commands, or operational signals104- rollout or operational constraints105- known failure modes and recovery steps106- unresolved questions or trade-offs107108If evidence is missing, label assumptions explicitly instead of pretending the document is authoritative.109110### Step 4: Choose the smallest fitting structure111Use the mode rules below and only keep the sections that fit the chosen document.112113### Step 5: Apply mode-specific writing rules114- **Specs** must separate goals from non-goals.115- **Architecture docs** must explain boundaries and trade-offs, not every code path.116- **ADRs** must capture one decision, not become a full design doc.117- **Runbooks** must optimize for fast action under pressure.118- **Migration guides** must foreground compatibility, validation, and rollback.119- **Internal guides** must explain implementation reality, not customer education or marketing value props.120121### Step 6: Keep it docs-as-code friendly122Default to reviewable, repo-friendly writing:123- stable headings124- concise bullet lists where operators scan125- explicit commands, paths, owners, and prerequisites126- dated decisions and status for ADR-like docs127- links to source-of-truth docs instead of duplicated narrative when possible128129### Step 7: Run the quality check130Before finalizing, verify:1311. The audience is named or obvious.1322. The document states what decision or action it enables.1333. Assumptions and unknowns are labeled.1344. Commands, interfaces, validation, rollback, or escalation are concrete where relevant.1355. Neighboring documentation skills are not being absorbed.1366. The title and section layout match the chosen mode.137138### Step 8: Return a brief or the finished artifact139Preferred summary shape before full drafting:140141```markdown142# Technical Writing Brief143144## Mode145- Primary mode:146- Why it fits:147- Audience:148149## Source material used150- Repo/docs/evidence:151- Assumptions / gaps:152153## Draft structure1541. section1552. section1563. section157158## Writing notes159- Key decisions / actions enabled:160- Risks / unknowns:161- Route-outs kept out of scope:162```163164If the user already asked for the finished artifact, produce the chosen document directly with the matching structure above.165166## Examples167168### Example 1: Internal design doc before implementation169**Input**170> Write a technical spec for moving our worker queue from Redis lists to Redis streams. Engineers need goals, constraints, rollout, and rollback before coding.171172**Good output direction**173- mode: `spec`174- audience: engineers175- include goals, non-goals, constraints, design, rollout, rollback, open questions176- keep API portal publishing out of scope177178### Example 2: Architecture decision capture179**Input**180> We chose Postgres logical replication over dual writes. Record the decision and alternatives in an ADR.181182**Good output direction**183- mode: `adr`184- capture context, decision, alternatives, consequences, follow-up185- keep the document short and decision-focused186187### Example 3: Incident runbook188**Input**189> Write a runbook for when the payments worker backlog spikes and retries start timing out.190191**Good output direction**192- mode: `runbook`193- include symptoms, immediate checks, operating steps, escalation, rollback / recovery194- optimize for operator speed, not essay-style explanation195196### Example 4: Boundary with API docs197**Input**198> Refresh our public webhook quickstart and auth troubleshooting page for external developers.199200**Good output direction**201- decline the request as outside the internal-documentation lane202- explain that the main job is published developer-facing API docs, not internal technical documentation203204## Best practices2051. Choose the document mode before writing the body.2062. Keep internal technical docs decision- and action-oriented.2073. Write only the sections the mode needs; do not force every template into every document.2084. Separate internal design / ops docs from API portals, user help, release notes, decks, and GTM copy.2095. Prefer docs-as-code structure: reviewable Markdown, stable headings, and source-linked facts.2106. Label assumptions and unresolved questions explicitly.2117. For runbooks and migrations, make rollback and escalation easy to find.2128. When the request changes audience, route out instead of stretching the internal-docs lane.213214## References215- [Diátaxis](https://diataxis.fr/)216- [Write the Docs — Docs as Code](https://www.writethedocs.org/guide/docs-as-code/)217- [Write the Docs — How to write software documentation](https://www.writethedocs.org/guide/writing/beginners-guide-to-docs/)218- [Architectural Decision Records](https://adr.github.io/)219- [Keep a Changelog](https://keepachangelog.com/en/1.1.0/)