# CLAUDE.md — Maestro Design System Engineering conventions for working in this design-system repo. Read alongside `README.md` (design foundations) and `SKILL.md` (the design language quick-start). The phosphor-console aesthetic and the rules in SKILL.md are binding — this file covers **how the code is organized and how to extend it correctly**. ## What this repo is A compiler-backed design system. On every change an automated compiler reads the sources and regenerates three files — **never hand-edit these**: - `_ds_bundle.js` — the compiled component library, exposed as `window.MaestroDesignSystem_a6a290` - `_ds_manifest.json` — card / token / component index - `_adherence.oxlintrc.json` — lint rules The only fixed entry point is `styles.css` (root). It must stay a list of `@import` lines — never inline rules there. ## Layout ``` styles.css # entry — @import only tokens/ # CSS custom properties, one file per concern colors.css # base + signal + -dim + semantic aliases + [data-theme=light] scope typography.css # --mono family, size/leading/tracking scale effects.css # spacing, radii, borders, shadows, @keyframes fonts.css # Google Fonts @import (IBM Plex Mono + Noto Sans SC) guidelines/*.card.html # specimen cards for the Design System tab components// # core | forms | surfaces Name.jsx # the component (named export) Name.d.ts # props contract (+ @startingPoint JSDoc if applicable) Name.prompt.md # one-line what/when + JSX example .card.html # @dsCard showcase for the whole group ui_kits/console/ # desktop console recreation (composes components) ui_kits/console_mobile/ # 390px mobile recreation assets/icons/*.svg # double-tone icon set ``` ## Authoring a component (the contract the compiler enforces) A component is discovered when a directory holds **all three**: `Name.jsx` (PascalCase, with `export function Name(props)`), `Name.d.ts`, and ideally `Name.prompt.md`. To add or change one: 1. Write `Name.jsx` — React only, no npm deps, no CSS-in-JS libs. Style via the CSS custom properties (`var(--…)`). Self-contained; siblings may import each other by relative path. 2. Inject component CSS once via an `ensureCss()` guard that appends a `