Brand

Federation, not extraction

Every primitive has exactly one canonical home: tokens in `gyrum-ui/packages/tokens/`, components in `gyrum-ui/packages/components/`, ADRs + principles in `dark-factory/docs/`. canon.gyrum.ai never copies — it aggregates and renders. Consumer repos pull-by-version (`@gyrum-labs/tokens@^0.2`), never fork. This rule is structural: the build (`scripts/sync-*.sh`) snapshots the canonical source on every regen; drift surfaces as a CI failure, not a manual reconciliation task.

living brandarchitecture