Initial commit
This commit is contained in:
794
skills/product-design/SKILL.md
Normal file
794
skills/product-design/SKILL.md
Normal file
@@ -0,0 +1,794 @@
|
||||
---
|
||||
name: product-design
|
||||
description: Automates design review, token extraction, component mapping, and implementation planning. Reduces design handoff from 6-10 hours to 5 minutes via direct Figma MCP integration. Auto-invoke when user mentions design review, Figma mockup, or design handoff.
|
||||
allowed-tools: Read, Write, Edit, Grep, Glob, Bash, Task, TodoWrite
|
||||
version: 1.1.0
|
||||
---
|
||||
|
||||
# Product Design Skill
|
||||
|
||||
Automate design handoff from Figma to code with design system intelligence. Extract tokens, map components, detect drift, generate implementation plans.
|
||||
|
||||
## When to Invoke
|
||||
|
||||
Auto-invoke when user says:
|
||||
- "Review this design"
|
||||
- "Analyze Figma mockup"
|
||||
- "Design handoff for [feature]"
|
||||
- "Check design system impact"
|
||||
- "Plan implementation for design"
|
||||
- "Extract tokens from Figma"
|
||||
- "What changed in the design?"
|
||||
|
||||
## What This Does
|
||||
|
||||
**5-Step Workflow**:
|
||||
1. **Design Analysis**: Extract patterns, components, tokens from Figma
|
||||
2. **Codebase Audit**: Compare design vs implementation, find drift
|
||||
3. **Implementation Planning**: Generate phased task breakdown
|
||||
4. **Task Assignment**: Create Navigator task document
|
||||
5. **Handoff**: Ask user to review or start implementation
|
||||
|
||||
**Time Savings**: 6-10 hours → 15-20 minutes (95% reduction)
|
||||
|
||||
## Prerequisites
|
||||
|
||||
### Required
|
||||
|
||||
1. **Python Dependencies**
|
||||
```bash
|
||||
cd skills/product-design
|
||||
./setup.sh # Automated installation
|
||||
# OR manually: pip install -r requirements.txt
|
||||
```
|
||||
|
||||
2. **Figma Desktop** (for automated workflow)
|
||||
- Download: https://www.figma.com/downloads/
|
||||
- Enable MCP: Figma → Preferences → Enable local MCP Server
|
||||
- Must be running during design reviews
|
||||
|
||||
3. **Project Structure**
|
||||
- `.agent/design-system/` directory (created on first run)
|
||||
- Project with components (React/Vue/Svelte)
|
||||
|
||||
### Optional (Enhanced Features)
|
||||
- **Figma Enterprise**: Code Connect for automatic component mapping
|
||||
- **Tailwind CSS**: Design token integration via @theme
|
||||
- **Storybook**: Component documentation and visual regression
|
||||
|
||||
### Installation
|
||||
|
||||
**Quick start**:
|
||||
```bash
|
||||
cd skills/product-design
|
||||
./setup.sh
|
||||
```
|
||||
|
||||
See `INSTALL.md` for detailed installation guide and troubleshooting.
|
||||
|
||||
## Workflow Protocol
|
||||
|
||||
### Step 0: Check Setup (Auto-Run)
|
||||
|
||||
**Before starting, verify Python dependencies installed**:
|
||||
|
||||
```bash
|
||||
# Get Navigator plugin path
|
||||
PLUGIN_PATH=$(dirname "$(dirname "$(dirname "$PWD")")")
|
||||
|
||||
# Check if venv exists
|
||||
if [ ! -d "$PLUGIN_PATH/skills/product-design/venv" ]; then
|
||||
echo "❌ product-design skill not set up"
|
||||
echo ""
|
||||
echo "Run setup (30 seconds):"
|
||||
echo " cd $PLUGIN_PATH/skills/product-design && ./setup.sh"
|
||||
echo ""
|
||||
echo "Or use manual workflow (no Python needed)"
|
||||
exit 1
|
||||
fi
|
||||
```
|
||||
|
||||
**If setup missing**:
|
||||
- Show setup instructions
|
||||
- Offer manual workflow as alternative
|
||||
- **Do not proceed** with automated Figma workflow
|
||||
|
||||
**If setup complete**:
|
||||
- Continue to Step 1 (Design Analysis)
|
||||
|
||||
---
|
||||
|
||||
### Step 1: Design Analysis
|
||||
|
||||
**Objective**: Extract design patterns from Figma or manual description
|
||||
|
||||
#### With Figma MCP (Automated) ✨ SIMPLIFIED
|
||||
|
||||
**New Architecture** (v1.1.0+): Python directly connects to Figma MCP - no manual orchestration!
|
||||
|
||||
```python
|
||||
# Python functions now handle MCP connection automatically
|
||||
from figma_mcp_client import FigmaMCPClient
|
||||
|
||||
async with FigmaMCPClient() as client:
|
||||
# Progressive refinement - fetch only what's needed
|
||||
metadata = await client.get_metadata()
|
||||
components = extract_components(metadata)
|
||||
|
||||
# Fetch details only for complex components
|
||||
for comp in components:
|
||||
if comp['complexity'] == 'high':
|
||||
comp['detail'] = await client.get_design_context(comp['id'])
|
||||
|
||||
# Get design tokens
|
||||
variables = await client.get_variable_defs()
|
||||
```
|
||||
|
||||
**Workflow** (fully automated):
|
||||
1. User provides Figma URL
|
||||
2. Run `python3 functions/design_analyzer.py --figma-url <URL>`
|
||||
3. Python connects to Figma MCP (http://127.0.0.1:3845/mcp)
|
||||
4. Fetches metadata → analyzes → fetches details only if needed
|
||||
5. Returns complete analysis
|
||||
|
||||
**Benefits**:
|
||||
- ✅ No manual MCP tool calls by Claude
|
||||
- ✅ Progressive refinement (smart token usage)
|
||||
- ✅ Automatic connection management
|
||||
- ✅ Built-in error handling
|
||||
|
||||
**Requirements**:
|
||||
- Figma Desktop running
|
||||
- MCP enabled in preferences
|
||||
- Python dependencies installed (`./setup.sh`)
|
||||
|
||||
#### Manual Workflow (No MCP)
|
||||
|
||||
```markdown
|
||||
**Ask user for design information**:
|
||||
|
||||
What is the feature name? [e.g., "Dashboard Redesign"]
|
||||
|
||||
Figma link (optional): [figma.com/file/...]
|
||||
|
||||
**Design Tokens**:
|
||||
List new or modified tokens:
|
||||
- Colors (name: value, e.g., "primary-600: #2563EB")
|
||||
- Spacing (e.g., "spacing-lg: 24px")
|
||||
- Typography (e.g., "heading-xl: 36px/600")
|
||||
- Other (radius, shadow, etc.)
|
||||
|
||||
**Components**:
|
||||
List components in design:
|
||||
- Component name
|
||||
- Type (atom, molecule, organism)
|
||||
- Variants (if any, e.g., "Button: primary/secondary, sm/md/lg")
|
||||
- Similar to existing component? (name if known)
|
||||
|
||||
**Proceed to Step 2** after gathering information
|
||||
```
|
||||
|
||||
#### Run design_analyzer.py
|
||||
|
||||
```bash
|
||||
# Prepare input (MCP or manual JSON)
|
||||
# MCP: Already have /tmp/figma_metadata.json
|
||||
# Manual: Create JSON from user input
|
||||
|
||||
python3 functions/design_analyzer.py \
|
||||
--figma-data /tmp/figma_combined.json \
|
||||
--ui-kit-inventory .agent/design-system/ui-kit-inventory.json \
|
||||
--output /tmp/analysis_results.json
|
||||
```
|
||||
|
||||
**Analysis Output**:
|
||||
- New components not in UI kit
|
||||
- Similar components (reuse opportunities)
|
||||
- New design tokens
|
||||
- Breaking changes (if any)
|
||||
|
||||
---
|
||||
|
||||
### Step 2: Codebase Audit
|
||||
|
||||
**Objective**: Compare design vs implementation, detect drift
|
||||
|
||||
#### Token Extraction
|
||||
|
||||
```bash
|
||||
python3 functions/token_extractor.py \
|
||||
--figma-variables /tmp/figma_variables.json \
|
||||
--existing-tokens .agent/design-system/design-tokens.json \
|
||||
--output /tmp/token_extraction.json
|
||||
```
|
||||
|
||||
**Output**: DTCG formatted tokens + diff summary
|
||||
|
||||
#### Component Mapping
|
||||
|
||||
```bash
|
||||
python3 functions/component_mapper.py \
|
||||
--figma-components /tmp/analysis_results.json \
|
||||
--code-connect-map /tmp/figma_code_connect.json \
|
||||
--project-root . \
|
||||
--output /tmp/component_mappings.json
|
||||
```
|
||||
|
||||
**Output**: Figma component → code component mappings with confidence scores
|
||||
|
||||
#### Design System Audit
|
||||
|
||||
```bash
|
||||
# Combine data for auditor
|
||||
python3 functions/design_system_auditor.py \
|
||||
--figma-data /tmp/combined_figma.json \
|
||||
--code-data /tmp/combined_code.json \
|
||||
--output /tmp/audit_results.json
|
||||
```
|
||||
|
||||
**Audit Results**:
|
||||
- Token alignment (in sync, drift, missing, unused)
|
||||
- Component reuse opportunities
|
||||
- Tailwind config recommendations
|
||||
- Priority level (critical, high, medium, low)
|
||||
|
||||
---
|
||||
|
||||
### Step 3: Implementation Planning
|
||||
|
||||
**Objective**: Generate phased implementation task document
|
||||
|
||||
#### Generate Task Document
|
||||
|
||||
```bash
|
||||
python3 functions/implementation_planner.py \
|
||||
--task-id "TASK-{{next_task_number}}" \
|
||||
--feature-name "{{feature_name}}" \
|
||||
--analysis-results /tmp/combined_analysis.json \
|
||||
--review-reference ".agent/design-system/reviews/{{date}}-{{feature-slug}}.md" \
|
||||
--output .agent/tasks/TASK-{{next_task_number}}-{{feature-slug}}.md
|
||||
```
|
||||
|
||||
**Task Document Includes**:
|
||||
- Phased implementation (tokens → atoms → molecules → organisms)
|
||||
- Complexity estimates per phase
|
||||
- Acceptance criteria checklist
|
||||
- Files to modify
|
||||
- Testing strategy
|
||||
- Rollout plan
|
||||
|
||||
#### Create Design Review Report
|
||||
|
||||
**Use template**: `templates/design-review-report.md`
|
||||
|
||||
**Save to**: `.agent/design-system/reviews/YYYY-MM-DD-{{feature-name}}.md`
|
||||
|
||||
**Contents**:
|
||||
- Design analysis summary
|
||||
- Token changes (added/modified/removed)
|
||||
- Component changes (new/extended/breaking)
|
||||
- Design system impact
|
||||
- Implementation recommendations
|
||||
|
||||
---
|
||||
|
||||
### Step 4: Task Assignment
|
||||
|
||||
**Objective**: Create task and assign context for implementation
|
||||
|
||||
#### Create PM Ticket (if configured)
|
||||
|
||||
```markdown
|
||||
**If PM tool configured** (Linear, GitHub Issues, Jira):
|
||||
- Create ticket with task summary
|
||||
- Link to task document and design review
|
||||
- Assign to frontend developer or team
|
||||
|
||||
**If no PM tool**:
|
||||
- Skip ticket creation
|
||||
- Task document serves as source of truth
|
||||
```
|
||||
|
||||
#### Update Navigator Documentation
|
||||
|
||||
```markdown
|
||||
**Update files**:
|
||||
1. `.agent/tasks/TASK-{{number}}-{{feature}}.md` (created in Step 3)
|
||||
2. `.agent/design-system/reviews/{{date}}-{{feature}}.md` (design review)
|
||||
3. `.agent/DEVELOPMENT-README.md` (add task to index)
|
||||
|
||||
**Use TodoWrite** to track implementation phases
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Step 5: Implementation Handoff
|
||||
|
||||
**Objective**: Present results and get user decision
|
||||
|
||||
#### Present Summary
|
||||
|
||||
```markdown
|
||||
✅ Design review complete for {{Feature Name}}
|
||||
|
||||
**Generated Documentation**:
|
||||
- Design review: `.agent/design-system/reviews/{{date}}-{{feature}}.md`
|
||||
- Implementation plan: `.agent/tasks/TASK-{{number}}-{{feature}}.md`
|
||||
{{#if pm_configured}}- PM ticket: {{ticket_id}} (status: ready for development){{/if}}
|
||||
|
||||
**Summary**:
|
||||
- Design Tokens: {{new_count}} new, {{modified_count}} modified
|
||||
- Components: {{new_components}} new, {{extend_components}} to extend
|
||||
- Estimated Time: {{total_hours}} hours
|
||||
- Complexity: {{complexity_level}}
|
||||
{{#if breaking_changes}}- ⚠️ Breaking Changes: {{breaking_count}} component(s){{/if}}
|
||||
|
||||
**Next Steps**:
|
||||
[1] Start implementation now
|
||||
[2] Review plan first (load task document)
|
||||
[3] Modify plan before starting
|
||||
|
||||
**Recommended**: After implementation, set up visual regression testing:
|
||||
"Set up visual regression for {{components}}"
|
||||
|
||||
This ensures pixel-perfect implementation and prevents future drift (15 min setup).
|
||||
|
||||
Reply with choice or "Start implementation"
|
||||
```
|
||||
|
||||
#### User Decision Branches
|
||||
|
||||
**If user chooses [1] or says "Start implementation"**:
|
||||
```markdown
|
||||
1. Load task document: `Read .agent/tasks/TASK-{{number}}-{{feature}}.md`
|
||||
2. Load design review: `Read .agent/design-system/reviews/{{date}}-{{feature}}.md`
|
||||
3. Begin Phase 1 (typically design tokens)
|
||||
4. Follow autonomous completion protocol when done
|
||||
5. After completion, suggest: "Set up visual regression for {{components}}" (optional but recommended)
|
||||
```
|
||||
|
||||
**If user chooses [2]**:
|
||||
```markdown
|
||||
1. Load and display task document
|
||||
2. Highlight key phases and acceptance criteria
|
||||
3. Ask: "Ready to start or need changes?"
|
||||
```
|
||||
|
||||
**If user chooses [3]**:
|
||||
```markdown
|
||||
1. Load task document
|
||||
2. Ask what modifications needed
|
||||
3. Edit task document
|
||||
4. Regenerate if major changes
|
||||
5. Then proceed to implementation
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Predefined Functions
|
||||
|
||||
### functions/design_analyzer.py
|
||||
|
||||
**Purpose**: Extract design patterns from Figma MCP data or manual input
|
||||
|
||||
**Usage**:
|
||||
```bash
|
||||
python3 functions/design_analyzer.py \
|
||||
--figma-data /path/to/figma_mcp_combined.json \
|
||||
--ui-kit-inventory .agent/design-system/ui-kit-inventory.json \
|
||||
--output /tmp/analysis.json
|
||||
```
|
||||
|
||||
**Input Format** (figma_mcp_combined.json):
|
||||
```json
|
||||
{
|
||||
"metadata": { ... }, // get_metadata response
|
||||
"variables": { ... }, // get_variable_defs response
|
||||
"code_connect_map": { ... } // get_code_connect_map response (optional)
|
||||
}
|
||||
```
|
||||
|
||||
**Output**: Component analysis with categorization (atom/molecule/organism) + similarity scores
|
||||
|
||||
---
|
||||
|
||||
### functions/token_extractor.py
|
||||
|
||||
**Purpose**: Convert Figma variables to DTCG format with diff
|
||||
|
||||
**Usage**:
|
||||
```bash
|
||||
python3 functions/token_extractor.py \
|
||||
--figma-variables /path/to/figma_variables.json \
|
||||
--existing-tokens .agent/design-system/design-tokens.json \
|
||||
--format full \
|
||||
--output /tmp/tokens.json
|
||||
```
|
||||
|
||||
**Output Formats**:
|
||||
- `full`: DTCG tokens + diff + summary
|
||||
- `tokens-only`: Just DTCG tokens
|
||||
- `diff-only`: Just diff and summary
|
||||
|
||||
**DTCG Format** (W3C Design Tokens spec):
|
||||
```json
|
||||
{
|
||||
"color": {
|
||||
"primary": {
|
||||
"500": {
|
||||
"$value": "#3B82F6",
|
||||
"$type": "color",
|
||||
"$description": "Primary brand color"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### functions/component_mapper.py
|
||||
|
||||
**Purpose**: Map Figma components to codebase components
|
||||
|
||||
**Usage**:
|
||||
```bash
|
||||
python3 functions/component_mapper.py \
|
||||
--figma-components /path/to/analysis_results.json \
|
||||
--code-connect-map /path/to/code_connect.json \
|
||||
--project-root . \
|
||||
--output /tmp/mappings.json
|
||||
```
|
||||
|
||||
**Mapping Strategy**:
|
||||
1. Code Connect first (100% confidence)
|
||||
2. Fuzzy name matching (70%+ confidence)
|
||||
3. Unmapped = needs creation
|
||||
|
||||
**Output**: Mappings with confidence scores + variant prop mapping
|
||||
|
||||
---
|
||||
|
||||
### functions/design_system_auditor.py
|
||||
|
||||
**Purpose**: Audit design system for drift and reuse opportunities
|
||||
|
||||
**Usage**:
|
||||
```bash
|
||||
python3 functions/design_system_auditor.py \
|
||||
--figma-data /path/to/combined_figma.json \
|
||||
--code-data /path/to/combined_code.json \
|
||||
--output /tmp/audit.json
|
||||
```
|
||||
|
||||
**Audit Checks**:
|
||||
- Token alignment (drift detection)
|
||||
- Component reuse opportunities (similarity >70%)
|
||||
- Unused tokens (cleanup candidates)
|
||||
- Priority level assignment
|
||||
|
||||
---
|
||||
|
||||
### functions/implementation_planner.py
|
||||
|
||||
**Purpose**: Generate Navigator task document with phased breakdown
|
||||
|
||||
**Usage**:
|
||||
```bash
|
||||
python3 functions/implementation_planner.py \
|
||||
--task-id "TASK-16" \
|
||||
--feature-name "Dashboard Redesign" \
|
||||
--analysis-results /path/to/combined_analysis.json \
|
||||
--review-reference ".agent/design-system/reviews/2025-10-21-dashboard.md" \
|
||||
--output .agent/tasks/TASK-16-dashboard-redesign.md
|
||||
```
|
||||
|
||||
**Output**: Complete Navigator task document with:
|
||||
- Phased implementation (atomic design order)
|
||||
- Complexity estimates (Low/Medium/High)
|
||||
- Acceptance criteria per phase
|
||||
- Testing strategy
|
||||
- Rollout plan
|
||||
|
||||
---
|
||||
|
||||
## Templates
|
||||
|
||||
### templates/design-review-report.md
|
||||
|
||||
**When**: Step 3 - Creating design review documentation
|
||||
|
||||
**Structure**:
|
||||
```markdown
|
||||
# Design Review: {{Feature Name}}
|
||||
|
||||
**Date**: {{YYYY-MM-DD}}
|
||||
**Figma**: [Link]({{figma_url}})
|
||||
**Reviewer**: Navigator Product Design Skill
|
||||
|
||||
## New Design Tokens
|
||||
[Token changes]
|
||||
|
||||
## New Components Required
|
||||
[Component list with categories]
|
||||
|
||||
## Design System Impact
|
||||
[High/Medium/Low impact analysis]
|
||||
|
||||
## Implementation Recommendations
|
||||
[Phased approach]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Design System Documentation Structure
|
||||
|
||||
### Initial Setup (First Run)
|
||||
|
||||
```bash
|
||||
mkdir -p .agent/design-system/reviews
|
||||
|
||||
# Create initial files
|
||||
touch .agent/design-system/design-tokens.json
|
||||
touch .agent/design-system/ui-kit-inventory.json
|
||||
touch .agent/design-system/component-mapping.json
|
||||
```
|
||||
|
||||
**design-tokens.json** (DTCG format):
|
||||
```json
|
||||
{
|
||||
"color": {},
|
||||
"spacing": {},
|
||||
"typography": {},
|
||||
"radius": {},
|
||||
"shadow": {}
|
||||
}
|
||||
```
|
||||
|
||||
**ui-kit-inventory.json**:
|
||||
```json
|
||||
{
|
||||
"components": [
|
||||
{
|
||||
"name": "Button",
|
||||
"path": "src/components/ui/Button.tsx",
|
||||
"category": "atom",
|
||||
"variants": ["primary", "secondary", "ghost"],
|
||||
"figma_link": "..."
|
||||
}
|
||||
],
|
||||
"tokens": {}
|
||||
}
|
||||
```
|
||||
|
||||
### File Loading Strategy
|
||||
|
||||
**Never load**:
|
||||
- All design review reports (50+ files = 250k+ tokens)
|
||||
- Full Figma MCP responses (can be 350k+ tokens)
|
||||
|
||||
**Always load when skill active**:
|
||||
- `ui-kit-inventory.json` (~3k tokens)
|
||||
- `design-tokens.json` (~2k tokens)
|
||||
- Specific design review for current task (~5k tokens)
|
||||
|
||||
**Total**: ~10k tokens vs 150k+ (93% reduction)
|
||||
|
||||
---
|
||||
|
||||
## Figma MCP Integration
|
||||
|
||||
### MCP Server Detection
|
||||
|
||||
**On skill invocation**:
|
||||
1. Check for Figma MCP tools availability
|
||||
2. Detect local vs remote server
|
||||
3. Adjust workflow based on capabilities
|
||||
|
||||
**Local Server** (Recommended):
|
||||
- URL: `http://127.0.0.1:3845/mcp`
|
||||
- Tools: All (metadata, variables, code_connect, design_context)
|
||||
- Requires: Figma Desktop app running
|
||||
|
||||
**Remote Server** (Fallback):
|
||||
- URL: `https://mcp.figma.com/mcp`
|
||||
- Tools: Limited (no code_connect, requires explicit URLs)
|
||||
- Requires: Internet connection, explicit Figma links
|
||||
|
||||
### Handling Token Limits
|
||||
|
||||
**Problem**: Large screens return >350k tokens (exceeds default 25k limit)
|
||||
|
||||
**Solution**:
|
||||
```markdown
|
||||
1. Use `get_metadata` first (sparse XML, ~5k tokens)
|
||||
2. Parse metadata to identify component node IDs
|
||||
3. Fetch components individually via `get_design_context`
|
||||
4. Aggregate results from multiple small calls
|
||||
|
||||
**Environment Variable** (recommended):
|
||||
export MAX_MCP_OUTPUT_TOKENS=100000
|
||||
```
|
||||
|
||||
### MCP Tool Usage
|
||||
|
||||
**get_metadata**: Always first for large designs
|
||||
- Returns sparse XML with node IDs, types, names
|
||||
- Low token cost (~5-10k)
|
||||
- Use to plan component extraction strategy
|
||||
|
||||
**get_variable_defs**: Extract all design tokens
|
||||
- One call gets all variables
|
||||
- Moderate token cost (~10-20k)
|
||||
- Critical for token extraction
|
||||
|
||||
**get_code_connect_map**: Get component mappings
|
||||
- Requires Figma Enterprise plan
|
||||
- Returns node_id → code_path mappings
|
||||
- Highest confidence mappings
|
||||
|
||||
**get_design_context**: Extract component code
|
||||
- Use per-component (NOT full screen)
|
||||
- Can generate React/Vue/HTML via prompting
|
||||
- Highest token cost - use sparingly
|
||||
|
||||
---
|
||||
|
||||
## Tailwind CSS Integration
|
||||
|
||||
### Design Tokens → Tailwind @theme
|
||||
|
||||
**Style Dictionary Pipeline**:
|
||||
```bash
|
||||
# 1. Tokens extracted to design-tokens.json (DTCG format)
|
||||
# 2. Run Style Dictionary build
|
||||
npx style-dictionary build
|
||||
|
||||
# 3. Generates tailwind-tokens.css
|
||||
# @theme {
|
||||
# --color-primary-500: #3B82F6;
|
||||
# --spacing-md: 16px;
|
||||
# }
|
||||
|
||||
# 4. Tailwind auto-generates utilities
|
||||
# .bg-primary-500, .p-md, etc.
|
||||
```
|
||||
|
||||
### Figma Auto Layout → Tailwind Classes
|
||||
|
||||
**Translation Rules** (apply during code generation):
|
||||
```
|
||||
Direction:
|
||||
Horizontal → flex-row
|
||||
Vertical → flex-col
|
||||
|
||||
Spacing:
|
||||
Gap → gap-{token}
|
||||
Padding → p-{token}, px-{token}, py-{token}
|
||||
|
||||
Alignment:
|
||||
Start → items-start, justify-start
|
||||
Center → items-center, justify-center
|
||||
Space Between → justify-between
|
||||
|
||||
Sizing:
|
||||
Hug → w-auto / h-auto
|
||||
Fill → flex-1
|
||||
Fixed → w-{value} / h-{value}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Token Optimization
|
||||
|
||||
### Navigator Principles
|
||||
|
||||
**Load on demand**:
|
||||
- Design review for current task only
|
||||
- UI kit inventory (always needed)
|
||||
- Design tokens (always needed)
|
||||
|
||||
**Use Task agent for codebase searches**:
|
||||
- Finding all component files (60-80% token savings)
|
||||
- Searching for token usage in Tailwind config
|
||||
- Analyzing component variant patterns
|
||||
|
||||
**Compact after completion**:
|
||||
- Clear context after design review
|
||||
- Preserve task document in marker
|
||||
- Clean slate for implementation
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### "Figma MCP tool not found"
|
||||
|
||||
**Issue**: MCP server not available
|
||||
|
||||
**Solutions**:
|
||||
1. Check Figma Desktop app is running (for local server)
|
||||
2. Verify MCP server added: `claude mcp add --transport http figma-desktop http://127.0.0.1:3845/mcp`
|
||||
3. Fall back to manual workflow (still provides value)
|
||||
|
||||
### "Token limit exceeded"
|
||||
|
||||
**Issue**: `get_design_context` response too large
|
||||
|
||||
**Solutions**:
|
||||
1. Use `get_metadata` first, then fetch components individually
|
||||
2. Set `MAX_MCP_OUTPUT_TOKENS=100000`
|
||||
3. Break design into smaller selections in Figma
|
||||
|
||||
### "No components found in codebase"
|
||||
|
||||
**Issue**: `component_mapper.py` finds no matches
|
||||
|
||||
**Solutions**:
|
||||
1. Check `--project-root` points to correct directory
|
||||
2. Verify component file extensions (tsx, jsx, vue)
|
||||
3. Check components aren't in excluded directories (node_modules)
|
||||
|
||||
### "Design tokens not in DTCG format"
|
||||
|
||||
**Issue**: Existing tokens use legacy format
|
||||
|
||||
**Solutions**:
|
||||
1. Run `token_extractor.py` with `--format tokens-only` to convert
|
||||
2. Backup existing tokens first
|
||||
3. Update Style Dictionary config to read DTCG format
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
### Efficiency Gains
|
||||
|
||||
**Before**: 6-10 hours per design handoff
|
||||
**After**: 15-20 minutes
|
||||
**Savings**: 95% time reduction
|
||||
|
||||
### Quality Metrics
|
||||
|
||||
- Design system drift detected automatically
|
||||
- 100% token consistency via automated sync
|
||||
- Component reuse rate tracked
|
||||
- Implementation accuracy via acceptance criteria
|
||||
|
||||
---
|
||||
|
||||
## Example Usage
|
||||
|
||||
```
|
||||
User: "Review the dashboard redesign from Figma: https://figma.com/file/..."
|
||||
|
||||
Navigator:
|
||||
1. Checks for Figma MCP availability
|
||||
2. Extracts metadata, variables, code_connect_map
|
||||
3. Runs design_analyzer.py → finds 3 new components, 12 new tokens
|
||||
4. Runs token_extractor.py → generates DTCG tokens, finds 5 drift issues
|
||||
5. Runs component_mapper.py → maps 2 components, 1 new needed
|
||||
6. Runs design_system_auditor.py → priority: HIGH (drift detected)
|
||||
7. Runs implementation_planner.py → generates TASK-17 with 3 phases
|
||||
8. Creates design review report
|
||||
9. Presents summary with [Start/Review/Modify] options
|
||||
|
||||
User: "Start implementation"
|
||||
|
||||
Navigator:
|
||||
1. Loads TASK-17 document
|
||||
2. Begins Phase 1: Design Tokens
|
||||
3. Updates design-tokens.json with 12 new tokens
|
||||
4. Runs Style Dictionary build
|
||||
5. Updates Tailwind config
|
||||
6. Commits changes
|
||||
7. Moves to Phase 2: StatBadge component
|
||||
8. ... continues through all phases
|
||||
9. Autonomous completion when done
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Last Updated**: 2025-10-21
|
||||
**Navigator Version**: 3.2.0 (target)
|
||||
**Skill Version**: 1.0.0
|
||||
Reference in New Issue
Block a user