Use when migrating orchestration cluster webapp pages or components from Carbon to the Camunda design system (shadcn), including parallel routes, side-by-side components, and migration tests.
89%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Use this skill for the Carbon-to-shadcn migration in
webapp/client/apps/orchestration-cluster-webapp/.
The migration is incremental. Carbon and shadcn implementations must coexist until cutover. Do not replace, move, or delete the Carbon implementation unless explicitly requested.
For general application architecture, defer to frontend-feature. This skill overrides
its Carbon-only component, route, and SCSS guidance during design-system migration.
src/routes/_carbon/. _carbon is pathless, so
existing public URLs do not change.src/routes/_shadcn/ tree — not
a new, separate shadcn/ (non-pathless) tree. It will break at compile time.src/routes/_shadcn/_auth/ shell, which
already owns the auth guard, Header, and session handling — add new leaves there,
do not recreate any of it._shadcn/_auth/<app>/: since both _carbon and _shadcn are pathless,
that resolves to the same URL as the live Carbon route (/<app>) and collides with
it. Use a temporary, distinguishing leaf name instead — e.g.
_shadcn/_auth/<app>-preview/ — reachable at /<app>-preview, and rename it to
<app>/ (dropping the Carbon route) only at that app's own cutover.src/routes/_shadcn/route.tsx layout owns ThemeProvider, design-system styles, and
the Tailwind stylesheet.Example mapping — an app with no DS presence yet (temporary collision-avoiding leaf, renamed at that app's cutover):
src/routes/_carbon/_auth/operate/route.tsx
src/routes/_shadcn/_auth/operate-preview/route.tsx
/operate
/operate-previewcomponents/ folder.shadcn.components/ folder.@camunda/design-system. Do not import @carbon/react, Carbon
styles, Carbon tokens, or Carbon-specific wrappers.Example:
src/tasklist/modules/available-tasks/
components/
Filters.tsx
Filters.test.tsx
shadcn.components/
Filters.tsx
Filters.test.tsxcn from #/shared/cn for conditional classes and when combining classes that may
conflict.@camunda/design-system/styles.css and
src/shared/theme/tailwind.css are infrastructure owned by
src/routes/_shadcn/route.tsx; they are not a pattern for feature-level styling.src/routes/_shadcn/_auth/ (see Route conventions above
for the collision-avoiding leaf name when the app has no DS presence yet).shadcn.components/ folder.@camunda/design-system primitives and translating styles into Tailwind classes.src/routes/_shadcn/.
These paths run in the shadcn Vitest browser instance.From webapp/client/:
npm run prettier:format
npm run lintFrom webapp/client/apps/orchestration-cluster-webapp/:
npm run typecheck
npm run test:unit -- --project '*:shadcn'camunda/camunda
ded1659
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.