| name | design-system-validator |
| description | Validate design system compliance in code and detect token usage violations |
| allowed-tools | ["Read","Write","Edit","Bash","Glob","Grep"] |
| graph | {"domains":["domain:web-development"],"specializations":["specialization:ux-ui-design"],"skillAreas":["skill-area:design-systems","skill-area:ui-component-libraries"],"roles":["role:product-designer","role:frontend-engineer"],"workflows":["workflow:user-feedback-loop","workflow:product-discovery"]} |
Design System Validator Skill
Purpose
Validate that code adheres to design system specifications, checking token usage, component props, and style consistency.
Capabilities
- Check design token usage in CSS/SCSS
- Validate component prop usage
- Detect hard-coded values that should use tokens
- Ensure naming convention compliance
- Generate compliance reports
- Integrate with linting tools
Target Processes
- design-system.js
- component-library.js
Integration Points
- ESLint plugins for design systems
- Stylelint for CSS validation
- Custom AST analyzers
- Token documentation
Input Schema
{
"type": "object",
"properties": {
"scanPath": {
"type": "string",
"description": "Path to code to validate"
},
"tokenDefinitions": {
"type": "string",
"description": "Path to design token definitions"
},
"rules": {
"type": "object",
"properties": {
"enforceTokenColors": { "type": "boolean", "default": true },
"enforceTokenSpacing": { "type": "boolean", "default": true },
"enforceTokenTypography": { "type": "boolean", "default": true },
"allowHardcodedValues": { "type": "array", "items": { "type": "string" } }
}
},
"fileTypes": {
"type": "array",
"items": { "type": "string" },
"default": ["css", "scss", "tsx", "jsx"]
},
"severity": {
"type": "string",
"enum": ["error", "warning", "info"],
"default": "warning"
}
},
"required": ["scanPath", "tokenDefinitions"]
}
Output Schema
{
"type": "object",
"properties": {
"violations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"file": { "type": "string" },
"line": { "type": "number" },
"rule": { "type": "string" },
"message": { "type": "string" },
"suggestion"
Usage Example
const result = await skill.execute({
scanPath: './src/components',
tokenDefinitions: './tokens/design-tokens.json',
rules: {
enforceTokenColors: true,
enforceTokenSpacing: true,
enforceTokenTypography: true
},
severity: 'warning'
});