# Design Research

> 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.

- Skill: `imamirezaei/design-research` (Agent Skill)
- Install (CLI): `npx skillmds@latest add imamirezaei/design-research`
- Raw SKILL.md: https://api.skillmd.com/api/skills/imamirezaei/design-research/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: imamirezaei (https://skillmd.com/u/imamirezaei)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/imamirezaei/design-research

---


# 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:

1. Ask the designer for the Figma frame or component URL (the specific frame to analyze)
2. 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 `:`)
3. 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:
1. `get_design_context(fileKey, nodeId)` — extracts layout, components, layer structure, and interaction patterns from the frame
2. `get_libraries(fileKey)` — lists all published components and their categories
3. `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:

1. **Existing patterns** — What screens or flows in the product are similar to what is shown in the frame? What interaction patterns are already established?
2. **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`.
3. **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:

1. **Feature context** — one paragraph: what is being designed based on the Figma frame and what is already known
2. **Component inventory** — table of UI elements extracted from the frame and their Vuetify mapping
3. **Relevant existing patterns** — brief description of analogous screens or flows found in the design system
4. **Open decisions** — flagged items needing resolution before design begins
5. **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

