Technical documentation writing
Goal
Write and edit developer-facing documentation that is easy to consume: plain,
task-oriented, active-voice prose with scannable structure and clean punctuation.
Own the words and their organization within a page.
Not Dev Portal specific, but it pairs with the portal skills: portal-page-design
for the components that hold the prose, portal-branding for appearance. Work in
page content files, locally or in a repo, and do not push destructive changes to a
live portal unless the user explicitly asks.
Clarify First
Ask two or three high-impact questions, each with a default to confirm:
- the reader and the task the page serves
- the source of truth for the technical details
- an existing page to match in tone and structure, if any
- the depth expected, from quickstart to full reference
Tool Selection
- Documenting Konnect resources: pull real details (control planes, services,
routes, specs) from real entities through the
kong-konnect MCP server instead
of inventing values. If it is not connected, recommend installing it; otherwise
ask the user for real values or mark them clearly as placeholders, not guesses.
- Portal-page content: hand structure and components to
portal-page-design and
keep this skill on the prose.
- Follow Kong's documentation style guide for terminology and capitalization on
Kong content; default to the Google and Microsoft developer style guides
otherwise.
- Unsure of Kong terminology or how Kong documents a concept: check the server's
Kong documentation knowledge base. If unavailable, rely on the style guides and
flag anything you cannot confirm.
Workflow
- Name the reader and the task; lead with what the reader does.
- Choose the structure from that task and keep one use case on one page.
- Write in the house voice: second person, active voice, present tense, plain,
front-loaded, scannable. Recommend choices with a reason.
- Make it self-contained: real values from MCP or the user, placeholders for
reader-supplied values, one command per block, a verification step to close a
how-to.
- Edit out the tells as a final pass.
- Match the density: cut a sentence that repeats the previous one; add one the
reader would otherwise guess.
Style rules
These combine Kong's documentation style guide with the Google and Microsoft
developer style guides, which agree on the core.
Voice and grammar:
- Second person, active voice, present tense. Passive voice hides who acts; name
the actor.
- Plain verbs: "run" not "execute," "use" not "utilize," "to" not "in order to."
- Contractions are fine in prose; drop them in warnings for a serious tone.
- Name what a bare "this" points to. No Latin abbreviations (use "for example,"
"that is"). Use allowlist and denylist, main branch, and neutral pronouns.
- Recommend with "we recommend" and always give the reason.
Headings, lists, tables:
- Headings: descriptive, not generic; sentence case; task headings can use a bare
verb.
- Numbered lists for sequences, bulleted otherwise; parallel structure; end
punctuation only for full sentences.
- Tables for parameter references, status codes, and comparisons.
Code samples:
- One command per block; commands and output in separate blocks; language-tag
every block; no
$ prompt; wrap long commands with \.
- Placeholders:
ALL_CAPS_WITH_UNDERSCORES for generic values, {curlyBraces}
for spec parameters, example.com for illustration, localhost for runnable
examples. Never embed real secrets.
Kong terminology:
- Capitalize Gateway entities: Certificate, Consumer, Plugin, Route, Service,
Target, Upstream, Vault.
- Keep lowercase: control plane, data plane, application, developer, hybrid mode,
service mesh.
- Plugin names: capitalize the name, not "plugin" ("Rate Limiting plugin"); use
the lowercase slug in code (
rate-limiting).
- American English. Refer to third-party UI by label only, not color or position.
Page tenets:
- Every page is page one: a reader answers their question on one page; do not split
a concept from its configuration.
- A how-to has validation: the final step confirms the product works.
Avoid LLM tells
These patterns make prose read as machine-generated. Remove them in a final
editing pass, in this order (em-dashes and en-dashes are the clearest tell, so
start there):
- Delete every em-dash and en-dash, rewriting the sentence around it. The hard cap
is zero, headings included. Replace with a comma, colon, parentheses, or two
sentences, and do not use
-- as a substitute.
- Replace always-replace words: delve to explore; leverage (verb) to use; robust
to reliable; seamless to smooth; utilize to use; landscape (metaphor) to field.
For tapestry, synergy, game-changer, cutting-edge, and embrace (metaphor), say
the concrete thing.
- Cut hedges, intensifiers, and template openers (see below).
- Break up any run of three same-length sentences.
Constructions to avoid:
- "It's not just X, it's Y" and "not only X but Y." Rewrite as a direct statement,
at most one per document.
- Hollow hedges and intensifiers: genuinely, truly, quite frankly, it's worth
noting that, it's important to note, could potentially. Keep one hedge at most.
- Vague endorsements ("worth reading"), chatbot artifacts ("Great question!", "I
hope this helps!"), and template openers ("In today's X," "When it comes to,"
"Whether you're X or Y").
- Cutoff disclaimers and unfilled placeholders left in the text.
Flag-in-clusters words: any one may be fine, but if two or more cluster, rewrite
the paragraph plainly: harness, navigate, foster, elevate, unleash, streamline,
empower, bolster, resonate, revolutionize, facilitate, underpin, ecosystem,
myriad, plethora.
Rhythm: prefer plain copulas ("is," "has") over "serves as," "boasts," "features."
Do not synonym-cycle; repeat the clearest term. Vary sentence length; machine prose
is metronomic.
Documentation structures
Pick the shape from the reader's task, then write each section in the house voice.
On a Dev Portal, hand components and layout to portal-page-design; this covers
what each section says and in what order.
Page types:
- Landing page: signpost the reader to the right next page. State value in one or
two lines, then link. Do not teach here.
- How-to: an end-to-end task that ends with a validation step.
- Reference: concepts plus tables and schemas, with everything for one use case
kept together.
API or product page, a dependable order:
- Hero: what the product does and who it is for, in one or two lines, plus the
primary next step. Front-load value.
- Getting started: the shortest path to a first success. List every prerequisite
up front, give copy-paste steps, and end with a step that proves it worked.
- Authentication: early and self-contained. Show how to obtain and send credentials
with placeholders. Never show a real secret.
- Request and response samples: put request and response in separate,
language-tagged blocks (formatting under Code samples).
- Troubleshooting or FAQ: headings phrased as the reader's actual question, with
the cause and the fix in that order.
When documenting Konnect resources, pull real values from the kong-konnect MCP
server or the user's config; concrete examples beat invented ones, and keep secrets
out.
Keep each section self-contained and no longer than it needs to be.
Validation Checklist
- reader and task identified
- leads with the task; one use case per page
- second person, active voice, present tense, scannable
- placeholders in samples; how-to ends with verification
- no em-dashes, banned filler, or template openers
- real values from MCP or the user, not invention
Handoffs
portal-page-design for the components and layout that present this content.
portal-branding when the request is about appearance rather than wording.
konnect-api-publish or konnect-api-catalog when the real gap is that an API is
not published or modeled, not that its docs need writing.
1---2name: technical-writing3description: Write task-oriented developer documentation and Dev Portal page copy in plain, active-voice prose with clear, scannable structure. Use when authoring or editing technical docs, API guides, and page content.4license: MIT5---67# Technical documentation writing89## Goal1011Write and edit developer-facing documentation that is easy to consume: plain,12task-oriented, active-voice prose with scannable structure and clean punctuation.13Own the words and their organization within a page.1415Not Dev Portal specific, but it pairs with the portal skills: `portal-page-design`16for the components that hold the prose, `portal-branding` for appearance. Work in17page content files, locally or in a repo, and do not push destructive changes to a18live portal unless the user explicitly asks.1920## Clarify First2122Ask two or three high-impact questions, each with a default to confirm:2324- the reader and the task the page serves25- the source of truth for the technical details26- an existing page to match in tone and structure, if any27- the depth expected, from quickstart to full reference2829## Tool Selection3031- Documenting Konnect resources: pull real details (control planes, services,32 routes, specs) from real entities through the `kong-konnect` MCP server instead33 of inventing values. If it is not connected, recommend installing it; otherwise34 ask the user for real values or mark them clearly as placeholders, not guesses.35- Portal-page content: hand structure and components to `portal-page-design` and36 keep this skill on the prose.37- Follow Kong's documentation style guide for terminology and capitalization on38 Kong content; default to the Google and Microsoft developer style guides39 otherwise.40- Unsure of Kong terminology or how Kong documents a concept: check the server's41 Kong documentation knowledge base. If unavailable, rely on the style guides and42 flag anything you cannot confirm.4344## Workflow45461. Name the reader and the task; lead with what the reader does.472. Choose the structure from that task and keep one use case on one page.483. Write in the house voice: second person, active voice, present tense, plain,49 front-loaded, scannable. Recommend choices with a reason.504. Make it self-contained: real values from MCP or the user, placeholders for51 reader-supplied values, one command per block, a verification step to close a52 how-to.535. Edit out the tells as a final pass.546. Match the density: cut a sentence that repeats the previous one; add one the55 reader would otherwise guess.5657## Style rules5859These combine Kong's documentation style guide with the Google and Microsoft60developer style guides, which agree on the core.6162Voice and grammar:6364- Second person, active voice, present tense. Passive voice hides who acts; name65 the actor.66- Plain verbs: "run" not "execute," "use" not "utilize," "to" not "in order to."67- Contractions are fine in prose; drop them in warnings for a serious tone.68- Name what a bare "this" points to. No Latin abbreviations (use "for example,"69 "that is"). Use allowlist and denylist, main branch, and neutral pronouns.70- Recommend with "we recommend" and always give the reason.7172Headings, lists, tables:7374- Headings: descriptive, not generic; sentence case; task headings can use a bare75 verb.76- Numbered lists for sequences, bulleted otherwise; parallel structure; end77 punctuation only for full sentences.78- Tables for parameter references, status codes, and comparisons.7980Code samples:8182- One command per block; commands and output in separate blocks; language-tag83 every block; no `$` prompt; wrap long commands with `\`.84- Placeholders: `ALL_CAPS_WITH_UNDERSCORES` for generic values, `{curlyBraces}`85 for spec parameters, `example.com` for illustration, `localhost` for runnable86 examples. Never embed real secrets.8788Kong terminology:8990- Capitalize Gateway entities: Certificate, Consumer, Plugin, Route, Service,91 Target, Upstream, Vault.92- Keep lowercase: control plane, data plane, application, developer, hybrid mode,93 service mesh.94- Plugin names: capitalize the name, not "plugin" ("Rate Limiting plugin"); use95 the lowercase slug in code (`rate-limiting`).96- American English. Refer to third-party UI by label only, not color or position.9798Page tenets:99100- Every page is page one: a reader answers their question on one page; do not split101 a concept from its configuration.102- A how-to has validation: the final step confirms the product works.103104## Avoid LLM tells105106These patterns make prose read as machine-generated. Remove them in a final107editing pass, in this order (em-dashes and en-dashes are the clearest tell, so108start there):1091101. Delete every em-dash and en-dash, rewriting the sentence around it. The hard cap111 is zero, headings included. Replace with a comma, colon, parentheses, or two112 sentences, and do not use `--` as a substitute.1132. Replace always-replace words: delve to explore; leverage (verb) to use; robust114 to reliable; seamless to smooth; utilize to use; landscape (metaphor) to field.115 For tapestry, synergy, game-changer, cutting-edge, and embrace (metaphor), say116 the concrete thing.1173. Cut hedges, intensifiers, and template openers (see below).1184. Break up any run of three same-length sentences.119120Constructions to avoid:121122- "It's not just X, it's Y" and "not only X but Y." Rewrite as a direct statement,123 at most one per document.124- Hollow hedges and intensifiers: genuinely, truly, quite frankly, it's worth125 noting that, it's important to note, could potentially. Keep one hedge at most.126- Vague endorsements ("worth reading"), chatbot artifacts ("Great question!", "I127 hope this helps!"), and template openers ("In today's X," "When it comes to,"128 "Whether you're X or Y").129- Cutoff disclaimers and unfilled placeholders left in the text.130131Flag-in-clusters words: any one may be fine, but if two or more cluster, rewrite132the paragraph plainly: harness, navigate, foster, elevate, unleash, streamline,133empower, bolster, resonate, revolutionize, facilitate, underpin, ecosystem,134myriad, plethora.135136Rhythm: prefer plain copulas ("is," "has") over "serves as," "boasts," "features."137Do not synonym-cycle; repeat the clearest term. Vary sentence length; machine prose138is metronomic.139140## Documentation structures141142Pick the shape from the reader's task, then write each section in the house voice.143On a Dev Portal, hand components and layout to `portal-page-design`; this covers144what each section says and in what order.145146Page types:147148- Landing page: signpost the reader to the right next page. State value in one or149 two lines, then link. Do not teach here.150- How-to: an end-to-end task that ends with a validation step.151- Reference: concepts plus tables and schemas, with everything for one use case152 kept together.153154API or product page, a dependable order:155156- Hero: what the product does and who it is for, in one or two lines, plus the157 primary next step. Front-load value.158- Getting started: the shortest path to a first success. List every prerequisite159 up front, give copy-paste steps, and end with a step that proves it worked.160- Authentication: early and self-contained. Show how to obtain and send credentials161 with placeholders. Never show a real secret.162- Request and response samples: put request and response in separate,163 language-tagged blocks (formatting under Code samples).164- Troubleshooting or FAQ: headings phrased as the reader's actual question, with165 the cause and the fix in that order.166167When documenting Konnect resources, pull real values from the `kong-konnect` MCP168server or the user's config; concrete examples beat invented ones, and keep secrets169out.170171Keep each section self-contained and no longer than it needs to be.172173## Validation Checklist174175- reader and task identified176- leads with the task; one use case per page177- second person, active voice, present tense, scannable178- placeholders in samples; how-to ends with verification179- no em-dashes, banned filler, or template openers180- real values from MCP or the user, not invention181182## Handoffs183184- `portal-page-design` for the components and layout that present this content.185- `portal-branding` when the request is about appearance rather than wording.186- `konnect-api-publish` or `konnect-api-catalog` when the real gap is that an API is187 not published or modeled, not that its docs need writing.