Create Design System
Trigger
Use when the user asks for a design system, UI kit, component library, visual language, design tokens, frontend UI standards, component inventory, typography system, colour system, spacing system, accessibility rules, or reusable interface guidelines.
When To Use
- After product requirements or UX flows are clear enough.
- Before building UI prototypes or MVP screens.
- When an existing app has inconsistent UI patterns.
- When frontend implementation needs reusable component standards.
- When design tokens, components, states, or accessibility rules need to be documented.
- When a prototype needs a consistent visual system.
When Not To Use
- Use
create-discovery-brief when the product idea is unclear.
- Use
create-prd when requirements are missing.
- Use
create-ux-flow when user journeys and screens are missing.
- Use
build-ui-prototype when the user wants code for a clickable UI prototype.
- Use
create-technical-design-document when the user wants broad architecture planning.
- Use
review-change when the user wants a completed UI change reviewed.
Inputs Inspected
Inspect available inputs before creating design-system claims:
- Product profile.
- Discovery brief.
- PRD.
- UX flow.
- Screen inventory.
- Prototype plan when available.
- Existing routes, pages, layouts, components, styling, tokens, and design conventions.
- Package scripts and frontend framework configuration.
- Existing design assets or brand notes if provided.
Look for these initiative and profile artefacts when present:
.project/.engineering/profile/product-system-profile.yaml
.project/docs/engineering/<initiative-id>/discovery-brief.md
.project/docs/engineering/<initiative-id>/prd.md
.project/docs/engineering/<initiative-id>/app-flow.md
.project/docs/engineering/<initiative-id>/screen-inventory.md
.project/.engineering/initiatives/<initiative-id>/prototype/prototype-plan.md
Inspect the repo for:
README.md
package.json
tailwind.config.*
app/
pages/
src/
components/
styles/
theme/
tokens/
public/
design/
Then inspect the files that matter for the detected stack:
| Stack |
Look for |
| React / Next / Tailwind |
tailwind.config.*, globals.css, app/layout.tsx, src/components/ui/ |
| Vue / Nuxt |
nuxt.config.*, assets/css/, components/ui/ |
| PHP |
composer.json, templates/, assets/css/, includes/ |
| WordPress |
theme.json, style.css, patterns/, parts/, functions.php |
| Laravel |
resources/views/components/, resources/css/, tailwind.config.js |
| Static HTML |
css/, index.html, any partial or include directory |
Design System Modes
Classify the request before producing artifacts:
new-design-system: create foundations and reusable standards from product/UX context.
audit-existing-design-system: document current tokens, components, conventions, gaps, and drift.
prototype-design-system: define a lightweight visual system for a prototype or MVP.
production-design-system: define stricter foundations, governance, accessibility, implementation, and review expectations.
component-library-plan: focus on component inventory, variants, states, props, and usage rules.
implementation-scaffold: optionally scaffold tokens or components only when the user explicitly asks for source changes.
Choose The Adapter
A design system is a set of decisions plus an implementation of those decisions in
one stack. The decisions are portable; the implementation is not. Everything up to
step 7 below is stack-neutral. Step 8 is where the adapter applies.
Read context/stack.json (populated with evidence by detect-stack.py) and pick:
| Detected |
Adapter |
Tokens land in |
Components land in |
| React + Tailwind |
react-tailwind |
src/design-system/tokens.ts + @theme |
src/components/ui/ |
| React, no Tailwind |
react-css |
src/design-system/tokens.css |
CSS Modules |
| Vue / Nuxt |
vue-nuxt |
assets/css/tokens.css |
components/ui/ |
| PHP, no framework |
php-native |
assets/css/tokens.css |
templates/components/*.php |
| WordPress |
wordpress |
theme.json |
patterns/, parts/ |
| Laravel |
laravel-blade |
resources/css/tokens.css |
resources/views/components/*.blade.php |
| Static HTML |
static-html |
css/tokens.css |
HTML partials + class contract |
--adapter=<name> overrides detection. Use it when detection is wrong, or when
the target stack does not exist yet. State which adapter you chose and the
evidence for it. If the stack is genuinely unclear, ask rather than assuming React.
Read references/design-system-adapters.md for each adapter's conventions and the
shared token contract. CSS custom properties are the lowest common denominator and
every adapter emits them, so a component can be ported by changing the wrapper
rather than the values.
Workflow
- Classify the design-system mode and choose the adapter.
- Inspect upstream product/UX artifacts and existing UI conventions before defining visual or component rules.
- Define the design-system scope, target product surface, users, constraints, and non-goals.
- Define design principles and foundations: colour, typography, spacing, layout, radius, shadow, borders, icons, motion, and breakpoints.
- Define design tokens using implementation-friendly names and stable categories.
- Create a component inventory with purpose, variants, states, accessibility requirements, and usage rules.
- Define state coverage for loading, empty, error, success, disabled, focus, hover, active, selected, and permission states where relevant.
- Map the design system to implementation through the chosen adapter. Emit CSS
custom properties in every case, plus the framework-native layer the adapter
specifies. Use semantic token names (
--accent, not --blue-500).
- Identify gaps, risks, and open questions.
- Recommend the next lifecycle skill, usually
build-ui-prototype or implement-feature-safely.
Scope
Before writing artifacts, define:
- Product surface: MVP prototype, internal dashboard, SaaS product, marketing website, admin portal, customer-facing app, or multi-product platform.
- Design-system mode.
- In-scope foundations and components.
- Out-of-scope surfaces, brand work, components, or implementation.
- Whether source changes are requested. Default to planning and documentation only.
Outputs
Recommended artifact paths:
.project/docs/engineering/<initiative-id>/design-system/design-system-plan.md
.project/docs/engineering/<initiative-id>/design-system/design-tokens.md
.project/docs/engineering/<initiative-id>/design-system/component-inventory.md
.project/docs/engineering/<initiative-id>/design-system/accessibility-rules.md
.project/docs/engineering/<initiative-id>/design-system/implementation-mapping.md
Optional code outputs only when explicitly requested. The paths come from the
chosen adapter, not from a React default. See the adapter table above and
references/design-system-adapters.md.
Use the files in templates/ for generated design-system artifacts. The
implementation-mapping.md artifact records which adapter was chosen, on what
evidence, and where each token and component category lands in this repo.
Required Front Matter
Generated Markdown artifacts must include:
initiative_id
skill
created_at
status
confidence
source_artifacts
Required Sections
The main design-system plan must include:
- Design System Scope
- Product Context
- Design Principles
- Foundations
- Design Tokens
- Component Inventory
- Component States
- Accessibility Rules
- Responsive Rules
- Implementation Mapping
- Open Questions
- Recommended Next Skill
References
- Read
engineering-lifecycle/references/design-system-adapters.md when choosing the adapter and mapping tokens and components into the target stack.
- Read
engineering-lifecycle/references/design-system-scope-guide.md when choosing scope, mode, lifecycle position, and output boundaries.
- Read
engineering-lifecycle/references/anti-slop-register.md before proposing any concrete visual direction.
- Read
engineering-lifecycle/references/component-state-guide.md when defining component variants, states, behaviours, and anti-patterns.
- Read
engineering-lifecycle/references/accessibility-checklist.md when defining accessibility rules and checks.
- Use
examples/ for realistic invocation patterns and expected output shape.
Lifecycle Position
Use this skill between UX planning and UI implementation:
create-prd
-> create-ux-flow
-> create-design-system
-> build-ui-prototype
-> implement-feature-safely
-> review-change
Keep the boundary clear: create-design-system plans and documents the design system by default; build-ui-prototype uses the design system to build screens; implement-feature-safely productionises or deepens implementation.
Safety Constraints
- Do not invent brand rules, existing components, colours, or design conventions.
- Clearly separate proposed design decisions from inspected existing conventions.
- Do not modify source code unless the user explicitly asks for implementation.
- Do not claim accessibility compliance; provide accessibility rules and checks.
- Prefer simple MVP-ready systems over over-engineered component libraries.
- Keep design tokens implementation-friendly.
- Preserve existing project conventions unless there is a strong reason to change them.
Final Response
Include:
- Design System Created
- Files Changed
- Scope And Mode
- Artifacts Produced
- Existing vs Proposed Conventions
- Implementation Mapping
- Open Questions
- Recommended Next Skill
Related Agents
ux-flow-designer
frontend-engineer
requirements-analyst
qa-test-strategist
solution-architect when the component system affects architecture
security-reviewer when UI exposes sensitive data or permissioned states
1---2name: create-design-system3description: Use when the user asks to plan, document, create, audit, or implement a design system, UI kit, component system, design tokens, typography, colours, spacing, accessibility rules, or reusable frontend component standards. Works for any stack, not only React - PHP, WordPress, Laravel, Vue and static HTML have their own adapters.4---56# Create Design System78## Trigger910Use when the user asks for a design system, UI kit, component library, visual language, design tokens, frontend UI standards, component inventory, typography system, colour system, spacing system, accessibility rules, or reusable interface guidelines.1112## When To Use1314- After product requirements or UX flows are clear enough.15- Before building UI prototypes or MVP screens.16- When an existing app has inconsistent UI patterns.17- When frontend implementation needs reusable component standards.18- When design tokens, components, states, or accessibility rules need to be documented.19- When a prototype needs a consistent visual system.2021## When Not To Use2223- Use `create-discovery-brief` when the product idea is unclear.24- Use `create-prd` when requirements are missing.25- Use `create-ux-flow` when user journeys and screens are missing.26- Use `build-ui-prototype` when the user wants code for a clickable UI prototype.27- Use `create-technical-design-document` when the user wants broad architecture planning.28- Use `review-change` when the user wants a completed UI change reviewed.2930## Inputs Inspected3132Inspect available inputs before creating design-system claims:3334- Product profile.35- Discovery brief.36- PRD.37- UX flow.38- Screen inventory.39- Prototype plan when available.40- Existing routes, pages, layouts, components, styling, tokens, and design conventions.41- Package scripts and frontend framework configuration.42- Existing design assets or brand notes if provided.4344Look for these initiative and profile artefacts when present:4546- `.project/.engineering/profile/product-system-profile.yaml`47- `.project/docs/engineering/<initiative-id>/discovery-brief.md`48- `.project/docs/engineering/<initiative-id>/prd.md`49- `.project/docs/engineering/<initiative-id>/app-flow.md`50- `.project/docs/engineering/<initiative-id>/screen-inventory.md`51- `.project/.engineering/initiatives/<initiative-id>/prototype/prototype-plan.md`5253Inspect the repo for:5455- `README.md`56- `package.json`57- `tailwind.config.*`58- `app/`59- `pages/`60- `src/`61- `components/`62- `styles/`63- `theme/`64- `tokens/`65- `public/`66- `design/`6768Then inspect the files that matter for the detected stack:6970| Stack | Look for |71| --- | --- |72| React / Next / Tailwind | `tailwind.config.*`, `globals.css`, `app/layout.tsx`, `src/components/ui/` |73| Vue / Nuxt | `nuxt.config.*`, `assets/css/`, `components/ui/` |74| PHP | `composer.json`, `templates/`, `assets/css/`, `includes/` |75| WordPress | `theme.json`, `style.css`, `patterns/`, `parts/`, `functions.php` |76| Laravel | `resources/views/components/`, `resources/css/`, `tailwind.config.js` |77| Static HTML | `css/`, `index.html`, any partial or include directory |7879## Design System Modes8081Classify the request before producing artifacts:8283- `new-design-system`: create foundations and reusable standards from product/UX context.84- `audit-existing-design-system`: document current tokens, components, conventions, gaps, and drift.85- `prototype-design-system`: define a lightweight visual system for a prototype or MVP.86- `production-design-system`: define stricter foundations, governance, accessibility, implementation, and review expectations.87- `component-library-plan`: focus on component inventory, variants, states, props, and usage rules.88- `implementation-scaffold`: optionally scaffold tokens or components only when the user explicitly asks for source changes.8990## Choose The Adapter9192A design system is a set of decisions plus an implementation of those decisions in93one stack. The decisions are portable; the implementation is not. Everything up to94step 7 below is stack-neutral. Step 8 is where the adapter applies.9596Read `context/stack.json` (populated with evidence by `detect-stack.py`) and pick:9798| Detected | Adapter | Tokens land in | Components land in |99| --- | --- | --- | --- |100| React + Tailwind | `react-tailwind` | `src/design-system/tokens.ts` + `@theme` | `src/components/ui/` |101| React, no Tailwind | `react-css` | `src/design-system/tokens.css` | CSS Modules |102| Vue / Nuxt | `vue-nuxt` | `assets/css/tokens.css` | `components/ui/` |103| PHP, no framework | `php-native` | `assets/css/tokens.css` | `templates/components/*.php` |104| WordPress | `wordpress` | `theme.json` | `patterns/`, `parts/` |105| Laravel | `laravel-blade` | `resources/css/tokens.css` | `resources/views/components/*.blade.php` |106| Static HTML | `static-html` | `css/tokens.css` | HTML partials + class contract |107108`--adapter=<name>` overrides detection. Use it when detection is wrong, or when109the target stack does not exist yet. **State which adapter you chose and the110evidence for it.** If the stack is genuinely unclear, ask rather than assuming React.111112Read `references/design-system-adapters.md` for each adapter's conventions and the113shared token contract. CSS custom properties are the lowest common denominator and114every adapter emits them, so a component can be ported by changing the wrapper115rather than the values.116117## Workflow1181191. Classify the design-system mode and choose the adapter.1202. Inspect upstream product/UX artifacts and existing UI conventions before defining visual or component rules.1213. Define the design-system scope, target product surface, users, constraints, and non-goals.1224. Define design principles and foundations: colour, typography, spacing, layout, radius, shadow, borders, icons, motion, and breakpoints.1235. Define design tokens using implementation-friendly names and stable categories.1246. Create a component inventory with purpose, variants, states, accessibility requirements, and usage rules.1257. Define state coverage for loading, empty, error, success, disabled, focus, hover, active, selected, and permission states where relevant.1268. Map the design system to implementation **through the chosen adapter**. Emit CSS127 custom properties in every case, plus the framework-native layer the adapter128 specifies. Use semantic token names (`--accent`, not `--blue-500`).1299. Identify gaps, risks, and open questions.13010. Recommend the next lifecycle skill, usually `build-ui-prototype` or `implement-feature-safely`.131132## Scope133134Before writing artifacts, define:135136- Product surface: MVP prototype, internal dashboard, SaaS product, marketing website, admin portal, customer-facing app, or multi-product platform.137- Design-system mode.138- In-scope foundations and components.139- Out-of-scope surfaces, brand work, components, or implementation.140- Whether source changes are requested. Default to planning and documentation only.141142## Outputs143144Recommended artifact paths:145146- `.project/docs/engineering/<initiative-id>/design-system/design-system-plan.md`147- `.project/docs/engineering/<initiative-id>/design-system/design-tokens.md`148- `.project/docs/engineering/<initiative-id>/design-system/component-inventory.md`149- `.project/docs/engineering/<initiative-id>/design-system/accessibility-rules.md`150- `.project/docs/engineering/<initiative-id>/design-system/implementation-mapping.md`151152Optional code outputs only when explicitly requested. The paths come from the153chosen adapter, not from a React default. See the adapter table above and154`references/design-system-adapters.md`.155156Use the files in `templates/` for generated design-system artifacts. The157`implementation-mapping.md` artifact records which adapter was chosen, on what158evidence, and where each token and component category lands in this repo.159160## Required Front Matter161162Generated Markdown artifacts must include:163164- `initiative_id`165- `skill`166- `created_at`167- `status`168- `confidence`169- `source_artifacts`170171## Required Sections172173The main design-system plan must include:174175- Design System Scope176- Product Context177- Design Principles178- Foundations179- Design Tokens180- Component Inventory181- Component States182- Accessibility Rules183- Responsive Rules184- Implementation Mapping185- Open Questions186- Recommended Next Skill187188## References189190- Read `engineering-lifecycle/references/design-system-adapters.md` when choosing the adapter and mapping tokens and components into the target stack.191- Read `engineering-lifecycle/references/design-system-scope-guide.md` when choosing scope, mode, lifecycle position, and output boundaries.192- Read `engineering-lifecycle/references/anti-slop-register.md` before proposing any concrete visual direction.193- Read `engineering-lifecycle/references/component-state-guide.md` when defining component variants, states, behaviours, and anti-patterns.194- Read `engineering-lifecycle/references/accessibility-checklist.md` when defining accessibility rules and checks.195- Use `examples/` for realistic invocation patterns and expected output shape.196197## Lifecycle Position198199Use this skill between UX planning and UI implementation:200201```text202create-prd203-> create-ux-flow204-> create-design-system205-> build-ui-prototype206-> implement-feature-safely207-> review-change208```209210Keep the boundary clear: `create-design-system` plans and documents the design system by default; `build-ui-prototype` uses the design system to build screens; `implement-feature-safely` productionises or deepens implementation.211212## Safety Constraints213214- Do not invent brand rules, existing components, colours, or design conventions.215- Clearly separate proposed design decisions from inspected existing conventions.216- Do not modify source code unless the user explicitly asks for implementation.217- Do not claim accessibility compliance; provide accessibility rules and checks.218- Prefer simple MVP-ready systems over over-engineered component libraries.219- Keep design tokens implementation-friendly.220- Preserve existing project conventions unless there is a strong reason to change them.221222## Final Response223224Include:225226- Design System Created227- Files Changed228- Scope And Mode229- Artifacts Produced230- Existing vs Proposed Conventions231- Implementation Mapping232- Open Questions233- Recommended Next Skill234235## Related Agents236237- `ux-flow-designer`238- `frontend-engineer`239- `requirements-analyst`240- `qa-test-strategist`241- `solution-architect` when the component system affects architecture242- `security-reviewer` when UI exposes sensitive data or permissioned states