Contract: brand-contract v1

# Channels

One record per surface. `Register` is deltas against the five axes in
`voice.md` — a register moves the axes, never the invariants.

`Forbidden` always carries both halves, even when one is `none`. Platform
physics and brand choice written on one line become indistinguishable within
a quarter, and then nobody can tell which is safe to revisit when the
platform changes.

Delete the surfaces this product does not have. Do not rename one: the
linter and the audit address surfaces by the names in the contract.

---

## Product surfaces

### primary action

```
Register:   <humor -1>
Format:     <verb phrase naming the outcome; one primary per screen>
Limits:     <24 characters>
Forbidden:  physics: none | brand: <"Submit", "OK", bare nouns>
CTA:        <this surface is the CTA>
Proof:      none
Locales:    <coefficient applies to the character limit>
```

### error

```
Register:   humor -3, density +1, distance -1
Format:     what happened, what was not affected, one next step
Limits:     <…>
Forbidden:  physics: none | brand: humor, "unexpected", blame, bare codes
CTA:        the recovery action
Proof:      none
Locales:    <…>
```

### empty state

```
Register:   <unchanged>
Format:     what belongs here, why it is worth it, the one starting action
Limits:     <…>
Forbidden:  physics: none | brand: apology, "Nothing here yet" alone
CTA:        one
Proof:      none
Locales:    <…>
```

### paywall and upgrade

```
Register:   humor -3, distance +1
Format:     what is sold, what it costs, what happens at term end, how to leave
Limits:     <…>
Forbidden:  physics: none | brand: humor, manufactured urgency, hidden terms
CTA:        one primary, one way out
Proof:      one sourced figure
Locales:    <legal differences per locale>
```

### destructive confirm

```
Register:   humor -3
Format:     object, consequence, reversibility; verb repeats the action
Limits:     <…>
Forbidden:  physics: none | brand: humor, "OK" as the confirming verb
CTA:        the destructive verb
Proof:      none
Locales:    <…>
```

<add the remaining product surfaces this product has: loading,
success/toast, onboarding, billing and receipts, settings and legal,
transactional email and push, docs and help>

---

## Marketing surfaces

### landing hero

```
Register:   confidence +1, density -1
Format:     one headline, one subhead, one primary action
Limits:     title 60, meta description 160
Forbidden:  physics: none | brand: superlatives with no facts.md row
CTA:        one, verb plus outcome
Proof:      one number, sourced
Locales:    <coefficient applies to both limits>
```

### X

```
Register:   density +1, distance -1
Format:     one idea; threads 5-12 posts, each standing alone
Limits:     280
Forbidden:  physics: link in body suppresses reach; >2 hashtags penalised;
            editing within 30 minutes resets distribution
            | brand: <engagement bait, fake urgency>
CTA:        <in the first reply, not the post>
Proof:      <one figure, sourced>
Locales:    <…>
```

### Reddit

```
Register:   distance -2, humor +1
Format:     a statement, not a headline; the comments are the content
Limits:     <per subreddit>
Forbidden:  physics: <subreddit rules outrank everything here>
            | brand: undisclosed affiliation, CTA of any kind
CTA:        none
Proof:      <first-hand only>
Locales:    <…>
```

<add the remaining marketing surfaces this product uses: landing body,
pricing, blog, changelog, LinkedIn, HN and Product Hunt, App Store,
Google Play, ads, lifecycle email>
