Loop · Self-improving design system

Catalog in · gaps out · Subframe grows

Design-lab reads Subframe as catalog, proves gaps on real JTBDs, and writes durable identity into the shared contract hub — then human-approved components codify back so the next flow finds them.

Codification flywheel Six stations clockwise around a shared memory hub of DESIGN_SPEC, ds-ledger, and FACTORY-ID placements. Human review is the focal gate. Dashed spokes write state to the hub. Read catalog check-catalog · Subframe Take a JTBD persona + lifecycle Compose surface · tokens · layout Flow && flag provisional + ledger Human review approve / deviate Codify + sync Subframe → packages/ui Contract memory DESIGN_SPEC · ds-ledger placements · FACTORY-ID DASHED = WRITE-BACK · SOLID = CLOCKWISE FLOW

Hub

What accumulates

Every pass appends proven demand: provenance classifications, DS-NNN gaps, and rename-proof FACTORY-IDs. The next /build-flow reads the same hub before inventing anything.

Jurisdiction

Pages stay local

Composition never ships to Subframe (DS-021). Subframe owns theme + primitives + codified domain components; design-lab owns layouts, screens, and flows.