Files
Claude-Code-Workflow/.claude/commands/memory/style-skill-memory.md

25 KiB

name, description, argument-hint, allowed-tools, auto-continue
name description argument-hint allowed-tools auto-continue
style-skill-memory Generate SKILL memory package from style reference for easy loading and consistent design system usage [package-name] [--regenerate] Bash,Read,Write,TodoWrite true

Memory: Style SKILL Memory Generator

Overview

Purpose: Convert style reference package into SKILL memory for easy loading and context management.

Input: Style reference package at .workflow/reference_style/{package-name}/

Output: SKILL memory index at .claude/skills/style-{package-name}/SKILL.md

Use Case: Load design system context when working with UI components, analyzing design patterns, or implementing style guidelines.

Key Features:

  • Extracts primary design references (colors, typography, spacing, etc.)
  • Provides dynamic adjustment guidelines for design tokens
  • Progressive loading structure for efficient token usage
  • Interactive preview showcase

Usage

Command Syntax

/memory:style-skill-memory [package-name] [--regenerate]

# Arguments
package-name    Style reference package name (required)
--regenerate    Force regenerate SKILL.md even if it exists (optional)

Usage Examples

# Generate SKILL memory for package
/memory:style-skill-memory main-app-style-v1

# Regenerate SKILL memory
/memory:style-skill-memory main-app-style-v1 --regenerate

# Package name from current directory or default
/memory:style-skill-memory

Execution Process

Phase 1: Validate Package

Purpose: Check if style reference package exists

TodoWrite (First Action):

[
  {"content": "Validate style reference package", "status": "in_progress", "activeForm": "Validating package"},
  {"content": "Read package data and extract design references", "status": "pending", "activeForm": "Reading package data"},
  {"content": "Generate SKILL.md with progressive loading", "status": "pending", "activeForm": "Generating SKILL.md"}
]

Step 1: Parse Package Name

# Get package name from argument or auto-detect
bash(echo "${package_name}" || basename "$(pwd)" | sed 's/^style-//')

Store result as package_name

Step 2: Validate Package Exists

bash(test -d .workflow/reference_style/${package_name} && echo "exists" || echo "missing")

Error Handling:

if (package_not_exists) {
  error("ERROR: Style reference package not found: ${package_name}")
  error("HINT: Run '/workflow:ui-design:codify-style' first to create package")
  error("Available packages:")
  bash(ls -1 .workflow/reference_style/ 2>/dev/null || echo "  (none)")
  exit(1)
}

Step 3: Check SKILL Already Exists

bash(test -f .claude/skills/style-${package_name}/SKILL.md && echo "exists" || echo "missing")

Decision Logic:

if (skill_exists && !regenerate_flag) {
  echo("SKILL memory already exists for: ${package_name}")
  echo("Use --regenerate to force regeneration")
  exit(0)
}

if (regenerate_flag && skill_exists) {
  echo("Regenerating SKILL memory for: ${package_name}")
}

Summary Variables:

  • PACKAGE_NAME: Style reference package name
  • PACKAGE_DIR: .workflow/reference_style/${package_name}
  • SKILL_DIR: .claude/skills/style-${package_name}
  • REGENERATE: true if --regenerate flag, false otherwise

TodoWrite Update:

[
  {"content": "Validate style reference package", "status": "completed", "activeForm": "Validating package"},
  {"content": "Read package data and extract design references", "status": "in_progress", "activeForm": "Reading package data"}
]

Phase 2: Read Package Data & Extract Design References

Purpose: Extract package information and primary design references for SKILL description generation

Step 1: Count Components

bash(jq '.layout_templates | length' .workflow/reference_style/${package_name}/layout-templates.json 2>/dev/null || echo 0)

Store result as component_count

Step 2: Extract Component Types

# Extract component names from layout templates
bash(jq -r '.layout_templates | keys[]' .workflow/reference_style/${package_name}/layout-templates.json 2>/dev/null | head -10)

Store as COMPONENT_TYPES: List of available component types

Step 3: Read Design Tokens

Read(file_path=".workflow/reference_style/${package_name}/design-tokens.json")

