@claude — gate-ds-conformance detected a UI pattern duplicated across the codebase that should be extracted into a design-system primitive (CLAUDE.baseline.md §6).
Stable marker: ds-fp:0444d418a6e7 (do not edit — used for idempotent de-duplication)
Where it recurs
frontend/src/components/InstallAppDialog.tsx:323
frontend/src/components/NotificationBell.tsx:297
frontend/src/components/UserMenu.tsx:421
frontend/src/pages/ApplicationsPage.tsx:173
Sample
className="btn btn-ghost"
Proposed component spec (refine before building)
- Name:
<PascalCaseComponent> (in the repo design-system package — frontend-engineer is the sole owner of design-system/)
- Props: derive from the variation across the call sites above.
- Variants: the distinct visual variations seen at the locations.
- States: default / hover / focus / active / disabled / loading as applicable.
- Tokens: must consume DS tokens only (color/spacing/type/radius) — zero raw values.
Acceptance criteria
Filed automatically; owner is frontend-engineer. Extraction is design work, not done by this gate.
@claude —
gate-ds-conformancedetected a UI pattern duplicated across the codebase that should be extracted into a design-system primitive (CLAUDE.baseline.md §6).Stable marker:
ds-fp:0444d418a6e7(do not edit — used for idempotent de-duplication)Where it recurs
frontend/src/components/InstallAppDialog.tsx:323frontend/src/components/NotificationBell.tsx:297frontend/src/components/UserMenu.tsx:421frontend/src/pages/ApplicationsPage.tsx:173Sample
Proposed component spec (refine before building)
<PascalCaseComponent>(in the repo design-system package —frontend-engineeris the sole owner ofdesign-system/)Acceptance criteria
gate-ds-conformancestays green after refactor.Filed automatically; owner is
frontend-engineer. Extraction is design work, not done by this gate.