

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 [#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 [#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 [#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 [#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.

