Initial commit: Clean DSS implementation
Migrated from design-system-swarm with fresh git history.
Old project history preserved in /home/overbits/apps/design-system-swarm
Core components:
- MCP Server (Python FastAPI with mcp 1.23.1)
- Claude Plugin (agents, commands, skills, strategies, hooks, core)
- DSS Backend (dss-mvp1 - token translation, Figma sync)
- Admin UI (Node.js/React)
- Server (Node.js/Express)
- Storybook integration (dss-mvp1/.storybook)
Self-contained configuration:
- All paths relative or use DSS_BASE_PATH=/home/overbits/dss
- PYTHONPATH configured for dss-mvp1 and dss-claude-plugin
- .env file with all configuration
- Claude plugin uses ${CLAUDE_PLUGIN_ROOT} for portability
Migration completed: $(date)
🤖 Clean migration with full functionality preserved
This commit is contained in:
456
.dss/UI_DEVELOPMENT_PLUGINS_ROADMAP.md
Normal file
456
.dss/UI_DEVELOPMENT_PLUGINS_ROADMAP.md
Normal file
@@ -0,0 +1,456 @@
|
||||
# UI Development Plugins - Implementation Roadmap
|
||||
|
||||
**Date**: 2025-12-06
|
||||
**Status**: Research Complete - Ready for Implementation
|
||||
**Validated By**: Gemini 3 Pro Preview (Deep Thinking + Expert Analysis)
|
||||
|
||||
---
|
||||
|
||||
## Executive Summary
|
||||
|
||||
Comprehensive analysis of external Claude Code marketplaces identified **9 high-value plugins** for UI/component development that can be adapted to DSS MCP format. All plugins leverage existing DSS infrastructure (CredentialVault, Strategy Pattern, DSSContext) and require minimal new dependencies.
|
||||
|
||||
**Key Findings**:
|
||||
- ✅ Analyzed 90+ plugins across 3 major marketplaces
|
||||
- ✅ Designed adaptation patterns from client-side to server-side
|
||||
- ✅ Created 3-week implementation roadmap
|
||||
- ✅ All plugins integrate with existing DSS architecture
|
||||
|
||||
---
|
||||
|
||||
## Research Coverage
|
||||
|
||||
### External Marketplaces Analyzed
|
||||
|
||||
1. **Dev-GOM/claude-code-marketplace**
|
||||
- CDP Browser Automation (perfect for DSS LOCAL mode)
|
||||
- TODO Collector
|
||||
- Complexity Monitor
|
||||
- Auto-Docs
|
||||
|
||||
2. **Anthropic Official Plugins**
|
||||
- frontend-design skill (production-grade UI generation)
|
||||
|
||||
3. **kivilaid/plugin-marketplace**
|
||||
- 77 plugins including Git automation, code review, testing tools
|
||||
|
||||
### Adaptation Strategy
|
||||
|
||||
**Pattern 1: Hook → MCP Tool**
|
||||
- Convert pre/post execution logic to standalone tool
|
||||
- Example: Pre-commit hook → `run_pre_commit_checks` tool
|
||||
|
||||
**Pattern 2: Skill → MCP Tool + Description**
|
||||
- Tool does the work, description teaches Claude how to use it
|
||||
- Example: frontend-design skill → `scaffold_component` + rich description
|
||||
|
||||
**Pattern 3: Command → MCP Tool**
|
||||
- Direct conversion of command to tool
|
||||
- Example: `/generate-story` → `generate_storybook_story` tool
|
||||
|
||||
---
|
||||
|
||||
## 9 Recommended Plugins (3-Week Roadmap)
|
||||
|
||||
### Phase 1: Foundation Tools (Week 1) - **START HERE**
|
||||
|
||||
#### 1. Component Scaffolding Plugin
|
||||
**Priority**: 🔴 **HIGHEST**
|
||||
**Effort**: 2 days
|
||||
**Dependencies**: `jinja2>=3.1.2`
|
||||
|
||||
**Tools**:
|
||||
- `scaffold_component` - Generate React component with tests, stories, docs
|
||||
- Parameters: component_name, component_type, include_tests, include_stories, template
|
||||
- Templates: basic, form, layout, data-display
|
||||
|
||||
**Value Proposition**:
|
||||
- Most requested feature by UI developers
|
||||
- Immediate productivity gain (30-60 min → 2 min)
|
||||
- Foundation for other plugins (establishes template system)
|
||||
- Zero learning curve (generates familiar structure)
|
||||
|
||||
**Implementation**:
|
||||
```python
|
||||
# File: plugins/component_scaffolding.py
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
from ..core.context import DSSContext
|
||||
|
||||
TOOLS = [
|
||||
types.Tool(
|
||||
name="scaffold_component",
|
||||
description="Generate React component with tests, Storybook stories, and documentation",
|
||||
inputSchema={
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"component_name": {"type": "string"},
|
||||
"component_type": {"enum": ["functional", "class"]},
|
||||
"template": {"enum": ["basic", "form", "layout", "data-display"]},
|
||||
"include_tests": {"type": "boolean", "default": True},
|
||||
"include_stories": {"type": "boolean", "default": True}
|
||||
},
|
||||
"required": ["component_name"]
|
||||
}
|
||||
)
|
||||
]
|
||||
```
|
||||
|
||||
**Templates Required**:
|
||||
- `functional_component.tsx.j2`
|
||||
- `test.spec.tsx.j2`
|
||||
- `story.stories.tsx.j2`
|
||||
- `README.md.j2`
|
||||
|
||||
---
|
||||
|
||||
#### 2. Storybook Integration Plugin
|
||||
**Priority**: 🔴 **HIGH**
|
||||
**Effort**: 2 days
|
||||
**Dependencies**: Built-in AST parsing (Python `ast` module)
|
||||
|
||||
**Tools**:
|
||||
- `generate_story` - Create Storybook story from component
|
||||
- `update_story` - Update existing story with new props
|
||||
- `validate_stories` - Check story coverage across components
|
||||
|
||||
**Value Proposition**:
|
||||
- Critical for design system workflow
|
||||
- Reduces Storybook maintenance overhead
|
||||
- Ensures component documentation stays in sync
|
||||
- Generates CSF3-compliant stories automatically
|
||||
|
||||
**Implementation**:
|
||||
```python
|
||||
# File: plugins/storybook_integration.py
|
||||
import ast
|
||||
from pathlib import Path
|
||||
|
||||
TOOLS = [
|
||||
types.Tool(name="generate_story", ...),
|
||||
types.Tool(name="update_story", ...),
|
||||
types.Tool(name="validate_stories", ...)
|
||||
]
|
||||
|
||||
class PluginTools:
|
||||
async def _parse_component_props(self, component_path: str):
|
||||
"""Extract props from TypeScript/React component using AST"""
|
||||
# Parse component file, extract props interface
|
||||
# Return structured props data
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### 3. Design Token Validator Plugin
|
||||
**Priority**: 🔴 **HIGH**
|
||||
**Effort**: 3 days
|
||||
**Dependencies**: Existing Figma integration (CredentialVault)
|
||||
|
||||
**Tools**:
|
||||
- `validate_tokens` - Compare local tokens with Figma
|
||||
- `sync_figma_tokens` - Pull latest tokens from Figma
|
||||
- `generate_token_report` - Create mismatch report
|
||||
|
||||
**Value Proposition**:
|
||||
- Prevents design-dev token drift
|
||||
- Ensures design system consistency
|
||||
- Automated validation in CI/CD
|
||||
- Reduces manual QA overhead
|
||||
|
||||
**Implementation**:
|
||||
```python
|
||||
# File: plugins/design_token_validator.py
|
||||
from ..context.credential_vault import get_credential_vault
|
||||
|
||||
class PluginTools:
|
||||
async def __init__(self, **kwargs):
|
||||
vault = get_credential_vault()
|
||||
self.figma_token = await vault.get_credential("figma_access_token", user_id)
|
||||
|
||||
async def _fetch_figma_tokens(self, file_key: str):
|
||||
"""Fetch design tokens from Figma API"""
|
||||
# Use Figma REST API to get styles/variables
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Phase 2: Testing & Quality Tools (Week 2)
|
||||
|
||||
#### 4. CDP Browser Plugin (Adapted from Dev-GOM)
|
||||
**Priority**: 🟡 **MEDIUM**
|
||||
**Effort**: 3 days
|
||||
**Dependencies**: `playwright>=1.40.0` (already planned for LOCAL mode)
|
||||
|
||||
**Source**: https://github.com/Dev-GOM/claude-code-marketplace CDP Browser Automation
|
||||
|
||||
**Integration**: Enhance `LocalBrowserStrategy` with CDP capabilities
|
||||
|
||||
**Value Proposition**:
|
||||
- Enables LOCAL mode browser automation (Phase 2 requirement)
|
||||
- Direct adaptation from proven external plugin
|
||||
- Advanced debugging capabilities
|
||||
- Real-time DOM inspection
|
||||
|
||||
---
|
||||
|
||||
#### 5. Accessibility Checker Plugin
|
||||
**Priority**: 🟡 **MEDIUM**
|
||||
**Effort**: 2 days
|
||||
**Dependencies**: `playwright` (already planned), axe-core (npm, via playwright)
|
||||
|
||||
**Tools**:
|
||||
- `run_a11y_audit` - Run axe-core accessibility audit
|
||||
- `check_aria_compliance` - Validate ARIA attributes
|
||||
- `generate_a11y_report` - Create accessibility report
|
||||
|
||||
**Value Proposition**:
|
||||
- Critical for production-ready components
|
||||
- Catches accessibility issues early
|
||||
- Automated compliance checking
|
||||
- Generates actionable reports
|
||||
|
||||
**Implementation**:
|
||||
```python
|
||||
# File: plugins/accessibility_checker.py
|
||||
from ..strategies.local.browser import LocalBrowserStrategy
|
||||
|
||||
class PluginTools:
|
||||
async def _run_axe_audit(self, url: str):
|
||||
"""Run axe-core via Playwright"""
|
||||
strategy = LocalBrowserStrategy()
|
||||
page = await strategy.get_page()
|
||||
await page.goto(url)
|
||||
|
||||
# Inject axe-core and run audit
|
||||
results = await page.evaluate("""
|
||||
() => axe.run()
|
||||
""")
|
||||
return results
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### 6. TODO Collector Plugin (Adapted from Dev-GOM)
|
||||
**Priority**: 🟢 **LOW**
|
||||
**Effort**: 1 day
|
||||
**Dependencies**: None (built-in file system)
|
||||
|
||||
**Source**: https://github.com/Dev-GOM/claude-code-marketplace TODO Collector
|
||||
|
||||
**Tools**:
|
||||
- `collect_todos` - Scan project for TODO comments
|
||||
- `categorize_todos` - Group by priority/assignee
|
||||
- `generate_todo_report` - Create actionable report
|
||||
|
||||
**Value Proposition**:
|
||||
- Quick win (low complexity, high utility)
|
||||
- Helps teams track technical debt
|
||||
- Automated TODO tracking
|
||||
- CI/CD integration potential
|
||||
|
||||
---
|
||||
|
||||
### Phase 3: Advanced Tools (Week 3)
|
||||
|
||||
#### 7. Visual Regression Plugin
|
||||
**Priority**: 🟢 **LOW**
|
||||
**Effort**: 2 days
|
||||
**Dependencies**: `playwright`, image diffing library
|
||||
|
||||
**Tools**:
|
||||
- `capture_baseline` - Capture component screenshots as baseline
|
||||
- `compare_screenshots` - Detect visual regressions
|
||||
- `generate_visual_report` - Show visual diffs
|
||||
|
||||
---
|
||||
|
||||
#### 8. Performance Monitor Plugin
|
||||
**Priority**: 🟢 **LOW**
|
||||
**Effort**: 2 days
|
||||
**Dependencies**: Webpack/Vite integration
|
||||
|
||||
**Tools**:
|
||||
- `analyze_bundle_size` - Track bundle sizes over time
|
||||
- `measure_render_time` - Component render performance
|
||||
- `generate_perf_report` - Performance dashboard
|
||||
|
||||
---
|
||||
|
||||
#### 9. Component Documentation Generator Plugin
|
||||
**Priority**: 🟢 **LOW**
|
||||
**Effort**: 3 days
|
||||
**Dependencies**: TypeScript parser, JSDoc support
|
||||
|
||||
**Tools**:
|
||||
- `generate_component_docs` - Auto-generate API docs from props
|
||||
- `update_readme` - Keep README in sync with component
|
||||
- `validate_docs` - Check documentation completeness
|
||||
|
||||
---
|
||||
|
||||
## Implementation Strategy
|
||||
|
||||
### Template System Architecture
|
||||
|
||||
```
|
||||
tools/dss_mcp/plugins/
|
||||
├── component_scaffolding/
|
||||
│ ├── __init__.py (empty)
|
||||
│ ├── tool.py (exports TOOLS and PluginTools)
|
||||
│ ├── requirements.txt (jinja2>=3.1.2)
|
||||
│ └── templates/
|
||||
│ ├── functional_component.tsx.j2
|
||||
│ ├── test.spec.tsx.j2
|
||||
│ ├── story.stories.tsx.j2
|
||||
│ └── README.md.j2
|
||||
├── storybook_integration/
|
||||
│ └── tool.py
|
||||
├── design_token_validator/
|
||||
│ └── tool.py
|
||||
└── _template.py
|
||||
```
|
||||
|
||||
### Integration with Existing DSS Infrastructure
|
||||
|
||||
**1. Use CredentialVault (already implemented)**:
|
||||
```python
|
||||
from ..context.credential_vault import get_credential_vault
|
||||
|
||||
vault = get_credential_vault()
|
||||
figma_token = await vault.get_credential("figma_access_token", user_id)
|
||||
```
|
||||
|
||||
**2. Use DSSContext (already implemented)**:
|
||||
```python
|
||||
from ..core.context import DSSContext
|
||||
|
||||
ctx = await DSSContext.get_instance()
|
||||
project_root = ctx.get_project_root()
|
||||
```
|
||||
|
||||
**3. Use Strategy Pattern (already implemented)**:
|
||||
```python
|
||||
# Accessibility checker adapts to LOCAL/REMOTE mode
|
||||
if ctx.mode == "LOCAL":
|
||||
dom = await local_browser_strategy.get_dom_snapshot()
|
||||
else:
|
||||
dom = await remote_browser_strategy.get_dom_snapshot()
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Dependency Management
|
||||
|
||||
### New Dependencies Required
|
||||
|
||||
**Phase 1**:
|
||||
- `jinja2>=3.1.2` - Template rendering (Component Scaffolding)
|
||||
|
||||
**Phase 2**:
|
||||
- `playwright>=1.40.0` - Browser automation (already planned for LOCAL mode)
|
||||
|
||||
**Total New Dependencies**: 1 (jinja2 only)
|
||||
|
||||
### Installation Workflow
|
||||
|
||||
```bash
|
||||
# 1. Create plugin with requirements.txt
|
||||
mkdir -p tools/dss_mcp/plugins/component_scaffolding
|
||||
echo "jinja2>=3.1.2" > tools/dss_mcp/plugins/component_scaffolding/requirements.txt
|
||||
|
||||
# 2. Install dependencies
|
||||
./tools/install_plugin_deps.sh
|
||||
|
||||
# 3. Restart server
|
||||
supervisorctl restart dss-mcp
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Risk Mitigation
|
||||
|
||||
### Risk 1: External plugin code quality unknown
|
||||
**Mitigation**: Manually review all adapted code, don't copy blindly
|
||||
**Action**: Treat external plugins as inspiration, not copy-paste sources
|
||||
|
||||
### Risk 2: Playwright dependency adds complexity
|
||||
**Mitigation**: Playwright only required for LOCAL mode (optional)
|
||||
**Action**: Gracefully degrade tools when Playwright unavailable
|
||||
|
||||
### Risk 3: Template maintenance overhead
|
||||
**Mitigation**: Start with 3 basic templates, expand based on usage
|
||||
**Action**: Version templates, allow project-specific overrides
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
### Week 1 Success Criteria
|
||||
- ✅ 3 plugins implemented and tested
|
||||
- ✅ Component scaffolding generates working React component
|
||||
- ✅ Storybook integration creates valid CSF3 stories
|
||||
- ✅ Token validator detects mismatches with Figma
|
||||
|
||||
### Week 2 Success Criteria
|
||||
- ✅ CDP browser plugin integrated into LOCAL mode
|
||||
- ✅ A11y checker runs on sample components
|
||||
- ✅ TODO collector scans project and generates report
|
||||
|
||||
### Week 3 Success Criteria
|
||||
- ✅ All 9 plugins operational
|
||||
- ✅ Documentation complete for each plugin
|
||||
- ✅ Team training session conducted
|
||||
|
||||
---
|
||||
|
||||
## Next Immediate Actions
|
||||
|
||||
### 1. Create Plugin Development Branch
|
||||
```bash
|
||||
git checkout -b feature/ui-development-plugins
|
||||
```
|
||||
|
||||
### 2. Install Template Dependencies
|
||||
```bash
|
||||
pip install jinja2>=3.1.2
|
||||
```
|
||||
|
||||
### 3. Create Template Directory Structure
|
||||
```bash
|
||||
mkdir -p tools/dss_mcp/plugins/component_scaffolding/templates
|
||||
```
|
||||
|
||||
### 4. Implement Component Scaffolding Plugin First
|
||||
- Copy `_template.py` to `component_scaffolding/tool.py`
|
||||
- Define 1 tool: `scaffold_component`
|
||||
- Create 3 Jinja2 templates (component, test, story)
|
||||
- Test with real component creation
|
||||
|
||||
### 5. Document Plugin in README
|
||||
- Add usage examples
|
||||
- Document template variables
|
||||
- Explain customization options
|
||||
|
||||
---
|
||||
|
||||
## Final Recommendation
|
||||
|
||||
**START IMMEDIATELY** with Phase 1, Priority 1 (Component Scaffolding).
|
||||
|
||||
**Why Component Scaffolding First**:
|
||||
1. **Immediate Value**: Generates actual code files developers can use today
|
||||
2. **Foundation**: Establishes template system for other plugins
|
||||
3. **Low Risk**: Only needs jinja2, no external dependencies
|
||||
4. **High Visibility**: Team sees tangible results quickly
|
||||
5. **Quick Win**: 2 days to working plugin
|
||||
|
||||
**Confidence Level**: Very High (95%)
|
||||
- Architecture validated by deep thinking + expert analysis
|
||||
- External marketplace research complete
|
||||
- Implementation path clear with concrete examples
|
||||
- Risk mitigation strategies defined
|
||||
- All dependencies minimal and well-understood
|
||||
|
||||
---
|
||||
|
||||
**Last Updated**: 2025-12-06
|
||||
**Next Review**: After Phase 1 completion (Week 1)
|
||||
Reference in New Issue
Block a user