# NODE.DC Design System rules This repository is the canonical home of reusable NODE.DC interface foundations and components. Before adding UI to a NODE.DC application: 1. Read `registry/registry.json` and `docs/COMPONENTS.md`. 2. Reuse an existing package export if the required primitive or pattern already exists. 3. If a reusable capability is missing, add it here first and consume a released version from the application. 4. Do not copy component source into an application. Temporary adapters must stay thin and be documented in `docs/ADOPTION.md`. 5. Application-specific domain UI remains in the application, but its controls and surfaces must be composed from this system. Canonical source limits: - Launcher/Hub, CMS and SEO are the reference product family for application shell, headers, windows and common controls. - From Engine, only the redesigned environment settings, shared glass controls and NDC agent inspector are approved reference sources. - Legacy Engine inspectors and legacy Engine plates are explicitly non-canonical. - Task Manager contributes only already-standardized shared behavior and components. Its legacy local menus are non-canonical. - BIM Viewer contributes validated non-React integration requirements. Every component change must update its registry entry and the living catalog. Preserve keyboard behavior, portal layering and theme independence. ## Controlled subagent orchestration All subagent work in this repository follows `docs/CODEX_SUBAGENT_GOVERNANCE.md`. - The primary Sol agent owns requirements, architecture, integration, final verification, commits, pushes, deployments and user communication. - Use `spark_explorer` only for bounded read-only evidence gathering. - Use `spark_worker` only for small edits with an exact path allowlist and explicit verification commands. - Announce every agent, model, task, access mode and allowed scope before spawning it. Report every completion, interruption and escalation to the user. - Run at most two subagents concurrently and at most one write-capable agent. - Subagents must not spawn other agents, mutate external systems, commit, push, deploy, install dependencies or expand their own scope. - Do not invent per-agent token measurements. Report measured usage only when the product exposes it; otherwise report model, task, state, turns and outcome.