ADR-0003: People set resolution by talking to the device

Context

Rafa: "in a perfect situation people would talk to the device to express their preferences in normal english, but the device only listens, doesn't speak."

The memo already treats ordinary speech as a control: "If someone says 'this is off the record' or 'don't quote me on this,' Goldfish treats that as a resolution change and enforces it."

Options considered

Option Outcome
Voice in plain English Chosen
Physical tokens ("fins") Dropped: another object to carry; strangers at a conference won't have one
Dial passed around Kept only as a physical lowering control on the device
NFC from phones Dropped: radio (ADR-0001)

Decision

The asymmetry rule:

Lowering Raising
Wake word none — ordinary phrases count required: "Goldfish, …"
Who anyone in earshot anyone, then everyone gets to object
Timing immediate (N-04) after the objection window (~30 s)
Can apply to the past yes ("forget the last ten minutes") never
Mishearing safe: something is kept at lower resolution must not happen (S-07)

Scope of a lowering: it lasts until "back on the record," or until the conversation ends (long silence or the voices change), then the stream returns to the owner's default and the ring shows the rise.

Intents the parser produces (the protocol's vocabulary):

Consequences

# ADR-0003: People set resolution by talking to the device

- **Status:** accepted (Rafa, 2026-10-12)
- **Date:** 2026-10-12
- **Requirements touched:** P-01, P-05, P-08, P-13, S-07

## Context
Rafa: "in a perfect situation people would talk to the device to express their preferences in normal english, but the device only listens, doesn't speak."

The memo already treats ordinary speech as a control: "If someone says 'this is off the record' or 'don't quote me on this,' Goldfish treats that as a resolution change and enforces it."

## Options considered
| Option | Outcome |
|---|---|
| Voice in plain English | **Chosen** |
| Physical tokens ("fins") | Dropped: another object to carry; strangers at a conference won't have one |
| Dial passed around | Kept only as a physical lowering control on the device |
| NFC from phones | Dropped: radio (ADR-0001) |

## Decision
**The asymmetry rule:**

| | Lowering | Raising |
|---|---|---|
| Wake word | none — ordinary phrases count | required: "Goldfish, …" |
| Who | anyone in earshot | anyone, then everyone gets to object |
| Timing | immediate (N-04) | after the objection window (~30 s) |
| Can apply to the past | yes ("forget the last ten minutes") | never |
| Mishearing | safe: something is kept at lower resolution | must not happen (S-07) |

**Scope of a lowering:** it lasts until "back on the record," or until the conversation ends (long silence or the voices change), then the stream returns to the owner's default and the ring shows the rise.

**Intents the parser produces** (the protocol's vocabulary):
- `lower(rung, from=now)` — "just the decisions", "keep it high level", "off the record"
- `lower(rung=0, from=now−N)` — "forget the last N minutes"
- `cap(rung=3)` — "don't quote me"
- `shorten(stage, days)` — "only keep this for a week"
- `resume()` — "back on the record", "ok, we're on again"
- `raise(rung)` — "Goldfish, keep this word for word" (objection window)
- `object()` — "no", "don't", during a blinking ring

## Consequences
- The parser has to be good, multilingual, and on device. Lowering must be biased toward recall over precision.
- People need to know they can talk to it. That's the light ring's job and the packaging's job.
- See `09-validation/plan.md` for the phrase test set.