Extract Primary Design References:

Colors (top 3-5 most important):

bash(jq -r '.colors | to_entries | .[0:5] | .[] | "\(.key): \(.value)"' .workflow/reference_style/${package_name}/design-tokens.json 2>/dev/null | head -5)

Typography (heading and body fonts):

bash(jq -r '.typography | to_entries | select(.key | contains("family")) | .[] | "\(.key): \(.value)"' .workflow/reference_style/${package_name}/design-tokens.json 2>/dev/null)

Spacing Scale (base spacing values):

bash(jq -r '.spacing | to_entries | .[0:5] | .[] | "\(.key): \(.value)"' .workflow/reference_style/${package_name}/design-tokens.json 2>/dev/null)

Border Radius (base radius values):

bash(jq -r '.border_radius | to_entries | .[] | "\(.key): \(.value)"' .workflow/reference_style/${package_name}/design-tokens.json 2>/dev/null)

Shadows (elevation levels):

bash(jq -r '.shadows | to_entries | .[0:3] | .[] | "\(.key): \(.value)"' .workflow/reference_style/${package_name}/design-tokens.json 2>/dev/null)

Store extracted references as:

  • PRIMARY_COLORS: List of primary color tokens
  • TYPOGRAPHY_FONTS: Font family tokens
  • SPACING_SCALE: Base spacing values
  • BORDER_RADIUS: Radius values
  • SHADOWS: Shadow definitions

Step 4: Read Animation Tokens (if available)

# Check if animation tokens exist
bash(test -f .workflow/reference_style/${package_name}/animation-tokens.json && echo "available" || echo "not_available")

If available, extract:

Read(file_path=".workflow/reference_style/${package_name}/animation-tokens.json")

# Extract primary animation values
bash(jq -r '.duration | to_entries | .[] | "\(.key): \(.value)"' .workflow/reference_style/${package_name}/animation-tokens.json 2>/dev/null)
bash(jq -r '.easing | to_entries | .[0:3] | .[] | "\(.key): \(.value)"' .workflow/reference_style/${package_name}/animation-tokens.json 2>/dev/null)

Store as:

  • ANIMATION_DURATIONS: Animation duration tokens
  • EASING_FUNCTIONS: Easing function tokens

Step 5: Count Files

bash(cd .workflow/reference_style/${package_name} && ls -1 *.json *.html *.css 2>/dev/null | wc -l)

Store result as file_count

Summary Data Collected:

  • COMPONENT_COUNT: Number of components in layout templates
  • COMPONENT_TYPES: List of component types (first 10)
  • FILE_COUNT: Total files in package
  • HAS_ANIMATIONS: Whether animation tokens are available
  • PRIMARY_COLORS: Primary color tokens with values
  • TYPOGRAPHY_FONTS: Font family tokens
  • SPACING_SCALE: Base spacing scale
  • BORDER_RADIUS: Border radius values
  • SHADOWS: Shadow definitions
  • ANIMATION_DURATIONS: Animation durations (if available)
  • EASING_FUNCTIONS: Easing functions (if available)

TodoWrite Update:

[
  {"content": "Read package data and extract design references", "status": "completed", "activeForm": "Reading package data"},
  {"content": "Generate SKILL.md with progressive loading", "status": "in_progress", "activeForm": "Generating SKILL.md"}
]

Phase 3: Generate SKILL.md

Purpose: Create SKILL memory index with progressive loading structure and design references

Step 1: Create SKILL Directory

bash(mkdir -p .claude/skills/style-${package_name})

Step 2: Generate Intelligent Description

Format:

{package_name} design system with {component_count} layout templates and interactive preview (located at .workflow/reference_style/{package_name}). Load when working with UI components, design tokens, layout patterns, analyzing component structures, or implementing visual consistency.

Key Elements:

  • Component Count: Emphasize available layout templates
  • Path Reference: Precise package location
  • Trigger Keywords: UI components, design tokens, layout patterns, component structures
  • Action Coverage: working with, analyzing, implementing

Example:

