Foundation

Voice / content

Words as system

RequiredContent
ContractVoice / content
Job
Words as system
Requirement
must specify
States / rules
Voice vs tone; pillars with sounds-like / doesn’t; error / empty / loading / disabled / confirm / toast / status; label vs placeholder; button verbs; casing; truncation; relative time; icon-only names; honest chrome; product copy bans
Specified means
Pillars + default strings, not adjectives
Hardest context
Mock data that reads live
Example

“Publish failed — try again”

Counter-example

“Oopsie!” / “Submit” vs “Save” per page

How this lives in Building Blocks

Representation: Shared content foundation + product-local voice.

Building Blocks can provide content-system structure, state-message coverage, naming rules, and accessibility expectations. Each product still needs its own voice, banned phrases, domain vocabulary, and real state strings.

Do not specify the easy case only.

The source checklist’s hardest-context test is part of what “specified” means: Mock data that reads live.

On-spec signal

“Publish failed — try again”

Failure signal

“Oopsie!” / “Submit” vs “Save” per page

Catalog connection

The product-local Catalog should show this row’s actual state for that product using the Catalog contract. Building Blocks documentation can define the baseline, but it does not make a product’s row Specified, Designed, or In code by itself.

See the Catalog contract →