feat: Add DSS infrastructure, remove legacy admin-ui code
Some checks failed
DSS Project Analysis / dss-context-update (push) Has been cancelled
Some checks failed
DSS Project Analysis / dss-context-update (push) Has been cancelled
- Remove legacy admin-ui/js/ vanilla JS components - Add .dss/ directory with core tokens, skins, themes - Add Storybook configuration and generated stories - Add DSS management scripts (dss-services, dss-init, dss-setup, dss-reset) - Add MCP command definitions for DSS plugin - Add Figma sync architecture and scripts - Update pre-commit hooks with documentation validation - Fix JSON trailing commas in skin files 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "dss-core-v1",
|
||||
"version": "1.1.0",
|
||||
"version": "1.3.0",
|
||||
"last_updated": "2025-12-10",
|
||||
"purpose": "Single source of truth for AI agents working with DSS",
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
"canonical_structure": {
|
||||
"tokens": ["colors", "spacing", "typography", "borders", "shadows", "motion"],
|
||||
"components": ["Button", "Input", "Card", "Badge", "Toast", "..."],
|
||||
"components": "59 shadcn/ui components - see .dss/components/shadcn-registry.json",
|
||||
"patterns": ["forms", "navigation", "layouts"],
|
||||
"rule": "This structure NEVER changes. All inputs normalize to this."
|
||||
},
|
||||
@@ -87,6 +87,57 @@
|
||||
"context_compiler": ["dss_get_resolved_context", "dss_get_compiler_status"]
|
||||
},
|
||||
|
||||
"token_architecture": {
|
||||
"description": "3-Layer Token Cascade with Skin Contract validation",
|
||||
"layers": {
|
||||
"1_core_primitives": {
|
||||
"path": ".dss/core/primitives.json",
|
||||
"purpose": "Raw Tailwind-style values (colors, spacing, radius, fonts)",
|
||||
"immutable": true,
|
||||
"shared": "Across all skins"
|
||||
},
|
||||
"2_skin": {
|
||||
"path": ".dss/skins/{skin_name}/tokens.json",
|
||||
"purpose": "Semantic mapping from primitives to design tokens",
|
||||
"contract": ".dss/schema/skin-contract.json",
|
||||
"examples": ["shadcn", "heroui", "material"],
|
||||
"rule": "Must provide ALL tokens defined in skin-contract"
|
||||
},
|
||||
"3_theme": {
|
||||
"path": ".dss/themes/{theme_name}.json",
|
||||
"purpose": "Brand overrides on top of skin",
|
||||
"rule": "May ONLY override tokens defined in skin-contract",
|
||||
"survives": "Skin updates (stable API through contract)"
|
||||
}
|
||||
},
|
||||
"cascade_flow": "Core Primitives -> Skin (semantic) -> Theme (brand) = Final Tokens",
|
||||
"validation": {
|
||||
"script": "scripts/validate-theme.py",
|
||||
"checks": [
|
||||
"Skin provides all contract-required tokens",
|
||||
"Theme only overrides contract tokens"
|
||||
]
|
||||
},
|
||||
"resolution": {
|
||||
"script": "scripts/resolve-tokens.py",
|
||||
"output": ".dss/data/_system/tokens/tokens.json",
|
||||
"resolves": "Token references like {color.zinc.500} using primitives"
|
||||
},
|
||||
"storybook_generation": {
|
||||
"script": "scripts/generate-storybook.py",
|
||||
"output": "admin-ui/src/stories/",
|
||||
"generates": [
|
||||
"Overview.stories.js - Introduction and architecture",
|
||||
"ColorPrimitives.stories.js - Tailwind color palette",
|
||||
"Spacing.stories.js - Spacing scale",
|
||||
"Radius.stories.js - Border radius tokens",
|
||||
"Typography.stories.js - Typography styles from Figma",
|
||||
"Effects.stories.js - Shadows and focus rings",
|
||||
"SemanticColors.stories.js - Semantic color tokens from skin"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
"context_compiler": {
|
||||
"cascade": "Base Skin -> Extended Skin -> Project Overrides = Final Context",
|
||||
"caching": "mtime-based invalidation",
|
||||
@@ -114,7 +165,16 @@
|
||||
"skills": "dss-claude-plugin/skills/",
|
||||
"commands": "dss-claude-plugin/commands/",
|
||||
"logs": ".dss/logs/",
|
||||
"cache": ".dss/cache/"
|
||||
"cache": ".dss/cache/",
|
||||
"core_primitives": ".dss/core/primitives.json",
|
||||
"skin_contract": ".dss/schema/skin-contract.json",
|
||||
"skins": ".dss/skins/",
|
||||
"themes": ".dss/themes/",
|
||||
"token_resolver": "scripts/resolve-tokens.py",
|
||||
"theme_validator": "scripts/validate-theme.py",
|
||||
"storybook_generator": "scripts/generate-storybook.py",
|
||||
"storybook_stories": "admin-ui/src/stories/",
|
||||
"component_registry": ".dss/components/shadcn-registry.json"
|
||||
},
|
||||
|
||||
"coding_rules_summary": {
|
||||
@@ -222,7 +282,27 @@
|
||||
"cli": "dss ingest --source figma --file tokens.json"
|
||||
},
|
||||
|
||||
"component_registry": {
|
||||
"path": ".dss/components/shadcn-registry.json",
|
||||
"source": "shadcn/ui (https://ui.shadcn.com)",
|
||||
"total_components": 59,
|
||||
"categories": {
|
||||
"form": "21 components (Button, Input, Select, Checkbox, etc.)",
|
||||
"data-display": "11 components (Table, Badge, Avatar, Chart, etc.)",
|
||||
"feedback": "7 components (Alert, Toast, Progress, Spinner, etc.)",
|
||||
"navigation": "6 components (Tabs, Breadcrumb, Sidebar, etc.)",
|
||||
"overlay": "9 components (Dialog, Sheet, Dropdown, Tooltip, etc.)",
|
||||
"layout": "5 components (Card, Separator, Scroll Area, etc.)"
|
||||
},
|
||||
"dependencies": {
|
||||
"radix": "26 Radix UI primitives",
|
||||
"additional": ["cmdk", "embla-carousel", "react-day-picker", "recharts", "sonner", "vaul"]
|
||||
}
|
||||
},
|
||||
|
||||
"changelog": [
|
||||
{"version": "1.3.0", "date": "2025-12-10", "notes": "Add 59-component shadcn registry, expand primitives to full Tailwind palette"},
|
||||
{"version": "1.2.0", "date": "2025-12-10", "notes": "Add 3-layer token architecture with skin contract validation"},
|
||||
{"version": "1.1.0", "date": "2025-12-10", "notes": "Migrate from SQLite to JSON file storage"},
|
||||
{"version": "1.0.0", "date": "2025-12-10", "notes": "Initial core definition"}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user