main-app-style-v1 design system with 8 layout templates and interactive preview (located at .workflow/reference_style/main-app-style-v1). Load when working with UI components, design tokens, layout patterns, analyzing component structures, or implementing visual consistency.

Step 3: Write SKILL.md

Use Write tool to generate SKILL.md with the following complete content:

---
name: style-{package_name}
description: {intelligent description from Step 2}
---

# {Package Name} Style SKILL Package

## Documentation: `../../../.workflow/reference_style/{package_name}/`

## Package Overview

Style reference package extracted from codebase with layout templates, design tokens, and interactive preview.

**Package Details**:
- Package: {package_name}
- Layout Templates: {component_count}
- Component Types: {comma-separated list of COMPONENT_TYPES}
- Files: {file_count}
- Animation Tokens: {has_animations ? "✓ Available" : "Not available"}

---

## ⚡ Primary Design References

**IMPORTANT**: These are **reference values** extracted from the codebase. They should be **dynamically adjusted** based on your specific design needs, not treated as fixed constraints.

### 🎨 Colors

{FOR each color in PRIMARY_COLORS:
  - **{color.key}**: `{color.value}`
}

**Usage Guidelines**:
- These colors establish the foundation of the design system
- Adjust saturation, lightness, or hue based on:
  - Brand requirements and accessibility needs
  - Context (light/dark mode, high-contrast themes)
  - User feedback and A/B testing results
- Use color theory principles to maintain harmony when modifying

### 📝 Typography

{FOR each font in TYPOGRAPHY_FONTS:
  - **{font.key}**: `{font.value}`
}

**Usage Guidelines**:
- Font families can be substituted based on:
  - Brand identity and design language
  - Performance requirements (web fonts vs. system fonts)
  - Accessibility and readability considerations
  - Platform-specific availability
- Maintain hierarchy and scale relationships when changing fonts

### 📏 Spacing Scale

{FOR each spacing in SPACING_SCALE:
  - **{spacing.key}**: `{spacing.value}`
}

**Usage Guidelines**:
- Spacing values form a consistent rhythm system
- Adjust scale based on:
  - Target device (mobile vs. desktop vs. tablet)
  - Content density requirements
  - Component-specific needs (compact vs. comfortable layouts)
- Maintain proportional relationships when scaling

### 🔲 Border Radius

{FOR each radius in BORDER_RADIUS:
  - **{radius.key}**: `{radius.value}`
}

**Usage Guidelines**:
- Border radius affects visual softness and modernity
- Adjust based on:
  - Design aesthetic (sharp vs. rounded vs. pill-shaped)
  - Component type (buttons, cards, inputs have different needs)
  - Platform conventions (iOS vs. Android vs. Web)

### 🌫️ Shadows

{FOR each shadow in SHADOWS:
  - **{shadow.key}**: `{shadow.value}`
}

**Usage Guidelines**:
- Shadows create elevation and depth perception
- Adjust based on:
  - Material design depth levels
  - Light/dark mode contexts
  - Performance considerations (complex shadows impact rendering)
  - Visual hierarchy needs

{IF HAS_ANIMATIONS:
### ⏱️ Animation & Timing

**Durations**:
{FOR each duration in ANIMATION_DURATIONS:
  - **{duration.key}**: `{duration.value}`
}

**Easing Functions**:
{FOR each easing in EASING_FUNCTIONS:
  - **{easing.key}**: `{easing.value}`
}

**Usage Guidelines**:
- Animation timing affects perceived responsiveness and polish
- Adjust based on:
  - User expectations and platform conventions
  - Accessibility preferences (reduced motion)
  - Animation type (micro-interactions vs. page transitions)
  - Performance constraints (mobile vs. desktop)
}

---

## 🎯 Design Adaptation Strategies

### When to Adjust Design References

**Brand Alignment**:
- Modify colors to match brand identity and guidelines
- Adjust typography to reflect brand personality
- Tune spacing and radius to align with brand aesthetic

**Accessibility Requirements**:
- Increase color contrast ratios for WCAG compliance
- Adjust font sizes and spacing for readability
- Modify animation durations for reduced-motion preferences

