docs(design-system): system of record, builder contract, reference page + raw-color scanner & ratchet baseline (#1430) - #1916
Conversation
…ge + raw-color scanner & ratchet baseline Stands up the frontend design system's written layer per #1430: - docs/memory/design-system.md — system of record: token taxonomy, both-theme rules incl. the dark ink ladder, type/spacing/radius scales, 10-primitive catalog with exact token recipes, the data-loading motion standard (scanline beam + wipe reveal; first load animates, background refresh is invisible), and 28 UI Construction Principles - docs/memory/design-system-contract.md — condensed binding contract to load before any src/frontend change - docs/memory/design-system-reference.html — approved visual spec (self- contained; both themes; live motion demo) - src/frontend/scripts/scan-raw-colors.mjs — raw-color scanner aligned with check-design-tokens.mjs token families - src/frontend/raw-color-baseline.json — ratchet seed at dev@5b28999: 753 raw non-gray / 383 hardcoded colors; counts may only shrink - CLAUDE.md — Rule of Engagement #10 + Memory Files row making the design system the mandatory reference for frontend work Refs #1430 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
/review ReportBranch: No critical findings. It's docs plus one read-only dev script — no backend, auth, SQL, or credentials in scope. I verified the two things that could actually be wrong: the scanner's correctness and whether the committed baseline is real. Verified (with evidence)
Informational[I1] The "ratchet" is measurement-only — there is no comparison/enforcement path (Confidence: 8/10) But
Not blocking (v1 seed is a legitimate scope), but the doc currently promises enforcement the tooling doesn't provide. [I2] Two hand-maintained lists must track [I3] Baseline path prefix is hardcoded (Confidence: 6/10) Clean categoriesSQL / auth / credentials / concurrency — N/A (no backend; read-only script). Frontend/XSS — the HTML is static, self-contained, no user input. Docs staleness — this PR is the docs; Critical: 0 · Informational: 3 · Scope: clean. LGTM as a v1 seed; the one thing I'd change before merge is I1 — either the CLAUDE.md wording or a real |
Summary
Stands up the written layer of the frontend design system (#1430): the system of record, the condensed builder contract, the operator-approved visual reference, and the raw-color scanner with its ratchet baseline. From this PR on,
docs/memory/design-system.mdis the reference point for all frontend work — CLAUDE.md Rule of Engagement #10 makes loading the contract mandatory before touchingsrc/frontend/.What's in it
docs/memory/design-system.mddocs/memory/design-system-contract.mdsrc/frontend/change; includes a 12-item PR self-checkdocs/memory/design-system-reference.htmlsrc/frontend/scripts/scan-raw-colors.mjscheck-design-tokens.mjstoken familiessrc/frontend/raw-color-baseline.jsondev@5b28999— per-file counts may only shrinkCLAUDE.mdWhy now — the drift is live
Re-running the 2026-07-03 audit (recorded in #1430) at
dev@5b28999:.vue: 383 across 24 files (82% in MobileAdmin, FleetGrid, SetupPassword, ReplayTimeline)views/Settings.vue(63),views/enterprise/Audit.vue(39),components/NavBar.vue(37),components/process/TemplateSelector.vue(33),components/settings/TwoFactorPanel.vue(32)Deliberately NOT in this PR (engineering's side of #1430)
frontend-build.ymlas a failing ratchet check (this PR only seeds the baseline + tool).claudesubmodule's implementation playbooks (sprint/implement) should add a "loaddocs/memory/design-system-contract.mdfirst" step for frontend tasks — that repo is separate from this PRRefs #1430
🤖 Generated with Claude Code