Design System Debt
Token parity and design-fidelity migration. Canonical: design-system/tokens.md and design-system-conventions.md. Back to register.
Token guard — current state
scripts/check_design_tokens.shscans the shared + desktop screens for banned patterns and flags: rawColor(0x…)(should beOter.colors.*),MaterialTheme.typography(should beOter.type.*), and magic.dpliterals (advisory).--strictexits non-zero on violations outside the baseline.config/design-token-guard-baseline.txt(the exemption list) is empty — i.e. no files are currently exempt, so the guarded scope is fully migrated toOter.*. Goal already met for current scope; keep it empty.- Action: extend the guard’s scan to any new
shared/screens added during the mobile consolidation so the baseline doesn’t silently regrow.
Token parity — open decisions (TD-06)
There are still three sources of truth (Figma variables, code Oter.*, prototype DesignSystem.md). Code has only the middle “semantic” tier; Figma has three tiers (primitives → semantic → scales). Five DECISIONS remain open per the tokens doc:
- Primitives tier — raw palette (indigo/500, slate/900, …) exists in Figma only, not in code.
- Translucent fills — formalize alpha-based surface fills.
- Light-theme status colors — missing
dangerLight/warningLight/infoLight. - Tag colors — missing
tagYellow/tagPink/tagPurple, plus Eisenhower-subtle(18% alpha) and-outline(35% alpha) badge tokens. - Elevation / motion / z-index / typography — kept code-only; not captured as Figma variables.
Design-fidelity migration
The broader effort to rebuild every screen from a shared primitive kit to match the Oter prototypes is ongoing (tracked via the token guard + design baseline rather than a dedicated doc). It interlocks with the mobile consolidation’s S7 responsiveness work.
Target state
Figma variables and code tokens are 1:1, name-for-name, across all three tiers; the prototype spec is reconciled into one of those two; the guard stays green in --strict across the full shared screen set.