Product Writing
Help the reader understand what is happening and what they can do next.
Work from the task
Use only the sections relevant to the requested copy. Preserve the user's
meaning, terminology, audience, and requested format. Follow existing product
conventions where they help readers recognize controls, commands, and states.
A wording task does not itself authorize changes to product behavior or a
reorganization of the documentation.
Ground behavioral claims in supplied facts, the relevant implementation or
specification, or an observed result. When a fact cannot be verified, identify
that uncertainty where it matters and complete the parts that are supported.
Do not invent behavior or a cause to make the text sound complete.
Interface copy, errors, and help
- Name the action or state accurately. Distinguish saving a setting from
testing a connection, accepting a request from completing a job, and partial
success from full success. For example, a queued export should not announce
that a file is ready to download.
- Make recovery useful. Identify what failed and the relevant input or
operation. Include a next step when it is known and actionable. An unknown
network failure does not establish that credentials are wrong. Put detail
in the message, an expanded view, or a specific help link as the interface
allows; an error need not fill a fixed template.
- Preserve meaningful distinctions. Keep prerequisites, limits, and
consequences that affect the reader's decision. Use the product's names for
controls and commands. Do not shorten away which item an action affects or
imply that an irreversible action is temporary.
Status and diagnostic output
- Describe the state the label promises. Effective settings account for
runtime overrides; stored settings should be identified as such. If only
the API key comes from the environment, label that field rather than the
entire endpoint as environment-provided.
- Keep failure visible. Distinguish unknown or unavailable values from
empty, missing, or default values. If partial results are supported, identify
what could not be checked. Follow the project's failure behavior instead of
introducing a fallback merely to produce a message.
- Preserve output contracts. Keep prose and decoration out of JSON, TSV,
and other machine formats. Use existing diagnostic channels for explanations.
Keep paths, IDs, and commands complete where users need to copy them, subject
to the product's redaction rules.
- Give diagnostic views distinct jobs. When a dedicated inspection command
already provides all values and origins, a health summary can focus on
deviations, failures, and their sources, with a pointer to full details.
Without that separate view, preserve the values needed to investigate the
problem. Fifteen normal
field: origin rows can bury the two overrides that
matter, but removing the only available configuration view loses information.
Re-read adjacent labels to catch duplication such as default (default).
Documentation and technical explanations
- Give each page one responsibility. A how-to completes an operation, a
reference defines a contract, a design record explains choices, and a report
presents findings and their basis. Put a section on the page that owns its
reader question. When a page mixes independent tasks, separate them and leave
a useful pointer at the boundary. An overview's responsibility is orientation:
summarize the available paths and link to their details instead of becoming
a second reference manual.
- Keep README sections focused. The introduction identifies the product,
its audience, and its purpose. Positioning explains why someone would choose
it. Quick-start instructions give the shortest complete path to a useful
result, including prerequisites, commands, and essential caveats. Full option
catalogs, architecture explanations, and decision histories belong in their
respective documents, linked from the relevant section. Do not turn a quick
start into an architecture tour or a positioning section into a feature dump.
Keep a compatibility warning beside the step it affects; moving background
detail must not hide a condition needed to follow the instructions safely.
- Keep reasons near the decisions they support. A setup step may need a
short explanation of why a prerequisite matters. A long history of rejected
designs usually belongs in a design record linked from the guide, unless
that history is the page's purpose. Reports need enough method, source context,
assumptions, and limitations for readers to assess the findings.
- Separate summaries from competing specifications. Keep one maintained
source for a detailed contract. A summary explains what the reader needs now;
a second complete field table, default list, or precedence rule creates
another specification to maintain. For example, a README can show a minimal
configuration and link to the full schema instead of copying all seven fields
into another table. Detailed repetition may be necessary for independently
distributed artifacts; check how those copies stay synchronized.
- Plan how changeable facts stay correct. Supported versions, pinned install
commands, and compatibility limits may be necessary. Verify them against the
maintained source, then check what will keep them aligned on the next change:
generation, an existing release check, or an explicit maintenance responsibility.
Avoid adding a second hand-maintained copy of a build ID, migration count, or
current deployment version just to make a page self-contained. Prefer a
pointer or generated value when the reader needs the current answer. Preserve
version constraints that are part of the instructions; do not remove them
simply because versions change.
- Distinguish records from live state. A dated report can record the version
and status actually observed, with the evidence and limits of that observation.
A standing operational guide should direct readers to the command or dashboard
that answers what is running now. A merged change alone does not establish
deployment, and a successful deployment alone does not establish every health
or verification claim.
- Make the next reference useful. Link to the section, command, API entry,
or symbol that answers the reader's question. For implementation details,
PROTOCOL_VERSION is a useful pointer; a repository root leaves the reader
to search again. For normal setup, prefer user-facing instructions. Keep caveats
next to the steps they qualify and preserve working anchors.
Comments and standalone artifacts
Read titles, comments, and deliverables as someone who has not seen the working
conversation. Remove abandoned options and temporary scope qualifications that
make sense only in that conversation. An export button title does not need
"without the bulk-download panel" if readers were never offered such a panel.
Keep exclusions when they explain a real contract, compatibility limit, or
tradeoff the reader needs; preserve history in documents requested to record it.
Comments are most useful for reasons the code does not make apparent: ordering
constraints, upstream defects, compatibility workarounds, and invariants a later
edit could break. Explain an alternative when it is one a maintainer would
reasonably reach for. For example, a comment explaining why a lock must be
released before invoking a callback can prevent a deadlock; "release the lock"
merely repeats the operation. Do not replace that reason with a shorter restatement
of the code. Keep public API documentation and useful algorithm overviews as well.
Claims and evidence
Match the support to the claim. Performance comparisons need applicable
measurements or a cited result with its scope. Compatibility claims need the
relevant implementation or maintained specification. An editorial recommendation
can explain a concrete benefit, such as naming the failed field so the reader
can locate it; recommending clearer wording does not require a benchmark.
Keep observations, hypotheses, preferences, and recommendations distinct.
Preserve user-provided opinions as opinions. Qualify unsupported claims or
explain the gap rather than invent proof or erase useful uncertainty.
Review and verification
In a review, identify the wording, its effect on the reader, and a concrete
correction when the evidence supports one. If the copy already works, say so;
optional preferences should not become required rewrites. For an editing task,
make the requested edits and explain consequential choices only as needed.
Check meaning, terminology, formatting, and affected links. When behavior
changes, search for dependent help text, errors, documentation, and bundled
skill descriptions that need the same update. Keep catalog and localization
entries in sync where applicable; avoid turning a small edit into a general audit.
Use the project's relevant checks. When output behavior changes, cover success
and failure: parse machine formats and check channels; for human messages,
assert the relevant information without relying on incidental wrapping or color.
1---2name: product-writing3description: Write, edit, or review UI copy, CLI messages, help text, code comments, and technical documentation covering product behavior, errors, status, setup, compatibility, or technical results.4license: Apache-2.05---67# Product Writing89Help the reader understand what is happening and what they can do next.1011## Work from the task1213Use only the sections relevant to the requested copy. Preserve the user's14meaning, terminology, audience, and requested format. Follow existing product15conventions where they help readers recognize controls, commands, and states.16A wording task does not itself authorize changes to product behavior or a17reorganization of the documentation.1819Ground behavioral claims in supplied facts, the relevant implementation or20specification, or an observed result. When a fact cannot be verified, identify21that uncertainty where it matters and complete the parts that are supported.22Do not invent behavior or a cause to make the text sound complete.2324## Interface copy, errors, and help2526- **Name the action or state accurately.** Distinguish saving a setting from27 testing a connection, accepting a request from completing a job, and partial28 success from full success. For example, a queued export should not announce29 that a file is ready to download.30- **Make recovery useful.** Identify what failed and the relevant input or31 operation. Include a next step when it is known and actionable. An unknown32 network failure does not establish that credentials are wrong. Put detail33 in the message, an expanded view, or a specific help link as the interface34 allows; an error need not fill a fixed template.35- **Preserve meaningful distinctions.** Keep prerequisites, limits, and36 consequences that affect the reader's decision. Use the product's names for37 controls and commands. Do not shorten away which item an action affects or38 imply that an irreversible action is temporary.3940## Status and diagnostic output4142- **Describe the state the label promises.** Effective settings account for43 runtime overrides; stored settings should be identified as such. If only44 the API key comes from the environment, label that field rather than the45 entire endpoint as environment-provided.46- **Keep failure visible.** Distinguish unknown or unavailable values from47 empty, missing, or default values. If partial results are supported, identify48 what could not be checked. Follow the project's failure behavior instead of49 introducing a fallback merely to produce a message.50- **Preserve output contracts.** Keep prose and decoration out of JSON, TSV,51 and other machine formats. Use existing diagnostic channels for explanations.52 Keep paths, IDs, and commands complete where users need to copy them, subject53 to the product's redaction rules.54- **Give diagnostic views distinct jobs.** When a dedicated inspection command55 already provides all values and origins, a health summary can focus on56 deviations, failures, and their sources, with a pointer to full details.57 Without that separate view, preserve the values needed to investigate the58 problem. Fifteen normal `field: origin` rows can bury the two overrides that59 matter, but removing the only available configuration view loses information.60 Re-read adjacent labels to catch duplication such as `default (default)`.6162## Documentation and technical explanations6364- **Give each page one responsibility.** A how-to completes an operation, a65 reference defines a contract, a design record explains choices, and a report66 presents findings and their basis. Put a section on the page that owns its67 reader question. When a page mixes independent tasks, separate them and leave68 a useful pointer at the boundary. An overview's responsibility is orientation:69 summarize the available paths and link to their details instead of becoming70 a second reference manual.71- **Keep README sections focused.** The introduction identifies the product,72 its audience, and its purpose. Positioning explains why someone would choose73 it. Quick-start instructions give the shortest complete path to a useful74 result, including prerequisites, commands, and essential caveats. Full option75 catalogs, architecture explanations, and decision histories belong in their76 respective documents, linked from the relevant section. Do not turn a quick77 start into an architecture tour or a positioning section into a feature dump.78 Keep a compatibility warning beside the step it affects; moving background79 detail must not hide a condition needed to follow the instructions safely.80- **Keep reasons near the decisions they support.** A setup step may need a81 short explanation of why a prerequisite matters. A long history of rejected82 designs usually belongs in a design record linked from the guide, unless83 that history is the page's purpose. Reports need enough method, source context,84 assumptions, and limitations for readers to assess the findings.85- **Separate summaries from competing specifications.** Keep one maintained86 source for a detailed contract. A summary explains what the reader needs now;87 a second complete field table, default list, or precedence rule creates88 another specification to maintain. For example, a README can show a minimal89 configuration and link to the full schema instead of copying all seven fields90 into another table. Detailed repetition may be necessary for independently91 distributed artifacts; check how those copies stay synchronized.92- **Plan how changeable facts stay correct.** Supported versions, pinned install93 commands, and compatibility limits may be necessary. Verify them against the94 maintained source, then check what will keep them aligned on the next change:95 generation, an existing release check, or an explicit maintenance responsibility.96 Avoid adding a second hand-maintained copy of a build ID, migration count, or97 current deployment version just to make a page self-contained. Prefer a98 pointer or generated value when the reader needs the current answer. Preserve99 version constraints that are part of the instructions; do not remove them100 simply because versions change.101- **Distinguish records from live state.** A dated report can record the version102 and status actually observed, with the evidence and limits of that observation.103 A standing operational guide should direct readers to the command or dashboard104 that answers what is running now. A merged change alone does not establish105 deployment, and a successful deployment alone does not establish every health106 or verification claim.107- **Make the next reference useful.** Link to the section, command, API entry,108 or symbol that answers the reader's question. For implementation details,109 `PROTOCOL_VERSION` is a useful pointer; a repository root leaves the reader110 to search again. For normal setup, prefer user-facing instructions. Keep caveats111 next to the steps they qualify and preserve working anchors.112113## Comments and standalone artifacts114115Read titles, comments, and deliverables as someone who has not seen the working116conversation. Remove abandoned options and temporary scope qualifications that117make sense only in that conversation. An export button title does not need118"without the bulk-download panel" if readers were never offered such a panel.119Keep exclusions when they explain a real contract, compatibility limit, or120tradeoff the reader needs; preserve history in documents requested to record it.121122Comments are most useful for reasons the code does not make apparent: ordering123constraints, upstream defects, compatibility workarounds, and invariants a later124edit could break. Explain an alternative when it is one a maintainer would125reasonably reach for. For example, a comment explaining why a lock must be126released before invoking a callback can prevent a deadlock; "release the lock"127merely repeats the operation. Do not replace that reason with a shorter restatement128of the code. Keep public API documentation and useful algorithm overviews as well.129130## Claims and evidence131132Match the support to the claim. Performance comparisons need applicable133measurements or a cited result with its scope. Compatibility claims need the134relevant implementation or maintained specification. An editorial recommendation135can explain a concrete benefit, such as naming the failed field so the reader136can locate it; recommending clearer wording does not require a benchmark.137138Keep observations, hypotheses, preferences, and recommendations distinct.139Preserve user-provided opinions as opinions. Qualify unsupported claims or140explain the gap rather than invent proof or erase useful uncertainty.141142## Review and verification143144In a review, identify the wording, its effect on the reader, and a concrete145correction when the evidence supports one. If the copy already works, say so;146optional preferences should not become required rewrites. For an editing task,147make the requested edits and explain consequential choices only as needed.148149Check meaning, terminology, formatting, and affected links. When behavior150changes, search for dependent help text, errors, documentation, and bundled151skill descriptions that need the same update. Keep catalog and localization152entries in sync where applicable; avoid turning a small edit into a general audit.153154Use the project's relevant checks. When output behavior changes, cover success155and failure: parse machine formats and check channels; for human messages,156assert the relevant information without relying on incidental wrapping or color.