**Platform Optimization**:
- Adapt spacing for mobile touch targets (min 44x44px)
- Adjust shadows and radius for platform conventions
- Optimize animation performance for target devices

**Context-Specific Needs**:
- Dark mode: Adjust colors, shadows, and contrasts
- High-density displays: Fine-tune spacing and sizing
- Responsive design: Scale tokens across breakpoints

### How to Apply Adjustments

1. **Identify Need**: Determine which tokens need adjustment based on your specific requirements
2. **Maintain Relationships**: Preserve proportional relationships between related tokens
3. **Test Thoroughly**: Validate changes across components and use cases
4. **Document Changes**: Track modifications and rationale for team alignment
5. **Iterate**: Refine based on user feedback and testing results

---

## Progressive Loading

### Level 0: Design Tokens (~5K tokens)

Essential design token system for consistent styling.

**Files**:
- [Design Tokens](../../../.workflow/reference_style/{package_name}/design-tokens.json) - Colors, typography, spacing, shadows, borders

**Use when**: Quick token reference, applying consistent styles, color/typography queries

---

### Level 1: Layout Templates (~12K tokens)

Component layout patterns extracted from codebase.

**Files**:
- Level 0 files
- [Layout Templates](../../../.workflow/reference_style/{package_name}/layout-templates.json) - Component structures with HTML/CSS patterns

**Use when**: Building components, understanding component architecture, implementing layouts

---

### Level 2: Complete System (~20K tokens)

Full design system with animations and interactive preview.

**Files**:
- All Level 1 files
- [Animation Tokens](../../../.workflow/reference_style/{package_name}/animation-tokens.json) - Animation durations, easing, transitions _(if available)_
- [Preview HTML](../../../.workflow/reference_style/{package_name}/preview.html) - Interactive showcase (reference only)
- [Preview CSS](../../../.workflow/reference_style/{package_name}/preview.css) - Showcase styling (reference only)

**Use when**: Comprehensive analysis, animation development, complete design system understanding

---

## Interactive Preview

**Location**: `.workflow/reference_style/{package_name}/preview.html`

**View in Browser**:
```bash
cd .workflow/reference_style/{package_name}
python -m http.server 8080
# Open http://localhost:8080/preview.html

Features:

  • Color palette swatches with values
  • Typography scale and combinations
  • All components with variants and states
  • Spacing, radius, shadow visual examples
  • Interactive state demonstrations
  • Usage code snippets

Usage Guidelines

Loading Levels

Level 0 (5K): Design tokens only

Load Level 0 for design token reference

Level 1 (12K): Tokens + layout templates

Load Level 1 for layout templates and design tokens

Level 2 (20K): Complete system with animations and preview

Load Level 2 for complete design system with preview reference

Common Use Cases

Implementing UI Components:

  • Load Level 1 for layout templates
  • Reference layout-templates.json for component structures
  • Apply design tokens from design-tokens.json

Ensuring Style Consistency:

  • Load Level 0 for design tokens
  • Use design-tokens.json for colors, typography, spacing
  • Check preview.html for visual reference

Analyzing Component Patterns:

  • Load Level 2 for complete analysis
  • Review layout-templates.json for component architecture
  • Check preview.html for implementation examples

Animation Development:

  • Load Level 2 for animation tokens (if available)
  • Reference animation-tokens.json for durations and easing
  • Apply consistent timing and transitions

Package Structure

.workflow/reference_style/{package_name}/
├── layout-templates.json   # Layout templates from codebase
├── design-tokens.json     # Design token system
├── animation-tokens.json  # Animation tokens (optional)
├── preview.html          # Interactive showcase
└── preview.css           # Showcase styling

Regeneration

To update this SKILL memory after package changes:

/memory:style-skill-memory {package_name} --regenerate

Generate Package:

/workflow:ui-design:codify-style --source ./src --package-name {package_name}

Update Package: Re-run codify-style with same package name to update extraction.


**Step 4: Verify SKILL.md Created**

```bash
bash(test -f .claude/skills/style-${package_name}/SKILL.md && echo "success" || echo "failed")

