Health
“Done” is fidelity — that a real product can be fully described, every fact with a place to go — not coverage of a checklist. Coverage is a measure here, never the goal.
L3 predicate frontier
Every kind must earn its place by answering a question its parent does not. Kinds that don’t are the worklist — they should fold into their parent as a value.
Earn their place 99/99
98 differentiated · 1 root
Should fold 0
the frontier is clean.
L11/L13 content debt
A vocabulary with no values yet is content debt, never a gap in the language — the question exists and is answerable the moment a value is added.
No empty vocabularies.
Growing by nature (never declared complete): Brands, Certifications.
the natural reading prose coverage
The plain-English reading is generated, not written. It phrases any kind built from the existing vocabulary on its own; the only thing a human ever adds is one phrasing rule when a brand-new kind of attribute appears — a new unit or an enum that needs its own verb. This lists exactly those, so growth is a short checklist, never a hunt for regressions.
- customer eligibility (first on product) — many-valued enum falls to the generic verb "offers" (add a pattern to tokenVerb)
- fulfilment channel (first on product) — many-valued enum falls to the generic verb "offers" (add a pattern to tokenVerb)
- instalment plan (first on product) — measured in an unrecognised unit dimension 'currencies' → no unit phrase (add it to DIM_UNIT)
- pattern (first on product) — many-valued enum falls to the generic verb "offers" (add a pattern to tokenVerb)
- purchase gate (first on product) — many-valued enum falls to the generic verb "offers" (add a pattern to tokenVerb)
- recurring price (first on product) — measured in an unrecognised unit dimension 'currencies' → no unit phrase (add it to DIM_UNIT)
- review highlight tag (first on product) — many-valued enum falls to the generic verb "offers" (add a pattern to tokenVerb)
- shipping rate (first on product) — measured in an unrecognised unit dimension 'currencies' → no unit phrase (add it to DIM_UNIT)
- shipping restriction (first on product) — many-valued enum falls to the generic verb "offers" (add a pattern to tokenVerb)
- size (first on product) — many-valued enum falls to the generic verb "offers" (add a pattern to tokenVerb)
- wheel count (first on waste-bin) — measured in an unrecognised unit dimension 'wheel-count-units' → no unit phrase (add it to DIM_UNIT)
- seat count (first on seat) — measured in an unrecognised unit dimension 'seat-count-units' → no unit phrase (add it to DIM_UNIT)
- grating grade (first on grater) — many-valued enum falls to the generic verb "offers" (add a pattern to tokenVerb)
a measure, not the goal coverage
// read live from the pool (backend/db/pool.db) at build time. These counts are the real state of the language and grow as it is seeded — the structure is exactly what the engine enforces.