Composition
A notice isdiataxis: reference: it gives readers authoritative facts
about one change, including its scope, compatibility, timing, and affected
versions. Put the executable migration procedure in a how-to guide or
runbook and link it from the notice.
The additional content_type: notice metadata key (with an underscore)
marks the page’s operational purpose and lifecycle. It is not a fifth
Diátaxis quadrant or one of the composed documentation types. The similarly
named content-type: key (with a hyphen) remains reserved for the four
compositions in
Choose a content type.
Purpose
- Name the change, why it is happening, and when it takes effect.
- Identify every affected persona and state the breaking changes or explicit no-action outcome for each one.
- Give readers an action checklist with versions, configuration, contract, or application changes they can verify before the cutover.
- Preserve the transition behavior readers need to know, such as what happens to in-flight withdrawals, disputes, or transactions.
Required frontmatter
Every notice carries the metadata used by the notice index and site search:keywords.config.yaml; do not reduce the
list to the primary audience. Add audit-source: when source files or
generated artifacts were checked to substantiate the notice.
Required components
Every notice must include:- Summary: one or two paragraphs naming the change, its scope, and the primary action.
- Motivation (
## Why <change>or## Why this is changing): the user-facing reason for the change, with links to durable explanations when more background is useful. - Change scope (
## What's includedor## What is changing): the concrete protocol, contract, component, or product changes. State important exclusions explicitly. - Persona impacts (
## Breaking Changes): one###subsection for each persona in frontmatter. State what breaks, what must change, and what remains compatible. If a persona has no action, say so directly. - Required actions: copy-pasteable configuration, version, contract, or application changes. Use a component table when several releases are involved.
- Timing: the activation mechanism and schedule. For a network upgrade, say whether it has a hardfork activation. Do not invent a timestamp or release version; add it when the canonical source is available.
- Verification and support: tell readers how to verify readiness and where to report a problem.
Writing rules
- Lead with the action and affected reader, not the internal project history.
- Use proper product and protocol names. Preserve command, flag, package, function, and component spelling in code formatting.
- Separate confirmed scope from unknown timing or release data. Do not weaken confirmed changes by labeling the entire notice provisional.
- Link to the canonical runbook or reference rather than duplicating its full procedure.
- Keep persona subsections independently scannable. A reader should not need to infer their action from another persona’s section.
Lifecycle
Add an active notice to both/notices and the matching Network Notices
navigation group in docs.json.
After activation and completion of the required migration window:
- Move the page under
/notices/archive. - Remove its active card and move its navigation entry.
- Record the permanent outcome in the network upgrade registry, using the contract upgrades table when the change has no hardfork.
- Update durable guides and references so they describe the post-upgrade state without relying on the archived notice.