These rules address characteristics of AI-generated writing that can reduce the quality of developer documentation. They do not attempt to eliminate every pattern associated with generated text. Some of those patterns, including consistent structure and concise phrasing, are also desirable characteristics of documentation.
Developer documentation is highly structured, consistent, and concise by design. AI-generated writing often shares these characteristics but can also import language and conventions from business, marketing, academic writing, and engineering specifications. The result can include jargon, business slang such as the ask and the tell, and overly complex descriptions that are inappropriate for developer documentation.
These rules, together with related guidance elsewhere in the style guide and the word list, help identify and remove those characteristics while preserving the conventions that make developer documentation clear and useful.
Use vocabulary that is familiar in software and hardware developer documentation. Replace literary, publishing, or linguistics terms with plain equivalents, such as body text for prose, tone for register, and word choice for diction.
Examples
- ✓ Keep the body text in each callout brief.
- ✗ Keep the prose in each callout brief.
Rationale
Vocabulary from another field makes developers interpret an unfamiliar term before they can act on the content. Familiar developer terms state the same idea directly.
Use symbols that are familiar in developer documentation. For example, replace the section sign (§), which is used in legal and academic citations, with a section name or link.
Examples
- ✓ See the token-refresh section of the authentication guide.
- ✗ See § 4.2 of the authentication guide.
Rationale
An unfamiliar symbol makes readers identify a convention from another field before they can follow the reference. A section name or link identifies the destination directly.
Don’t use defensible as a general sign of approval. State why a choice is reasonable. Use defensible only when you mean that a choice or position can be defended.
Examples
- ✓ Caching the token locally avoids a network round trip on every call.
- ✗ Caching the token locally is defensible.
Rationale
Calling a choice defensible does not explain why the choice works. Give the reason so the reader can evaluate it.
Don’t use hedge, hedging, or hedged as general editorial labels. Name the effect instead: the wording qualifies a claim, avoids a commitment, or gives an approximate count. Keep hedge for its financial sense.
Examples
- ✓ The sentence uses might because the result depends on network latency.
- ✗ The sentence hedges.
Rationale
As an editorial label, hedge is jargon many readers don’t share, and it is a recognizable sign of AI-generated text. Naming the actual behavior is more direct and easier to comprehend.
Replace decorative words that make a specific fact vague, such as delve, tapestry, seamless, foster, and pivotal. State the fact in plain words. Keep a word when its technical or literal sense is precise. For example, robust is precise in robust estimator, and showcase can name a gallery of sample apps. Check the word list for each term’s verdict and replacements.
Examples
- ✓ The SDK retries failed requests three times before it raises an error.
- ✗ The SDK delves into robust retry handling, fostering seamless recovery from failures.
- ✓ The cluster manages the container runtime, the network, and storage.
- ✗ The cluster orchestrates a tapestry of runtime, network, and storage capabilities.
Rationale
Generated writing can overuse decorative vocabulary. In documentation, decorative words can replace a specific fact with a vague impression. Keep literal and technical uses that state the meaning precisely.
Use is, are, and has when they state the fact directly. Don’t replace them with serves as, stands as, functions as, features, or boasts. Keep represents for object-oriented and data contexts, where an object represents a record.
Examples
- ✓ The gateway is the only public entry point.
- ✗ The gateway serves as the only public entry point.
- ✓ The SDK has a built-in retry policy.
- ✗ The SDK boasts a built-in retry policy.
Rationale
Generated text often avoids is and are to sound more engaging, and the substitutes add words without adding meaning. A direct description of a concept increases comprehension and improves translation.
State the point directly. Don’t introduce it by rejecting a claim that the content hasn’t made, such as it’s not just X, it’s Y or this isn’t about X, it’s about Y. Use not only X but also Y only when both points matter. Compare real alternatives directly with rather than or instead of.
Examples
- ✓ The cache reduces latency for repeated reads.
- ✗ The cache isn’t just a performance feature, it’s a fundamental shift in how reads work.
- ✓ Use the streaming endpoint for live data and the batch endpoint for backfills.
- ✗ It’s not about which endpoint is faster, it’s about which one fits your workload.
- ✓ Store the token in the keychain rather than in a plain file.
Rationale
Generated text often opens a sentence with a claim it then rejects, so that the real point arrives as a correction. Rejecting an unstated claim creates a disagreement the reader did not have and delays the point. Compare alternatives only when the distinction helps the reader choose.
Include an item only when it adds distinct information. Don’t add an adjective, benefit, or list item only to increase the number of items.
Examples
- ✓ The client is asynchronous and retries on timeout.
- ✗ The client is asynchronous, resilient, and retries on timeout.
- ✓ Supported formats: JSON and CSV.
- ✗ Supported formats: JSON, CSV, and other structured data.
Rationale
Generated text often adds a vague third item to complete a group of three. The extra item makes the reader look for a distinction that is not there.
ai-004 (retired 2026-09-10): “Avoid em dashes.” It restated punct-028, which
holds the rule for every content type. Its editing guidance (rewrite the
sentence rather than replace each dash) and its example pair moved into
punct-028. Rules that span topics are not duplicated; this page lists
punct-028 under “Applicable rules from other topics” instead. The ID stays
reserved and is never reused.