dashboard-ui
Dashboard UI (apps/ui)
Read apps/ui/CLAUDE.md (primitives catalog, tokens, motion timings, DataGrid, PR evidence) and apps/ui/DESIGN.md (visual doctrine) first. This skill adds only what they lack. If a rule here conflicts with them, they win: fix this file.
Placement: a piece used by more than one flow lives in components/ui/ (primitive) or components/shared/ (composed). A hook used by more than one component lives in hooks/. Flow-only parts stay in the flow folder (for example components/onboarding/, pages/setup/).
Dependency direction: components/ui/** and components/shared/** never import from components/onboarding/** or pages/**. hooks/** never imports from pages/**: declare a local type instead (for example ContinueBlockerSetter in hooks/use-autosave.ts). Check: grep -rn "components/onboarding\|@/pages/" apps/ui/src/components/shared.
Primitive catalog
Paths are under apps/ui/src/.