Write useful technical documentation
Treat the request text that activated this skill as the document, audience, and outcome.
This method serves human readers: tutorials, how-to guides, references, and explanations.
For instructions consumed by an agent, use
writing-for-agents. For mixed audiences, keep each audience's
instructions in its own linked document and reuse verified facts across them.
Write for a tired engineer who needs the correct result on the first read.
Inspect the implementation and existing documentation before writing. Use the
real symbol, file, flag, command, and product name; do not invent a synonym for
something the code already names.
If a new recurring prose problem belongs in unslop, propose its wording in the response.
Editing a document does not authorize changing the editing skill itself.
For project knowledge, use the existing topic and
OKF document lifecycle. Drafts belong in
Wiki/work/; durable explanations belong in Wiki/knowledge/. Preserve explicit
native destinations for package documentation, skills, steering, and Kiro specs.
Do not move an existing document merely because this skill is being used.
Apply all four layers below. They answer different questions: what document is
this, how does each sentence address the reader, how much does it ask the reader
to load, and can it be read more than one way.
1. Pick one Diátaxis (Diataxis) mode
Choose from the reader's job, not the material available:
- Tutorial: action while learning. Build one thing through visible,
successful steps; keep explanation brief and linked.
- How-to: action during real work. Assume competence, lead with the goal,
allow necessary forks, and exclude background lessons.
- Reference: facts for lookup. Mirror the product or API structure and state
names, options, defaults, limits, errors, and compatibility without opinion.
- Explanation: understanding while learning. Bound one why question and
discuss context, history, alternatives, and tradeoffs.
Do not mix modes to make one page comprehensive. Split the material and link
where modes meet.
2. Use Google developer sentence style
- Address the reader as “you” and use present tense.
- Name the actor and action. Use passive voice only when the actor is unknown or
irrelevant.
- Write instructions as commands. Put the condition before the command and the
common path before exceptions.
- Lead with the outcome. Put prerequisites before commands, expected
observations after them, and recovery beside the likely failure.
- Use sentence-case headings that carry the point. Use numbered lists for
sequences and bullets for other sets; keep items parallel.
- Use descriptive link text rather than “click here.” Link volatile detail to
its authority instead of copying it.
- Avoid buzzwords, figurative language, “please,” and claims that a task is
simple or easy.
3. Make STE load one thing at a time
Use Simplified Technical English discipline without writing robotic prose:
- Put one instruction in each sentence and one thought in each other sentence.
- Split a sentence when a reader must retain one action while parsing another.
- Put a warning or condition before the step it controls.
- Keep articles and verbs that make the grammar explicit.
- Give one word one meaning and one action one verb throughout the document.
- Prefer direct commands over narration or passive obligation.
- Cut words that do no work, but keep every word needed to parse the sentence.
One load at a time does not mean one sentence length. Mix short and long
sentences when each still carries one coherent thought.
4. Remove Global English ambiguity
- Put
only, not, and other modifiers next to what they modify.
- Break long noun strings into clauses that state the relationship.
- Make each pronoun point to one noun; repeat the noun when uncertain.
- Give every coordinated clause its own verb when omission permits two readings.
- Make
and and or grouping explicit with both, either, or a rewritten
list.
- Use one name per concept. Do not rename the same thing for variety.
- Prefer periods to semicolons or em dashes. Avoid slashes, idioms, unexplained
abbreviations, and culture-specific metaphors.
- Make parenthetical text grammatical, or move it into its own sentence.
Apply unslop after the four layers. That pass removes
filler and stock phrasing; it does not replace technical verification.
Review checklist
For PR descriptions and commit messages, apply the sentence, reader-load, and ambiguity layers
without forcing a Diataxis document structure. A PR body should take about a minute to read.
Explain the problem, the resulting behavior, material tradeoffs, and checks with their outcomes.
Link detailed logs, full commit identities, and measurement tables instead of pasting them into
the briefing. Preserve a repository's required template and material evidence caveats.
Before returning the document, check each item:
- Is the audience and job explicit, and is each file one Diataxis mode?
- Does the opening state the useful outcome?
- Are prerequisites, commands, expected results, and recovery in reader order?
- Is every instruction a command with its condition first?
- Does each sentence load one instruction or one coherent thought?
- Can any filler word be removed without losing meaning?
- Is each modifier beside its target, each pronoun unambiguous, and each clause
complete?
- Does every concept keep one name across files?
- Are headings, lists, links, and code formatting structurally correct?
- Are security boundaries, compatibility limits, and untested claims explicit?
- Do paths, symbols, flags, defaults, counts, and error text match the current
implementation?
- Did you run each safe example or the closest faithful check and record what
remains documentation-only?
Return the intended reader and mode, files changed, examples and links checked,
and every claim that remains unverified.
1---2name: technical-writing3description: Write or revise technical documentation for a specific reader and task, with verified commands, direct language, and maintainable information placement.4---56# Write useful technical documentation78Treat the request text that activated this skill as the document, audience, and outcome.910This method serves human readers: tutorials, how-to guides, references, and explanations.11For instructions consumed by an agent, use12[`writing-for-agents`](../writing-for-agents/SKILL.md). For mixed audiences, keep each audience's13instructions in its own linked document and reuse verified facts across them.1415Write for a tired engineer who needs the correct result on the first read.16Inspect the implementation and existing documentation before writing. Use the17real symbol, file, flag, command, and product name; do not invent a synonym for18something the code already names.1920If a new recurring prose problem belongs in `unslop`, propose its wording in the response.21Editing a document does not authorize changing the editing skill itself.2223For project knowledge, use the existing topic and24[`OKF document lifecycle`](../okf/references/document-lifecycle.md). Drafts belong in25`Wiki/work/`; durable explanations belong in `Wiki/knowledge/`. Preserve explicit26native destinations for package documentation, skills, steering, and Kiro specs.27Do not move an existing document merely because this skill is being used.2829Apply all four layers below. They answer different questions: what document is30this, how does each sentence address the reader, how much does it ask the reader31to load, and can it be read more than one way.3233## 1. Pick one Diátaxis (Diataxis) mode3435Choose from the reader's job, not the material available:3637- **Tutorial:** action while learning. Build one thing through visible,38 successful steps; keep explanation brief and linked.39- **How-to:** action during real work. Assume competence, lead with the goal,40 allow necessary forks, and exclude background lessons.41- **Reference:** facts for lookup. Mirror the product or API structure and state42 names, options, defaults, limits, errors, and compatibility without opinion.43- **Explanation:** understanding while learning. Bound one why question and44 discuss context, history, alternatives, and tradeoffs.4546Do not mix modes to make one page comprehensive. Split the material and link47where modes meet.4849## 2. Use Google developer sentence style5051- Address the reader as “you” and use present tense.52- Name the actor and action. Use passive voice only when the actor is unknown or53 irrelevant.54- Write instructions as commands. Put the condition before the command and the55 common path before exceptions.56- Lead with the outcome. Put prerequisites before commands, expected57 observations after them, and recovery beside the likely failure.58- Use sentence-case headings that carry the point. Use numbered lists for59 sequences and bullets for other sets; keep items parallel.60- Use descriptive link text rather than “click here.” Link volatile detail to61 its authority instead of copying it.62- Avoid buzzwords, figurative language, “please,” and claims that a task is63 simple or easy.6465## 3. Make STE load one thing at a time6667Use Simplified Technical English discipline without writing robotic prose:6869- Put one instruction in each sentence and one thought in each other sentence.70- Split a sentence when a reader must retain one action while parsing another.71- Put a warning or condition before the step it controls.72- Keep articles and verbs that make the grammar explicit.73- Give one word one meaning and one action one verb throughout the document.74- Prefer direct commands over narration or passive obligation.75- Cut words that do no work, but keep every word needed to parse the sentence.7677One load at a time does not mean one sentence length. Mix short and long78sentences when each still carries one coherent thought.7980## 4. Remove Global English ambiguity8182- Put `only`, `not`, and other modifiers next to what they modify.83- Break long noun strings into clauses that state the relationship.84- Make each pronoun point to one noun; repeat the noun when uncertain.85- Give every coordinated clause its own verb when omission permits two readings.86- Make `and` and `or` grouping explicit with `both`, `either`, or a rewritten87 list.88- Use one name per concept. Do not rename the same thing for variety.89- Prefer periods to semicolons or em dashes. Avoid slashes, idioms, unexplained90 abbreviations, and culture-specific metaphors.91- Make parenthetical text grammatical, or move it into its own sentence.9293Apply [`unslop`](../unslop/SKILL.md) after the four layers. That pass removes94filler and stock phrasing; it does not replace technical verification.9596## Review checklist9798For PR descriptions and commit messages, apply the sentence, reader-load, and ambiguity layers99without forcing a Diataxis document structure. A PR body should take about a minute to read.100Explain the problem, the resulting behavior, material tradeoffs, and checks with their outcomes.101Link detailed logs, full commit identities, and measurement tables instead of pasting them into102the briefing. Preserve a repository's required template and material evidence caveats.103104Before returning the document, check each item:1051061. Is the audience and job explicit, and is each file one Diataxis mode?1072. Does the opening state the useful outcome?1083. Are prerequisites, commands, expected results, and recovery in reader order?1094. Is every instruction a command with its condition first?1105. Does each sentence load one instruction or one coherent thought?1116. Can any filler word be removed without losing meaning?1127. Is each modifier beside its target, each pronoun unambiguous, and each clause113 complete?1148. Does every concept keep one name across files?1159. Are headings, lists, links, and code formatting structurally correct?11610. Are security boundaries, compatibility limits, and untested claims explicit?11711. Do paths, symbols, flags, defaults, counts, and error text match the current118 implementation?11912. Did you run each safe example or the closest faithful check and record what120 remains documentation-only?121122Return the intended reader and mode, files changed, examples and links checked,123and every claim that remains unverified.