TodoWrite Update:

[
  {"content": "Validate style reference package", "status": "completed", "activeForm": "Validating package"},
  {"content": "Read package data and extract design references", "status": "completed", "activeForm": "Reading package data"},
  {"content": "Generate SKILL.md with progressive loading", "status": "completed", "activeForm": "Generating SKILL.md"}
]

Final Action: Report completion summary to user


Completion Message

Display extracted primary design references to user:

✅ SKILL memory generated successfully!

Package: {package_name}
SKILL Location: .claude/skills/style-{package_name}/SKILL.md

📦 Package Details:
- Layout Templates: {component_count}
- Component Types: {show first 5 COMPONENT_TYPES, then "+ X more"}
- Files: {file_count}
- Animation Tokens: {has_animations ? "✓ Available" : "Not available"}

🎨 Primary Design References Extracted:
{IF PRIMARY_COLORS exists:
Colors:
  {show first 3 PRIMARY_COLORS with key: value}
  {if more than 3: + X more colors}
}

{IF TYPOGRAPHY_FONTS exists:
Typography:
  {show all TYPOGRAPHY_FONTS}
}

{IF SPACING_SCALE exists:
Spacing Scale:
  {show first 3 SPACING_SCALE items}
  {if more than 3: + X more spacing tokens}
}

{IF BORDER_RADIUS exists:
Border Radius:
  {show all BORDER_RADIUS}
}

{IF HAS_ANIMATIONS:
Animation:
  Durations: {count ANIMATION_DURATIONS} tokens
  Easing: {count EASING_FUNCTIONS} functions
}

⚡ Progressive Loading Levels:
- Level 0: Design Tokens (~5K tokens)
- Level 1: Tokens + Layout Templates (~12K tokens)
- Level 2: Complete System (~20K tokens)

💡 Usage:
Load design system context when working with:
- UI component implementation
- Layout pattern analysis
- Design token application
- Style consistency validation

⚠️ IMPORTANT:
The extracted design references are REFERENCE VALUES, not fixed constraints.
Dynamically adjust colors, spacing, typography, and other tokens based on:
- Brand requirements and accessibility needs
- Platform-specific conventions and optimizations
- Context (light/dark mode, responsive breakpoints)
- User feedback and testing results

See SKILL.md for detailed adjustment guidelines and best practices.

🎯 Preview:
Open interactive showcase:
  file://{absolute_path}/.workflow/reference_style/{package_name}/preview.html

📋 Next Steps:
1. Load appropriate level based on your task context
2. Review Primary Design References section for key design tokens
3. Apply design tokens with dynamic adjustments as needed
4. Reference layout-templates.json for component structures
5. Use Design Adaptation Strategies when modifying tokens

Error Handling

Common Errors

Error Cause Resolution
Package not found Invalid package name or package doesn't exist Run codify-style first to create package
SKILL already exists SKILL.md already generated Use --regenerate to force regeneration
Missing layout-templates.json Incomplete package Verify package integrity, re-run codify-style
Invalid JSON format Corrupted package files Regenerate package with codify-style

Implementation Details

Critical Rules

  1. Check Before Generate: Verify package exists before attempting SKILL generation
  2. Respect Existing SKILL: Don't overwrite unless --regenerate flag provided
  3. Extract Primary References: Always extract and display key design values (colors, typography, spacing, border radius, shadows, animations)
  4. Include Adjustment Guidance: Provide clear guidelines on when and how to dynamically adjust design tokens
  5. Progressive Loading: Always include all 3 levels (0-2) with clear token estimates
  6. Intelligent Description: Extract component count and key features from metadata

SKILL Description Format

Template:

{package_name} design system with {component_count} layout templates and interactive preview (located at .workflow/reference_style/{package_name}). Load when working with UI components, design tokens, layout patterns, analyzing component structures, or implementing visual consistency.

Required Elements:

  • Package name
  • Layout template count
  • Location (full path)
  • Trigger keywords (UI components, design tokens, layout patterns, component structures)
  • Action verbs (working with, analyzing, implementing)

Primary Design References Extraction

