Oso Voice Clinical Vision & Principles
This is the document the app is audited against. It is published as written, including the amendment log, so you can see what changed and why.
Mission & target users
Oso Voice is an AAC app for children with autism spectrum disorder and speech delays, roughly ages 3–12 (docs/archive/2025-original-docs/AAC_Project_Requirements_Document.md; no newer doc revises this range). Its secondary users are the adults who configure it and communicate through it alongside the child: parents/caregivers, and the SLPs and school teams who prescribe, set up, and coach its use (docs/archive/2025-original-docs/AAC_Project_Requirements_Document.md). Success is measured in the child’s communication outcomes — more successful requests, comments, and social initiations, reached with less navigation effort and less dependence on an adult finding the right word for them — not in app-engagement metrics. This deliberately supersedes the 2025 PRD’s daily-active-use and session-duration success criteria (§6), which the clinical-design ADRs and research produced since 2026-07-07 have effectively replaced with evidence-grounded design commitments rather than engagement targets. The app exists because commercial AAC systems are simultaneously too expensive and too rigid for many families and school teams to adopt or extend (docs/archive/2025-original-docs/AAC_Project_Requirements_Document.md), and Oso Voice aims to close that gap without cutting the clinical corners that make AAC work. The product’s public name and mark (Oso Voice, the O-bear; docs/decisions/014-oso-voice-name-and-brand-mark.md) are chosen to respect the user across the years they keep the system: a name and a mark an older child or adult can carry without embarrassment, never a toy-grade or age-banded identity, because an AAC system is kept for years and outlasts the 3–12 target range.
Clinical principles
-
Core vocabulary first — A small set of high-frequency words (pronouns, verbs, descriptors, core requests) sits in fixed, always-reachable positions so a child can build most everyday utterances with minimal navigation, before any fringe/topical vocabulary is reached. (source: docs/archive/2025-original-docs/AAC_Project_Requirements_Document.md; docs/research/2026-07-28-aac-navigation-research.md)
-
Motor-plan / position stability as a hard constraint — Once a symbol occupies a grid position, within a chosen grid preset, no later change (new vocabulary, layout update) may relocate it; vocabulary grows by revealing hidden cells, never by reshuffling existing ones; it also grows by caregiver-added words appended to the next free slot of a subfolder, which pin that slot for life on that device; a later package append to the same subfolder yields to the next free slot without a layout notice, since the package word has no learned position there (ADR 013). Caregiver overrides change a cell’s picture, printed label and spoken form only — never its key, position, navigation role or folder. Across presets stability is ordinal, not positional: curated order is preserved, but on-screen position moves with column count and page boundaries move at every preset change, so a preset change after adoption is a warned, one-time clinical re-baseline event rather than a setting. Across the three 3-column phone presets, moving to a larger preset only reveals: every word on a grid’s first page keeps its row and column and more of the same sequence appears below it (the Home trio and Next slot stay bottom-right and so move with row count); moving to a smaller preset demotes trailing words to later pages and is a re-baseline. Tablet presets carry no such guarantee. Exceptions are permitted only as an explicit, dated ADR with a shown warning and a pre-entrenchment justification — never as silent reinterpretation; ADR 008 records the first such exception (the one-time mixed-Home/toolbar-freeze transition) and ADR 009 the second (the v2.4.0 transition: removing the “places we go” folder cell from the Objects directory, the Feelings/Descriptors folder swap in the Words directory, and the last-word relocations on exactly-full grids at 3×5 and 4×4 when the bottom-right slot became reserved), and ADR 010 the third (2026-10-04: the Feelings and People folder cells relocate, and the Feelings trailing order is permuted, when landing anchors ship), all pre-entrenchment, expiring at first external install; all predate any child user, and each restores full compliance going forward. (source: docs/decisions/006-motor-plan-position-stability.md; docs/decisions/008-mixed-home-page.md; docs/decisions/009-semantic-subfolders-no-alphabetical-splits.md; docs/decisions/010-navigation-geometry-and-folder-presentation.md; docs/decisions/013-caregiver-custom-words.md; docs/research/2026-07-21-aac-grid-navigation-competitive-research.md; docs/research/2026-08-09-mixed-home-page-research.md; docs/research/2026-10-04-adr-010-clinical-review.md)
-
Flat, shallow navigation over deep folder hierarchies — Navigation depth costs a child more accuracy and speed than a larger symbol count on one page does; adding folder levels moves against the evidence, not with it. (source: docs/research/2026-07-28-aac-navigation-research.md)
-
Sensory-safe defaults, not just high contrast — A calibrated low-arousal palette (“Gentle Mode”) ships alongside the standard palette from v1, because maximizing contrast is not universally better for this population and can cause eye strain or sensory overload for hypersensitive-vision autistic users. (source: docs/decisions/003-gentle-mode-sensory-toggle.md)
-
Color is a search/navigation aid, not decoration — Modified Fitzgerald Key part-of-speech color (five keys: pronoun, verb, noun, descriptor, and the Modified Fitzgerald social-words-and-prepositions key in pink — social phrases, prepositions, conjunctions and time words; adopted 2026-10-10 by ADR 002 amendment so no word class renders unaccented) renders as a border accent, never a saturated cell fill, on the child-facing default; grammar color and “this leads somewhere else” navigation color are kept visually distinct languages. (source: docs/decisions/002-mfk-color-coding-as-accent.md; docs/research/2026-07-20-cell-color-formatting-research.md)
-
Literal, concrete iconography, never decorative or emoji chrome — UI chrome uses one consistent icon family at literal, concrete glyphs (not abstract shapes), paired with a text label, because pre-literate/early-reading users need icons that add real value, not whatever an emoji happens to depict. (source: docs/decisions/004-no-emoji-custom-icon-system.md)
-
Typography engineered for reading ease, not aesthetics — Lexend app-wide, no italics, no all-caps body/label text, 16px minimum body size — chosen for its reading-stress research grounding given autism’s frequent co-occurrence with ADHD and dyslexia. (source: docs/decisions/007-typography-lexend.md)
-
Home composition mirrors developmental reality, not adult taxonomy — Core words fill the center of the Home grid and navigation lives at the periphery; a home page made only of taxonomic category folders is the one arrangement the evidence would predict to be hardest for young children, who don’t organize vocabulary taxonomically. Shipped as the mixed Home page (curated core words plus a fixed 3-folder trio). A Home-trio category’s landing page may carry a curated set of anchor words ahead of its subfolders, which follow as one contiguous trailing block (ADR 010), narrowing the “every other grid stays pure” rule of ADR 008; non-trio directories stay pure. (source: docs/research/2026-08-09-mixed-home-page-research.md; docs/decisions/008-mixed-home-page.md; docs/decisions/010-navigation-geometry-and-folder-presentation.md)
-
Words should scaffold what’s offered next, without the system choosing the utterance — Selecting a core word (e.g., a verb) may narrow or contextualize what’s offered next (a verb→category jump, a contextual next-word strip), but any prediction or suggestion stays passive: the final selection always rests with the child or their communication partner. (source: docs/research/2026-07-28-aac-navigation-research.md; docs/archive/2025-original-docs/AAC_Project_Requirements_Document.md — “deterministic outcomes, no AI takeover”)
-
Presume competence — Design and default settings assume the child can learn and use the full system, rather than gating capability behind an adult’s guess at the child’s cognitive level. (ratified 2026-08-15 — adopted in this document; no earlier repo doc)
-
Aided language stimulation — The app should support communication partners modeling language on the device themselves (not only the child operating it solo), since partner modeling is a well-established AAC-acquisition mechanism the repo doesn’t yet name explicitly. (ratified 2026-08-15 — adopted in this document; no earlier repo doc)
-
Communication is never a reward or contingency — Access to the app, to vocabulary, or to specific words must never be gated behind compliance or used as a behavioral reinforcer, including hiding a word the child has learned (ADR 013). (ratified 2026-08-15 — adopted in this document; no earlier repo doc)
-
Protest, rejection, and regulation vocabulary always behaves as plain speech — no word of this class (e.g. no, stop, help, more, again, want, finished/all done, pain/hurt vocabulary, and body-state words such as sick, tired, hungry, thirsty) may carry navigation, jumps, or any secondary behavior; a child’s “stop” or “help” must never move them away from where they said it, and these high-repeat words must never carry an added tap cost. Curation tooling enforces this as a hard block, not a warning. (ratified 2026-08-23 — proposed by the mixed-Home SLP audit; source: docs/research/2026-08-15-mixed-home-clinical-review.md; docs/decisions/008-mixed-home-page.md)
-
Folder labels are semantic and concrete, never alphabetical or literacy-dependent — Every child-facing folder is named for what is inside it in words a pre-literate child can learn (“my family”, “breakfast”, “at home”) and sits one level deep (see principle 3); the app never generates letter-range, numbered, or otherwise literacy-dependent labels. When a grid holds more than one page, it paginates in fixed curated order — highest-frequency and earliest-developing words on the first page, words already reachable from Home or the toolbar yielding first-page slots to words reachable nowhere else — through a next-page control at a constant position (bottom-right) whose label and glyph are never a vocabulary word, and which is shown only when a visible item can be reached beyond it — a Next that opens a page holding only Home is never shown; an all-hidden page that precedes a visible one still chains, so revealing a word can flip the slot from blank to Next but never changes the tap sequence to a later word (ADR 009 §(a) as amended 2026-10-10). Folder cells carry a representative symbol from their own contents inside the neutral-gray folder chrome — never the same symbol as a word cell on the same page — falling back to the generic folder glyph while that word’s artwork is a first-letter stand-in (ADR 010). (ratified 2026-09-07, reworded the same day after the ADR 009 clinical audit — source: docs/decisions/009-semantic-subfolders-no-alphabetical-splits.md; docs/research/2026-09-07-adr-009-clinical-review.md; docs/research/2026-08-23-aac-category-organization-research.md; docs/decisions/010-navigation-geometry-and-folder-presentation.md)
Product principles
-
Platform: React Native + TypeScript, iOS first, Android in Phase 2 — a single codebase with native TTS and accessibility performance. (source: docs/decisions/001-platform-choice.md)
-
iPad is a first-class platform, not a scaled-up phone — Oso Voice ships as a true Universal iOS app with a genuinely adaptive grid, because iPad may be the primary device for this product category (funding/insurance patterns, stigma reduction, dedicated-AAC-hardware precedent), not a secondary form factor. Adaptive means across device classes and named presets, never across rotation: orientation is part of the motor plan, so phones run portrait only and iPads landscape only, and the grid never re-flows when a device turns (ADR 012). (source: docs/decisions/005-ipad-universal-adaptive-layout.md; orientation clause added 2026-10-11 — docs/decisions/012-orientation-is-part-of-the-motor-plan.md)
-
Offline-first — Core communication (navigation, stored vocabulary, speech output) must work with zero internet dependency; connectivity is only for optional content updates or backup. A speech failure is never silent: when the app cannot speak, the screen tells the communication partner so and the message stays readable, so the partner can voice it; failures of the speech path are shown, never only logged (generalising ADR 011) (2026-10-14 production-readiness review). (source: docs/archive/2025-original-docs/AAC_Project_Requirements_Document.md)
-
Named tiers, not freeform sliders — Grid density, sensory palette, and comparable settings are offered as a small set of clinician-vetted named options, never continuous or fully freeform customization, because unconstrained editing has a documented history of degrading AAC layouts when non-expert caregivers make changes without understanding the tradeoffs. (source: docs/decisions/002-mfk-color-coding-as-accent.md; docs/decisions/003-gentle-mode-sensory-toggle.md; docs/decisions/006-motor-plan-position-stability.md)
-
Response time is a clinical requirement, not a performance nice-to-have — Symbol selection and page navigation must stay fast enough that the interface itself never becomes the bottleneck in a real conversational exchange. (source: docs/archive/2025-original-docs/AAC_Project_Requirements_Document.md — sub-500ms response time requirement)
-
Nothing clinically essential is ever gated, and the app never stops speaking — Oso Voice is one paid purchase (ADR 016) that includes everything the app does: core and fringe vocabulary, text-to-speech output, the position-stable, low-friction navigation described above, caregiver custom words, backup, and every vocabulary update; there is no free tier and no feature inside the app is tied to payment. Any future optional add-on (cloud sync, a licensed premium voice, bulk professional tooling) may add convenience and must be cancellable without touching the communication floor; no pricing model, now or later, may disable speech or vocabulary a user has learned. A time-boxed free trial twin, if ever built, announces its end date from the first launch and keeps backup working after expiry (ADR 016 §d). The child’s selected voice is part of their identity: the app never replaces it on its own except when that voice is no longer offered on the device, and then with a shown one-time notice; voice-quality guidance is an offer the family can decline, never a comparison that frames the accepted voice as wrong (ADR 011). (ratified 2026-08-15 — adopted in this document; no earlier repo doc; voice sentence added 2026-10-11 — source: docs/decisions/011-voice-roster-curation-and-never-auto-switch.md; re-derived for the paid-up-front model 2026-11-07 — source: docs/decisions/016-pricing-paid-up-front.md)
Non-goals
- Not a therapy-delivery platform or a substitute for a treating SLP — Oso Voice supports communication; it does not diagnose, prescribe therapy, or replace clinical services. (ratified 2026-08-15 — adopted in this document; no earlier repo doc, restated as a scope limit in the SLP artifacts, which derive from this document)
- Not a diagnostic or assessment tool. (ratified 2026-08-15 — adopted in this document; no earlier repo doc)
- Not an engagement-maximizing app — daily-active-use and session-length are not design targets; this supersedes the 2025 PRD’s engagement-style success metrics (§6), which predate the project’s clinical-design ADRs. (ratified 2026-08-15 — adopted in this document; no earlier repo doc)
- Not a fully open, continuously end-user-customizable layout tool — the 2025 PRD’s planned “drag-and-drop layout editor” (Phase 2) is superseded by the position-stability constraint: customization is bounded to named tiers, not freeform reflow of core vocabulary positions. (source: docs/decisions/006-motor-plan-position-stability.md)
- Not, in v1, a switch-scanning or eye-gaze input device — those access methods remain roadmapped, later-phase work, not part of the current clinical-design baseline. (source: docs/archive/2025-original-docs/Oso Voice_Development_Roadmap.md — Phase 3 “Advanced Accessibility”)
Open tensions
- Design center vs. actual audience. The clinical design center is children roughly 3–12 (the vocabulary, grid and navigation evidence this document rests on), but the product is not age-banded: ADR 015 lists it in a regular store category for AAC users of any age, and Adam expects adults to use it. Whether an adult register of vocabulary (work, relationships, health, independence) belongs in the package, and whether anything in the grid or navigation evidence changes for adult users, is an open
/slpquestion; nothing in the design changes until it is answered. (source: docs/decisions/015-app-store-category-and-privacy-posture.md) - Mixed Home page vs. v1’s “never a mix” rule — resolved. Home now mixes curated core words with a fixed 3-folder trio, superseding “never a mix” for Home only (every other grid stays pure). See ADR 008 (docs/decisions/008-mixed-home-page.md) for the full ruling, including the dated ADR 006 exception for the one-time transition and the ADR 002 folder-chrome resolution. Remaining open item: the dynamic next-word strip (see below) — deferred to its own future spec.
- Correlation mechanics — verb jumps shipped; the next-word strip remains unbuilt. Verb→category jumps (with a protest-vocabulary denylist) shipped as part of the mixed-Home page (ADR 008). The contextual next-word strip — a prediction system, not static curation — is deliberately out of scope for that spec and remains the next open mechanic; today’s grid is otherwise static regardless of what was just selected. (docs/research/2026-07-28-aac-navigation-research.md; docs/decisions/008-mixed-home-page.md)
- The freemium clinical boundary — resolved. The 2025 PRD’s pricing tiers were never re-derived from clinical reasoning, and the 2026-08-15 principle 6 described what a free tier must not withhold. ADR 016 (docs/decisions/016-pricing-paid-up-front.md) replaced the model: one paid purchase, no tiers, nothing gated, the app never stops speaking; principle 6 was reworded to match. The remaining open question is whether a free trial twin is ever built, under the constraints ADR 016 §(d) sets.
- Grid-size configurability is contested, and Oso Voice’s approach is unvalidated either way. Oso Voice’s caregiver-selectable presets sit between TD Snap’s fixed three-preset model and AssistiveWare’s newer single-fixed-grid philosophy; no controlled evidence favors either side of that split, and orientation/rotation behavior for position stability specifically has zero validating evidence from any competitor examined. (docs/research/2026-07-21-aac-grid-navigation-competitive-research.md)
- Cross-preset stability is ordinal, not positional — resolved. The shipped grid-size mechanism keeps curated order across presets but relocates on-screen position across column counts and moves page boundaries at every preset change, which principle 2’s “density tier” clause did not allow. Resolved 2026-10-04 by ADR 010 (docs/decisions/010-navigation-geometry-and-folder-presentation.md): principle 2 is scoped to within a chosen preset; cross-preset stability is ordinal; no canonical-coordinate master grid will be pursued; a preset change is a warned re-baseline event; phone presets carry an upward-only, words-only positional guarantee. The Settings re-baseline warning copy shipped on the same branch (
BrightVoiceApp/src/screens/SettingsScreen.tsx, commit 3e7566a), so the condition the audit set is met. Documentation rule: documents say “position-stable within a chosen preset”, may state the phone-class words-only upward guarantee exactly as principle 2 now does, and must not claim positional stability across tablet presets or between device classes. (Raised by the slp-reviewer audit of the Studio About page, 2026-09-20; ratified by Adam 2026-10-04.)
Amendment log
- 2026-08-15 — initial draft synthesized from ADRs 001–007, the research corpus, and the archived 2025 spec; ratified by Adam on 2026-08-15.
- 2026-08-23 — amended for ADR 008 (mixed Home page): resolved the mixed-Home open tension with a pointer to ADR 008; added the exception-mechanism note (ADR + warning + pre-entrenchment justification, never silence) to the position-stability principle (2); added ADR 008 as a source on principle 8; added standing principle 13, protest/rejection/regulation vocabulary always behaves as plain speech; updated the correlation-mechanics open tension to reflect verb jumps shipping and the next-word strip remaining open.
- 2026-09-07 — amended for ADR 009 (semantic subfolders, no alphabetical splits): added standing principle 14, folder labels are semantic and concrete, never alphabetical or literacy-dependent; noted ADR 009’s second dated ADR 006 exception (Objects directory cell removal, pre-release).
- 2026-09-07 (later) — principle 2’s ADR 009 exception widened to its full scope (three relocation classes) with the first-external-install expiry, per the ADR 009 clinical audit (docs/research/2026-09-07-adr-009-clinical-review.md); a principle-14 rewording proposed by that audit is pending Adam’s decision.
- 2026-09-07 (later still) — principle 14 reworded per the audit and Adam’s ratification: no hardcoded UI string, first-page priority rule stated, next-page control label never a vocabulary word; representative folder symbols left as an open question for a future ADR.
- 2026-10-04 — added the open tension “Cross-preset stability is ordinal, not positional” (principle 2 holds only within a chosen preset; resolve by ADR 010), as proposed by the slp-reviewer audit of VoicePack Studio’s About page (2026-09-20) and ratified by Adam on 2026-10-04. Principles unchanged.
- 2026-10-04 (later) — amended for ADR 010 (navigation geometry and folder presentation): principle 2 scoped to within a chosen preset, with the directional phone-class guarantee and ADR 010 recorded as the third dated ADR 006 exception; principle 8 note on Home-trio landing-page anchors; principle 14 open question closed (representative folder symbols with the non-collision rule and stand-in fallback); the ordinal/positional open tension resolved. Provenance: /slp consult with Adam 2026-10-04; Adam approved the consultant’s recommendations conditional on slp-reviewer alignment; the slp-reviewer audit (docs/research/2026-10-04-adr-010-clinical-review.md) returned ALIGNED WITH CONCERNS with all seven concerns adopted into the ADR before this amendment.
- 2026-10-10 — principle 13’s example list clarified to name finished/all done and the body-state words (sick, tired, hungry, thirsty) as members of the class the curation lint guards, per the slp-reviewer audit of the package v2.5.0 spec (docs/research/2026-10-10-package-v2.5.0-clinical-review.md); ratified by Adam 2026-10-10. Principles otherwise unchanged.
- 2026-10-10 (evening) — amended for the ADR 009 §(a) reserved-slot condition (principle 14: Next only when a visible item follows) and the ADR 002 fifth key (principle 5: pink for social words/expressions); both ratified by Adam after an
/slpconsult on the v2.5.0 smoke-pass findings and audited byslp-reviewer(ALIGNED WITH CONCERNS, six adopted: the key is the MFK social-and-prepositions key, not “social” alone; precedent is Proloquo2Go, not TD Snap, whose pink marks navigation links; the thin-hop case is accepted, not open). - 2026-10-11 — amended for ADR 011 (voice roster curation and the never-auto-switch rule): product principle 6 gains the voice-identity sentence (the app never replaces a child’s selected voice on its own except when it is no longer offered, and then with a shown notice; guidance is a declinable offer, never a comparison). Provenance: Adam’s ruling to hide the Eloquence family alongside novelty voices (2026-10-11), the slp-reviewer audit of the voice readiness branch (docs/research/2026-10-11-voice-readiness-clinical-review.md, ALIGNED WITH CONCERNS, four adopted before merge) which proposed both the ADR and this sentence; ratified by Adam 2026-10-11.
- 2026-10-11 (later) — amended for ADR 012 (orientation is part of the
motor plan): product principle 2 gains the rotation clause (phones portrait
only, iPads landscape only, the grid never re-flows on rotation; a
caregiver-chosen iPad orientation is deferred). Provenance: Adam’s first
device run showed squished cells in phone landscape;
/slpconsult the same day; ratified by Adam 2026-10-11. No separate audit — a manifest lock with no vocabulary, navigation, symbol or voice effect. - 2026-10-13 — amended for ADR 013 (caregiver custom words): clinical
principle 2 gains the caregiver-append clause (custom words pin their slot,
package appends yield, overrides change picture, printed label and spoken
form only). Provenance:
/slpconsult and seven-vendor survey, slp-reviewer audit (docs/research/2026-10-13-caregiver-custom-words-clinical-review.md, ALIGNED WITH CONCERNS, eleven adopted); approved by Adam 2026-10-13. - 2026-10-13 (later) — amended for ADR 013: clinical principle 12 names hiding a word the child has learned as a forbidden contingency. Same provenance.
- 2026-10-14 — amended: product principle 3 gains the speech-failure-is-never- silent sentence (production-readiness review).
- 2026-11-07 — amended for ADR 014 (Oso Voice name and brand mark): the mission section gains the age-respectful-branding sentence (the name and mark must outlast the 3–12 target range; never toy-grade or age-banded). Provenance: Adam’s rename decision (Bear Buttons rejected on lifespan dignity, 2026-10-15) and logo choice (R1 mark, W3 wordmark, 2026-11-07). No separate audit — a branding decision with no vocabulary, navigation, symbol or voice effect.
- 2026-11-07 (later) — amended for ADR 015 (App Store category and privacy
posture): open tension added, “Design center vs. actual audience” (the
product is not age-banded and adults use it; adult vocabulary register is
an
/slpquestion). Principles unchanged; ADR 015 also records that product principle 6 is to be re-derived by ADR 016 (pricing model) and that no pricing model may stop the app speaking. Provenance: Adam’s answers to the category brief, 2026-11-07. - 2026-11-07 (evening) — amended for ADR 016 (pricing: paid up front at $99.99, one price, nothing gated): product principle 6 re-derived from “what the free tier must never withhold” to “nothing clinically essential is ever gated and the app never stops speaking”; the freemium open tension resolved. Provenance: Adam’s pricing ruling 2026-11-07 after the options in ADR 015’s peer-pricing verification. No separate audit — no vocabulary, navigation, symbol or voice effect.
- When amending: append a dated entry here and update the front-matter date field (the /slp skill and slp-reviewer flag this doc as possibly stale if date is >6 months old).