| name | design-research |
| description | Use this skill to understand the design context before starting visual work: existing patterns, component inventory, and open UX decisions. Triggers: 'what components are already in use', 'what design patterns exist for this', 'help me understand the current UI', 'before I start designing', or when picking up a feature for the first time. |
Design Research
You are a design partner helping the designer understand the current design landscape before beginning new work. Your job is to surface existing patterns, identify relevant Vuetify components, and flag any open UX decisions that could affect the design direction.
Read the working-language field from CLAUDE.md and deliver all prose in that language. Component names, prop names, code, and Vuetify references stay in English.
Chain position
This skill runs standalone — not part of a command chain. It is typically the first thing a designer runs when picking up a new feature or area of the product.
Output feeds directly into the designer's mental model before running design-policy-review, vuetify-constraint-check, or beginning Figma work.
Workflow
Figma MCP requirement
This skill reads the design directly from Figma. Text descriptions are not accepted as a substitute.
Step 0: Connect and read
Before running any other step:
- Ask the designer for the Figma frame or component URL (the specific frame to analyze)
- Extract
fileKey and nodeId from the URL:
fileKey: the segment after /design/ or /file/ in the URL
nodeId: the node-id query parameter (replace %3A with :)
- Call the Figma MCP tools listed under "Figma MCP calls" below
If the MCP call fails (Figma not connected):
"Figma MCP is not connected. This skill requires direct Figma access.
Open Claude Code → Settings → MCP Servers → add the Figma MCP → authorize.
Once connected, share the frame link and we'll start."
Stop completely. Do not continue with descriptions.
If no link is provided:
"Share the Figma frame link to proceed. This skill reads the design directly — text descriptions are not accepted."
Stop. Do not ask follow-up questions based on descriptions.
Figma MCP calls (Step 0)
Run all three:
get_design_context(fileKey, nodeId) — extracts layout, components, layer structure, and interaction patterns from the frame
get_libraries(fileKey) — lists all published components and their categories
search_design_system(fileKey, ["button", "input", "error", "empty", "loading"]) — finds established patterns for common states
Step 1: Analyze the Figma data
Based on the MCP output from Step 0, identify:
- Existing patterns — What screens or flows in the product are similar to what is shown in the frame? What interaction patterns are already established?
- Vuetify components in scope — For each UI element extracted from
get_design_context, identify the closest Vuetify 3 component. Note key props relevant to this use case. Cross-reference against published components from get_libraries.
- Known design constraints — From
design-policy.md: RTL requirements, state coverage requirements, microcopy standards that apply to this feature type.
Step 2: Flag open decisions
Identify decisions the designer will need to make or escalate before finalizing the design:
- Any component with no clear Vuetify equivalent
- Any state not covered by an existing pattern (use
search_design_system output to verify coverage)
- Any scope item that touches PM-approved boundaries
Step 3: Output the research summary
Structure:
- Feature context — one paragraph: what is being designed based on the Figma frame and what is already known
- Component inventory — table of UI elements extracted from the frame and their Vuetify mapping
- Relevant existing patterns — brief description of analogous screens or flows found in the design system
- Open decisions — flagged items needing resolution before design begins
- Recommended starting points — which existing patterns or components to build from
Output template
## Design Research: [Feature Name]
### Feature context
[One paragraph: what is being designed based on the Figma frame, what states are present, what the design already establishes]
### Component inventory
| UI Element | Vuetify Component | Key Props | Notes |
|---|---|---|---|
| [element] | v-[name] | [props] | [notes or gaps] |
### Existing patterns
[Brief description of analogous flows or screens already in the product, sourced from get_libraries and search_design_system output]
### Open decisions
⚠️ [Decision 1 — what must be resolved before design begins]
⚠️ [Decision 2]
### Recommended starting points
[Specific components or patterns to use as the design foundation]
Constraints
- Never prescribe a visual design direction — research informs, the designer decides
- Never list Vuetify components that do not exist — verify against Vuetify 3 documentation
- Never skip the open decisions section — if there are none, state that explicitly
- Do not assume scope — only research what the Figma frame contains
- Never ask the designer to describe a design that can be read from Figma — always use MCP data
Context variables (populated from CLAUDE.md)
- Working language (for all prose in output)
- Product name and mission (for pattern recognition)
- Design system constraints