Docs

SpecDD technical writing style guide

Be concise while preserving what readers need to understand and act.

This guide applies to software project documentation, READMEs, user guides, technical references, and prose written for AI systems. It aims to make information accurate, easy to find, easy to understand, and useful in context.

Treat the guidance as practical defaults. Choose the level of detail, structure, and formality that serves the audience and the purpose. A brief explanation may need a paragraph; a complex procedure may need prerequisites, examples, and recovery steps. Use judgment about what helps readers succeed.

Apply the guide in context

A single document can combine technical explanations, instructions, marketing, storytelling, and other kinds of writing. A README, for example, may introduce a product’s value before explaining how to use it. Evaluate both the document as a whole and the purpose of each passage before applying this guide.

Assess nontechnical passages according to their audience, intent, and contribution to the document. Do not automatically force them into the conventions of technical writing or remove deliberate voice and emphasis merely to achieve uniformity. A product introduction can be enthusiastic while its installation instructions remain precise and direct.

Make cautious, proportionate changes with a clear benefit to readers. Preserve language that serves the passage’s purpose, and correct inaccuracies or misleading claims wherever they occur. When the benefit of a stylistic change is uncertain, favor preserving the author’s intent. Aim for a coherent document whose different kinds of writing each fulfill their purpose.

Start with the reader and their purpose

Before writing, establish who the text is for and what it should help them learn, decide, or do. Consider their familiarity with the subject, the terminology they use, and the circumstances in which they will read it.

Someone diagnosing an outage needs a quick route from a symptom to a useful check. Someone evaluating a library needs to understand its purpose, capabilities, and limitations. Let those needs determine what to include and how much explanation to provide.

Account for differences in experience, language fluency, and accessibility needs. Introduce knowledge that readers need but may not have. Keep background proportionate to the task, and link to deeper explanations when useful.

When audiences have conflicting needs, identify the primary audience and give its needs priority. Use clearly labeled sections or separate documents for distinct roles and tasks. Provide brief orientation and routes to deeper explanations so readers can choose a suitable level of detail.

Readers may arrive through a search result or a direct link. Give each substantial topic enough context to identify its subject, scope, and relevant conditions without requiring readers to have read every preceding section.

Organize information around readers’ needs

Put the main point, purpose, or expected outcome near the beginning. Help readers quickly determine whether the document addresses their situation.

When a complex topic needs an overview, briefly explain how its parts fit together before developing the details.

Choose an order that fits the material:

Group related information together. Keep background, rationale, and advanced detail close enough to support understanding without interrupting the main task. Longer supporting material can live in a linked section or document.

Use headings that describe what follows. For example, “Set connection timeouts” gives readers more information than “Additional settings.” Add headings where they help readers navigate or recognize a change of topic. A short, coherent passage can remain a single section.

Make connections explicit: explain how a choice affects later steps, why an example matters, or how one concept relates to another. Structure should support both scanning and sustained reading.

Write clear, connected prose

Prefer familiar words, direct verbs, and concrete subjects. Name the actor when readers need to know who or what performs an action.

Before: Modification of the configuration file is required before initialization of the service.

After: Update the configuration file before initializing the service.

Use active voice when it makes responsibility or behavior clearer. Passive voice is useful when the result deserves emphasis or the actor is irrelevant: “This option was removed in version 3.0.”

Use present tense for general software behavior: “The command returns a list.” Use future tense when it clarifies when an action occurs: “The file will be archived during the next scheduled backup.”

Keep each sentence focused and make its references clear. Replace an ambiguous “it,” “this,” or “they” with the relevant name. Give each paragraph a coherent topic, usually introduced near its beginning. Connect sentences through meaningful relationships such as sequence, cause, consequence, or contrast.

Place modifiers such as “only” next to the words they restrict. “Only administrators can reset passwords” restricts who can act; “Administrators can reset only passwords” restricts what they can reset.

Unpack strings of nouns when their relationships are hard to follow: “request to delete a user account” is clearer than “user account deletion request.” Keep the subject and verb close enough to recognize their connection. Move long interruptions to another sentence or a position where they do not obscure the main action.

