Skip to main content

Reference template

Use this template for a reference page: factual, look-up content a competent reader scans while working — error codes, rate limits, state tables, field glossaries. This is the Reference quadrant in dev-doc-types. Reference is neutral and complete, not instructional. If you catch yourself writing “first, you will need to…”, that is a how-to — move it out and link to it.
Endpoint reference pages are generated from OpenAPI and must not be hand-edited. See generated-content-safety. This template is only for hand-authored reference such as an errors catalog or a limits table.

When to use

  • An error code catalog: “Errors”
  • Limits and quotas: “Rate limits”
  • A state catalog: “Inbox states”
  • A field or term glossary specific to a product area

Always apply

Apply all Foundational skills as you write — writing standards, accessibility, formatting (tables, <ParamField> / <ResponseField>), code examples, terminology. See SKILLS-INDEX.

Template location

assets/template-reference.mdx — structure and placeholders only. Modeled as an errors catalog.

Required structure

PartPurpose
Intro (no heading)One or two factual sentences. Not a concept explanation.
Structured tablesAll the data as tables or definition lists — codes, fields, limits, states.
Scope noteOne line stating what this page does not cover, with a link.

Writing rules

  • Tables over prose for all structured data. A reader scanning for one code should find it without reading sentences.
  • Be complete and consistent. Every row carries the same columns. For errors: status code, one-line meaning, retry-safe flag, and a link to the fix.
  • No instructional prose. Keep the “how to fix it” in a how-to and link to it — do not embed steps here.
  • State the scope. One line on what is out of scope, with a link to where it lives.
  • Flag non-standard behavior loudly. If a field, status code, or response shape deviates from the relevant RFC or common convention, call it out explicitly — ideally in the heading (## Non-standard: ...) — and state what the standard behavior would be. Agents assume the standard unless told otherwise.

Parameter and response-field annotation standard (Gap A)

For any reference page that documents parameters or response fields, every entry must meet this bar — so an agent can use the page as its sole source of truth: Parameter table columns (minimum):
ColumnWhat to show
NameExact key
Typestring, integer, boolean, object, array
RequiredYes / No (never omit)
ConstraintsMin/max, enum values, regex, format — or if none
DefaultExplicit value or
DescriptionOne-line: what it controls and why the reader would set it
Nested objects: Use dotted notation (inbox.visibility_timeout) or a sub-table. Never write “an object with properties” without listing the properties. Response-field table columns (minimum):
ColumnWhat to show
FieldExact key (use dotted notation for nested)
TypeAs above
DescriptionMeaning + what to do with it — not just what it is
Example:
FieldTypeDescription
inbox_idstring (uuid)ID of the created inbox. Pass to every subsequent inbox operation.
statusstring (enum)pendingactiveerror. Poll until active before sending messages.
visibility_timeoutintegerSeconds a leased message is hidden from other consumers. Minimum: 1. Maximum: 43200.
If a field is internal or safe to ignore, say so explicitly.

Errors page convention (Stripe pattern)

The errors reference is the factual catalog; the fix is a how-to. They link to each other bi-directionally:
  • This reference: status code, meaning, retry-safe?, and a link to the matching how-to (error-handling variant).
  • The how-to: the diagnostic steps, linking back here.
Recommended columns for an errors table: Status · Error / code · Meaning · Retry-safe? · How to resolve (link).

Naming

  • Noun-phrase title and headings: “Errors”, “Rate limits”, “Inbox states”.
  • Never a verb phrase — that signals a how-to.

Frontmatter

Set only title and description (see formatting-guidelines).

Before you finish