whynot-design/designbook/_ds_manifest.json

1 line
12 KiB
JSON
Raw Normal View History

feat(designbook): technology-neutral IR + stack-adapter pipeline (WHYNOT-WP-0002 T01-T06) Author the design language once in the canonical React designbook and project it one-way onto each stack: React -> designbook/ -> ir/ -> adapters/<stack>/. Phase 0 — contracts & governance (T01-T03): - ir/SCHEMA.md + ir/schema/{component,tokens}.schema.json — neutral IR contract (W3C DTCG tokens; React prop -> HTML attribute mapping; non-portable props flagged). - adapters/ADAPTER_CONTRACT.md — inputs, drift-report + parity-result shapes, idempotency rules, CI exit codes (0 ok / 2 usage / 3 drift / 4 parity / 5 internal). - .claude/rules/designbook-propagation.md + DesignSystemIntroduction.md §5.1 — one-way directionality + drift-resolution workflow. T04 — canonical React designbook + the missing pull tool: - The bundled /design-sync skill only PUSHES repo->cloud; it cannot populate designbook/. Added scripts/designbook_pull.py + `make designbook-pull`, which drives the local claude binary headless (acceptEdits) so DesignSync fetch+write runs in a subprocess (contents never hit the orchestrator's context). Pulled 44 files; excludes the _whynot-design-seed/ self-copy. Corrected the docs that wrongly called /design-sync the pull. T05 — IR extractor (scripts/ir-extract.mjs + `make ir`): - ir/tokens.json (80 tokens, DTCG, var() -> {ref} alias resolution); ir/components/*.json (10 contracts parsed from .jsx signatures: enum/boolean/number inference, prop->attr map, style/callback marked non-portable); ir/exemplars/*. T06 — Lit token adapter (adapters/lit/ + `make adapt-lit`): - Full-gen tokens into src/styles/colors_and_type.css :root (marker-bounded, idempotent no-op on re-run; hand-authored type CSS preserved). NOTE: token regen synced Lit to canonical React — fonts IBM Plex -> system stacks and 8 status tokens added. This is a VISUAL change: review and run `pnpm test:visual:update` before merge. Remaining: T07 scaffold+drift, T08 parity, T09 runbook, T10 2nd-adapter. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 12:36:24 +02:00
{"namespace":"WhyNotDesignSystem_fb2eef","components":[],"startingPoints":[],"cards":[{"path":"preview/brand-iconography.html","group":"Brand","viewport":"700x240","subtitle":"Lucide · 1.5px stroke · 16 of set","name":"Brand · Iconography"},{"path":"preview/brand-lockups.html","group":"Brand","viewport":"700x260","subtitle":"Mark + slug · 3 sizes","name":"Brand · Lockups"},{"path":"preview/brand-logo.html","group":"Brand","viewport":"700x220","subtitle":"Primary · inverted · ?! wordmark","name":"Brand · Logo"},{"path":"preview/brand-wireframe-motif.html","group":"Brand","viewport":"700x240","subtitle":"Graph paper + draft stamp","name":"Brand · Wireframe Motif"},{"path":"preview/colors-accent.html","group":"Colors","viewport":"700x200","subtitle":"Annotation yellow — highlighter only","name":"Colors · Accent"},{"path":"preview/colors-borders.html","group":"Colors","viewport":"700x180","subtitle":"Hairline · default · strong","name":"Colors · Borders"},{"path":"preview/colors-neutrals.html","group":"Colors","viewport":"700x290","subtitle":"Ink scale + paper surfaces","name":"Colors · Neutrals"},{"path":"preview/colors-signal.html","group":"Colors","viewport":"700x220","subtitle":"S0S4 ramp, S4 uses accent","name":"Colors · Signal Strength"},{"path":"preview/colors-status-functional.html","group":"Colors","viewport":"700x280","subtitle":"Error / warn / success / info — borders & dots only","name":"Colors · Functional Status"},{"path":"preview/comp-buttons.html","group":"Components","viewport":"700x240","subtitle":"Primary · secondary · ghost","name":"Components · Buttons"},{"path":"preview/comp-empty-placeholder.html","group":"Components","viewport":"700x220","subtitle":"Dashed border · wireframe lines","name":"Components · Empty State"},{"path":"preview/comp-inputs.html","group":"Components","viewport":"700x280","subtitle":"Default · focus · error","name":"Components · Inputs"},{"path":"preview/comp-labels-tags.html","group":"Components","viewport":"700x200","subtitle":"Stage tags · signal dots","name":"Components · Labels & Tags"},{"path":"preview/comp-left-nav.html","group":"Components","viewport":"700x420","subtitle":"Grouped sidebar · active state · minimal variant","name":"Components · Left Navigation"},{"path":"preview/comp-pipeline.html","group":"Components","viewport":"700x180","subtitle":"Lifecycle stage tracker","name":"Components · Pipeline"},{"path":"preview/comp-prototype-card.html","group":"Components","viewport":"700x290","subtitle":"Default + hover (black left bar)","name":"Components · Prototype Card"},{"path":"preview/comp-topnav.html","group":"Components","viewport":"900x160","subtitle":"56px · 1px hairline · ⌘K search","name":"Components · Top Navigation"},{"path":"preview/page-beta-invitation.html","group":"Pages","viewport":"1280x860","subtitle":"Invitation-only · seats, dates, accept / decline","name":"Pages · Closed-beta invitation"},{"path":"preview/page-landing-auth.html","group":"Pages","viewport":"1280x820","subtitle":"Public landing · log in / request access toggle","name":"Pages · Landing — Login & Registration"},{"path":"preview/page-prototype-detail.html","group":"Pages","viewport":"1280x860","subtitle":"Single prototype · pipeline, learning question, signal sidebar","name":"Pages · Prototype detail"},{"path":"preview/page-signals-dashboard.html","group":"Pages","viewport":"1280x860","subtitle":"Market-signal log · filter by strength · evidence rows","name":"Pages · Signals dashboard"},{"path":"ui_kits/whynot-control/index.html","group":"Pages","viewport":"1200x740","subtitle":"Authenticated app · inbox, prototypes, signals, betas, decisions, docs","name":"Pages · User dashboard"},{"path":"preview/spacing-elevation.html","group":"Spacing","viewport":"700x220","subtitle":"Mostly none · wireframe system","name":"Spacing · Elevation"},{"path":"preview/spacing-radii.html","group":"Spacing","viewport":"700x200","subtitle":"0 / 2 / 4 / 8 / pill","name":"Spacing · Radii"},{"path":"preview/spacing-scale.html","group":"Spacing","viewport":"