Enforce the design contract with syntax-aware token checks #207MergedMaggieAppletonmerged 6 commits intomainfromrefs/pull/207/headConversationFiles changed41 files changed+4715-255StackedSplitapps/web/.impeccable/design.json+5 −0apps/web/DESIGN.md+12 −8apps/web/src/design-audit/controls.css+1 −1apps/web/src/design-audit/surfaces.css+1 −1apps/web/src/icon-tooltip.css+1 −1apps/web/src/local-login.css+1 −1apps/web/src/navigation.css+9 −9apps/web/src/theme.css+2 −2bun.lock+14 −1docs/design-contract.md+126 −0package.json+7 −2packages/editor/src/styles.css+11 −11packages/visuals/src/ui/badge.css+1 −1packages/visuals/src/ui/badge.test.tsx+1 −1packages/visuals/theme.css+1 −0scripts/check-design-contract.ts+21 −0scripts/check-design-record.test.ts+213 −0scripts/check-design-record.ts+24 −0scripts/check-design.mjs+88 −62scripts/check-design.test.ts+145 −0scripts/check-type-scale.test.ts+0 −56scripts/check-type-scale.ts+0 −97scripts/design-contract/adversarial.test.ts+65 −0scripts/design-contract/boundaries.test.ts+68 −0scripts/design-contract/classes.ts+124 −0scripts/design-contract/exceptions.json+10 −0scripts/design-contract/exceptions.test.ts+49 −0scripts/design-contract/exceptions.ts+73 −0scripts/design-contract/exceptions/assets.json+93 −0scripts/design-contract/exceptions/dynamic-editor.json+408 −0scripts/design-contract/exceptions/dynamic-packages.json+576 −0scripts/design-contract/exceptions/dynamic-web.json+324 −0scripts/design-contract/exceptions/preserved-values.json+395 −0scripts/design-contract/javascript.ts+503 −0scripts/design-contract/policy.test.ts+171 −0scripts/design-contract/policy.ts+198 −0scripts/design-contract/record.ts+261 −0scripts/design-contract/scan.ts+174 −0scripts/design-contract/source.test.ts+409 −0scripts/design-contract/source.ts+128 −0scripts/impeccable-baseline.json+2 −1