Required Data Extraction (from design-tokens.json):

  • Colors: Primary, secondary, accent colors (top 3-5)
  • Typography: Font families for headings and body text
  • Spacing Scale: Base spacing values (xs, sm, md, lg, xl)
  • Border Radius: All radius tokens
  • Shadows: Shadow definitions (top 3 elevation levels)

Optional Data Extraction (from animation-tokens.json if available):

  • Animation Durations: All duration tokens
  • Easing Functions: Top 3 easing functions

Extraction Format: Use jq to extract tokens from JSON files. Each token should include key and value.

Dynamic Adjustment Guidelines

Include in SKILL.md:

  1. Usage Guidelines per Category: Specific guidance for each token category
  2. Adjustment Strategies: When to adjust design references
  3. Practical Examples: Context-specific adaptation scenarios
  4. Best Practices: How to maintain design system coherence while adjusting

Progressive Loading Structure

Level 0 (~5K tokens):

  • design-tokens.json

Level 1 (~12K tokens):

  • Level 0 files
  • layout-templates.json

Level 2 (~20K tokens):

  • Level 1 files
  • animation-tokens.json (if exists)
  • preview.html
  • preview.css

Benefits

  • Fast Context Loading: Progressive levels for efficient token usage
  • Primary Design References: Extracted key design values (colors, typography, spacing, etc.) displayed prominently
  • Dynamic Adjustment Guidance: Clear instructions on when and how to adjust design tokens
  • Intelligent Triggering: Keywords optimize SKILL activation
  • Complete Reference: All package files accessible through SKILL
  • Easy Regeneration: Simple --regenerate flag for updates
  • Clear Structure: Organized levels by use case
  • Practical Usage Guidelines: Context-specific adjustment strategies for different scenarios

Architecture

style-skill-memory
  ├─ Phase 1: Validate
  │   ├─ Parse package name from argument or auto-detect
  │   ├─ Check package exists in .workflow/reference_style/
  │   └─ Check if SKILL already exists (skip if exists and no --regenerate)
  │
  ├─ Phase 2: Read Package Data & Extract Primary References
  │   ├─ Count components from layout-templates.json
  │   ├─ Extract component types list
  │   ├─ Extract primary colors from design-tokens.json (top 3-5)
  │   ├─ Extract typography (font families)
  │   ├─ Extract spacing scale (base values)
  │   ├─ Extract border radius tokens
  │   ├─ Extract shadow definitions (top 3)
  │   ├─ Extract animation tokens (if available)
  │   └─ Count total files in package
  │
  └─ Phase 3: Generate SKILL.md
      ├─ Create SKILL directory
      ├─ Generate intelligent description with keywords
      ├─ Write SKILL.md with complete structure:
      │   ├─ Package Overview
      │   ├─ Primary Design References
      │   │   ├─ Colors with usage guidelines
      │   │   ├─ Typography with usage guidelines
      │   │   ├─ Spacing with usage guidelines
      │   │   ├─ Border Radius with usage guidelines
      │   │   ├─ Shadows with usage guidelines
      │   │   └─ Animation & Timing (if available)
      │   ├─ Design Adaptation Strategies
      │   │   ├─ When to adjust design references
      │   │   └─ How to apply adjustments
      │   ├─ Progressive Loading (3 levels)
      │   ├─ Interactive Preview
      │   ├─ Usage Guidelines
      │   ├─ Package Structure
      │   ├─ Regeneration
      │   └─ Related Commands
      ├─ Verify SKILL.md created successfully
      └─ Display completion message with extracted design references

Data Flow:
  design-tokens.json → jq extraction → PRIMARY_COLORS, TYPOGRAPHY_FONTS,
                                       SPACING_SCALE, BORDER_RADIUS, SHADOWS
  animation-tokens.json → jq extraction → ANIMATION_DURATIONS, EASING_FUNCTIONS
  layout-templates.json → jq extraction → COMPONENT_TYPES, COMPONENT_COUNT

  Extracted data → SKILL.md generation → Primary Design References section
                                      → Dynamic Adjustment Guidelines
                                      → Completion message display