Vary sentence length to fit the thought. A longer sentence can help readers understand a condition and its consequence together. Split a sentence when its clauses become difficult to follow. Use readability scores and length checks as prompts for review; judge the result by how well the text communicates.

Address readers as “you” where it feels natural. Use a calm, respectful tone. Avoid unsupported praise, unnecessary formality, and words such as “obviously” or “simply” that can dismiss a reader’s difficulty. When explaining a problem, describe what happened and how to proceed without assigning blame.

In examples, use task-relevant role descriptions when names or personal details do not help explain the task. Avoid stereotypes and irrelevant assumptions about people’s background or personal characteristics. Keep examples focused on the subject and describe people respectfully.

Be concise without leaving gaps

Give each passage a purpose: answer a question, explain a relationship, support a decision, or help complete a task. Remove repeated conclusions, empty introductions, vague modifiers, and details that do not contribute to that purpose.

Before: Please note that in order for the changes to take effect, it is necessary to restart the server.

After: Restart the server to apply the changes.

Preserve qualifications that affect meaning. “By default, logs are kept for seven days” describes a default that may be configurable. Removing “By default” changes the claim.

Include rationale when it helps readers choose correctly, understand a limitation, or recover from a problem. Keep articles, prepositions, and connective words that make relationships clear. Compressing prose into dense fragments can increase the effort needed to interpret it.

Some repetition is useful. Restating a critical condition near the affected action can help readers who enter midway through a document. Repeating a long explanation in several places creates reading and maintenance costs; a short reminder and a meaningful link may work better.

Judge conciseness by the effort required to find, understand, and use the information. Add an example or explanation when it reduces that effort.

Keep technical meaning precise and consistent

Use the same term for the same concept. Match names used in the product, interface, and related documentation. Introduce unfamiliar terms where readers need them, and explain abbreviations unless the intended audience already knows them.

Where a name alone is unclear, add a noun that identifies the kind of object: “the timeout parameter” or “the settings.yaml file.”

Preserve exact spelling and capitalization in commands, identifiers, filenames, configuration keys, and interface labels. A stylistic improvement must not change something readers need to recognize or enter literally.

Be explicit about details that affect interpretation:

Attribute borrowed ideas, data, and illustrations to their sources. Common knowledge for the intended audience does not need a citation. Mark exact quotations clearly. Paraphrase in your own wording and sentence structure while preserving the source’s meaning and attribution. In software documentation, a descriptive link beside the relevant material often provides sufficient attribution.

Prefer concrete descriptions when the facts are known. “The client stops after three failed attempts” is more useful than “The client eventually stops.” Preserve uncertainty when the behavior has not been established.

Avoid unexplained comparisons such as “faster,” “safer,” or “more efficient.” State the relevant comparison and conditions when they matter to the reader’s decision.

When drawing a conclusion, distinguish observations from interpretations and explain how the evidence supports it. When recommending an approach, state the relevant criteria, assumptions, alternatives, and tradeoffs. Include limitations or contrary evidence that could change the reader’s decision. Check that the overall account remains accurate; omitting material information can mislead even when individual statements are true.

Make instructions and examples usable

Give readers enough information to start, proceed, and recognize completion. Depending on the task, that can include its purpose, prerequisites, required access, relevant settings, ordered actions, and expected results. Scale the presentation to the task’s complexity.

Number steps when their order matters. Use a clear imperative verb in each step’s first sentence and keep the step focused on a manageable unit of work. Put conditions, purposes, or locations before the action when readers need that context first: “If caching is enabled, clear the cache before restarting the service.” Put supporting explanations and examples beside the step they support. For a long procedure, group actions into meaningful stages and explain how the stages relate.

Make choices explicit. State the condition under which each branch applies, so readers can identify their next action without guessing.

Place warnings before the action that creates the risk. Describe the consequence and the relevant precaution. For example: “This command permanently deletes stored logs. Export any logs you need before running it.” Give warnings prominence in proportion to their consequences.

Explain consequential effects beyond the immediate result, such as settings that remain changed or resources that continue to incur costs. Include cleanup or restoration steps when they are part of completing the task, and describe the expected final state.

