MCMMCM DocsEngineering (Internal)
User StoriesMCM-51 — MCM Design System
v1.2 is unreleased — see v1.1 for the current stable release.

MCM-56 — Automated Consistency Checks

A build-time check that flags drift from the shared design tokens, components, or icons before it merges.

MCM-56 — Automated Consistency Checks

← Back to MCM Design System overview

As a Frontend Engineer,
I want an automated check that flags when a change introduces a value or component that doesn't match the shared design system,
so that drift between surfaces — like the corner-radius and icon-version mismatches that already crept in — gets caught before it merges, not months later.

Acceptance Criteria

  • Every change to styling or component usage on any of the three surfaces is checked against the shared token, component, and icon set before merge.
  • The check flags a hard-coded value that duplicates an existing shared token instead of referencing it (for example, a literal colour or spacing value where a matching token already exists).
  • The check flags use of an icon, or an icon-library version, other than the shared, approved one.
  • A failing check blocks merge by default, with a documented, deliberate override path for a genuine one-off exception rather than a silent bypass.
  • The check runs the same way on all three surfaces, rather than being specific to whichever surface happens to have it today.

Technical Design

One surface already pilots a check that flags design-token misuse; this story generalises that same check, wires it into the change-review process of all three surfaces, and extends its rules to also cover component and icon usage, not just tokens. It runs automatically whenever a change is proposed and reports findings inline, rather than requiring someone to run it by hand.


UI / Frontend Changes

  • No new end-user-facing screen — feedback from the check surfaces inline in the change-review process (for example, as an inline comment) on any of the three surfaces' codebases.
  • A documented override path is visible to whoever is reviewing the change, so a deliberate exception is explicit rather than a silent bypass.

On this page