06-protocol/room-agreement.md and stream.schema.json, as the normative description.The rules are a protocol (protocol/), not Goldfish code.
v01/profile/goldfish.profile.json:SPEC.md, RFC 2119 language, conformance classes, implementation status);locales/);These are the four Appendix A fixes. Each is intentional and covered by a vector:
# ADR-0011: Resolution Protocol and the Goldfish profile - **Status:** accepted (2026-10-12) - **Supersedes:** `06-protocol/room-agreement.md` and `stream.schema.json`, as the normative description. ## Decision The rules are a protocol (`protocol/`), not Goldfish code. - **Goldfish** is one profile, `v01/profile/goldfish.profile.json`: - its parameters (specification); - its grammars and wake word (localisation); - bindings for its hardware: ring, key chains, NFC, RTC. - **The protocol** has its own: - spec (`SPEC.md`, RFC 2119 language, conformance classes, implementation status); - JSON Schemas (profile, locale, event); - grammars as data (`locales/`); - conformance vectors; - two dependency-free reference implementations (Python and JavaScript) that must pass the same vectors. ## Why - Resolution Co's mission line is "privacy is an interoperable protocol across aware hardware and software". - Other recorders can only adopt the rules if the rules don't live inside one device's firmware. - The split also exposed four inconsistencies between the old modules (SPEC Appendix A). A written standard with shared vectors prevents that kind of drift. ## What changed in behaviour These are the four Appendix A fixes. Each is intentional and covered by a vector: 1. A room lowering caps everyone, including a voice that had raised itself. 2. A self-lowering never raises. 3. "Back on the record" waits through the objection window. 4. Shortening applies to outcomes too. ## Alternatives considered - **SRGS grammars instead of the RP JSON grammar format:** more standard, but heavier, and unfamiliar to most implementers. An SRGS binding can come later. - **ODRL policies as the wire format:** good for describing retention duties, but too general for the live rules. Mapped in SPEC §11 and §12 instead.