Keep prerequisites, required actions, and expected results in the main instructional flow. Use notes and tips for supplementary information that readers can skip and still complete the task. Use notices sparingly so they retain their prominence.

Use examples that reflect realistic tasks. Keep them small enough to follow and complete enough to demonstrate the intended behavior:

For troubleshooting, start with a symptom the reader can recognize. Include exact error text when it helps identification or search. Explain the likely cause, a useful diagnostic check, and an appropriate recovery action. Distinguish a suspected cause from one the check has confirmed.

Use formatting to support comprehension

Choose presentation according to the information:

Use the document format’s heading, list, and table markup so assistive technology can recognize the structure. Mark table headers explicitly. Keep commands, code, and terminal output as text that readers can select and copy.

Apply a small set of consistent conventions:

Use a consistent spelling variant and punctuation style appropriate to the audience. Preserve the original spelling of names and literal text. Prefer wording and examples that remain understandable across cultures, and explain idioms or local conventions when they are necessary.

Prefer ASCII in plain text, including Markdown source. Use straight quotes and apostrophes, ordinary spaces, and simple punctuation that is easy to type, search, copy, and maintain. Apply this preference to prose, headings, link text, and reference titles; replace decorative punctuation such as curly quotes and typographic dashes with ASCII alternatives.

Preserve non-ASCII characters needed for correct spelling or meaning, including in personal and place names. Keep exact characters in verbatim quotations, code, identifiers, paths, and data.

Adapt the guidance to the document

Use these patterns as starting points. Select and combine them according to what the document needs to accomplish.

DocumentUseful emphasis
READMEExplain the project’s purpose, who it serves, how to reach a useful first result, and where to find further documentation or help.
User guide or how-toEstablish the goal and prerequisites, guide readers through the task, and help them confirm success or resolve problems.
Conceptual or architectural explanationExplain concepts, relationships, motivations, and tradeoffs that help readers understand behavior or make decisions.
API, command, or configuration referencePresent exact behavior, syntax, inputs, defaults, constraints, outputs, and errors in a consistent form for quick lookup.
AI-facing instructionsState the task, relevant context, constraints, expected output, and observable completion criteria. Distinguish instructions from background and examples.

For an unfamiliar concept, explain what it is, why it matters to the reader, and how it works. Define terms in language readers already understand. Build on familiar ideas, and use examples to clarify the concept’s boundaries or distinguish it from related concepts. When an analogy helps, explain where the comparison stops being accurate.

For AI-facing prose, identify the objects or material an instruction applies to. Make conditional actions explicit, and state how to handle missing information when it affects the result. If requirements you control can conflict, explain their relative priority.

For example:

Summarize the release notes for users upgrading from version 2. Include breaking changes and required migration steps. Preserve command names exactly. If migration details are missing, say so. Present the result as a short Markdown list.

Keep AI instructions readable enough for a person to review and maintain.

Review for understanding, accuracy, and continued usefulness

Review while drafting and after substantive changes. Start with purpose and organization, then check content for completeness and technical accuracy before refining wording, formatting, and mechanics. Read headings and paragraph openings in sequence to check whether the explanation develops logically.

Use these questions to guide editing:

Try important procedures in the environment described. Involve representative readers when practical, especially for unfamiliar, complex, or consequential material. Scale the review effort to the document’s use and the consequences of misunderstanding it.

For published documentation, include checks of reading order and keyboard navigation for links and interactive content, as appropriate to the content and publishing format.

Automated checks can help find spelling errors, broken links, and some inconsistencies. Observe whether readers can actually use the information, and revise it based on their difficulties.

Maintain documentation alongside the behavior it describes. Update affected examples and explanations when software changes. Clearly identify historical guidance when it remains useful, and retire material that no longer serves readers.

In persistent instructions and reference material, avoid unanchored terms such as “new,” “currently,” and “latest.” When a change matters, identify its version or date. Preserve time references that serve release notes, announcements, or historical explanations.

Sources

This guide adapts selected principles and guidance from:

The document patterns, formatting conventions, and AI-facing examples are editorial applications of those principles. Apply them according to the audience and purpose of the document.