Interface vocabulary
The closed family set, descriptors, shells, and the guards that fail drift.
Tiny's product screens belong to a closed family set. A new surface picks a family, fills that family's descriptor, and writes view-grammar expressions. Marketing and this documentation family are exemptions: they do not wear a family shell.
Families
The locked set is worklist, record, settings, desk, focused, formPage, search, and reportLibrary. Chrome is data on the descriptor. A shell that accepts ReactNode in an enforcing slot has already lost.
Density is not a slot. Each kind bakes packed or roomy. A roomy page may embed one packed island. A packed page does not become roomy.
Route index and guards
Every product page.tsx is in the thin route index. Marketing, /docs, /early-intervention, and the design showcase are absent by rule. Conforming screens import their kind's shell. Collection bodies use the display kit. A page missing from the index, or a conforming page that skips its shell, fails check-interface-families.
View grammar
System views, personal saved views, sidebar waiting-work doors, desk piles, and reports are the same expression rendered in different chrome. A predicate the filter UI cannot say is a named defect of the engine, never a reason to invent a page.
Owner modules
Identity, names, badge tones, ranked verbs, and the Unknown-versus-dash rule each have one owner. Feature code requests a projection. It does not rebuild the invariant.