Skip to main content
Documentation menu

Prefix: DSN- Catalog: v1.1 (new pillar). What it measures: the design contract an agent can follow — shared tokens, accessibility requirements, and UI primitives that keep interfaces consistent when no human is pixel-pushing.

A business an agent ships still has a face. This pillar is how that face stays coherent across sessions, products, and generated screens. There is no v1.0 DSN catalog; IDs in the DSN-1xx band are the first published criteria for this dimension.

Criteria in this pillar

DSN-100 — Shared design tokens published

  • Level: 2 · Scope: portfolio · Check: deterministic
  • The portfolio publishes primitive and semantic tokens (color, type, space, motion, or equivalent) as a consumed package or committed file that every UI application imports. Per-application hardcoded values are not the source of truth. A slide deck of hex codes is not a token system.
  • Rationale: an agent that cannot read tokens will invent a palette per session. Shared tokens are the only contract that keeps generated screens coherent across applications without a human reconciling them after the fact.
  • Evidence expected: a committed token module or file with primitive and semantic layers; each in-scope UI application imports it; a documented consume path (package name or relative import).

DSN-110 — Accessibility contract published

  • Level: 3 · Scope: application · Check: deterministic
  • Each UI application publishes an accessibility contract covering at least keyboard focus, name/role/value, contrast, and reduced-motion. Generated interfaces MUST meet that contract. A marketing claim without a check does not satisfy this criterion.
  • Rationale: agents ship the first interaction that compiles. Without a written contract, accessibility is a reviewer's taste, and generated screens skip labels, traps focus, or ignore motion preferences.
  • Evidence expected: a committed contract (in the application context file or an equivalent a11y doc); required checks named; a sample screen or test that asserts name/role/value, focus, contrast, and reduced-motion.

DSN-120 — UI primitive catalog published

  • Level: 3 · Scope: portfolio · Check: deterministic
  • Shared primitives (button, input, dialog, table, or an equivalent set) are listed in a catalog with usage rules an agent can follow. New screens compose from the catalog. A third, one-off control for a problem the catalog already solves does not satisfy this criterion unless it is listed as an owned exception.
  • Rationale: tokens without primitives still leave the agent free to invent a new button. A catalog is how a portfolio stays one product instead of a pile of generated chrome.
  • Evidence expected: a committed catalog (package exports, registry, or equivalent) listing primitives and usage; in-scope UI applications import from it; exception list empty or owned with a reason.

DSN-130 — Token and accessibility gates in CI

  • Level: 4 · Scope: application · Check: deterministic
  • CI fails undeclared visual values (raw color, type, or space literals outside the token file) and known accessibility regressions on changed UI. Reviewer preference is not the gate. A lint that is optional or warning-only does not satisfy this criterion.
  • Rationale: DSN-100 and DSN-110 state the contract; without a failing job, agents will merge the first screen that looks fine locally. The pipeline has to refuse the undeclared hex and the unlabelled control.
  • Evidence expected: a required CI job or lint on UI changes; undeclared token literals fail the job; accessibility checks from DSN-110 fail the job on regression; a recent passing run on a UI change.

DSN-140 — Portfolio token coverage published as k/n

  • Level: 4 · Scope: portfolio · Check: manual
  • Token consumption is visible per UI application as k/n applications on the shared token system. A blended "we have a design system" claim that hides a sibling with its own palette does not satisfy this criterion. A newly added UI application is on the view within one review cadence or is marked not_applicable with a one-line justification.
  • Rationale: one token-consuming application next to an unstyled neighbour is not an agent-ready product. Portfolio scope (CSPC-31) is the scoring unit.
  • Evidence expected: dashboard or report with per-application consume status plus k/n; cadence stated; not_applicable entries justified (headless or non-UI applications may use this mark).