design-ops

Design Operations: Figma file organization standards, design-to-dev handoff workflow, design QA checklist, design token sync pipeline (Figma Variables → Style Dictionary → CSS/Tailwind), design system versioning and governance, component audit methodology, and design-dev collaboration patterns. Bridges the gap between design tools and production code.

8 stars

Best use case

design-ops is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Design Operations: Figma file organization standards, design-to-dev handoff workflow, design QA checklist, design token sync pipeline (Figma Variables → Style Dictionary → CSS/Tailwind), design system versioning and governance, component audit methodology, and design-dev collaboration patterns. Bridges the gap between design tools and production code.

Teams using design-ops should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/design-ops/SKILL.md --create-dirs "https://raw.githubusercontent.com/marvinrichter/clarc/main/skills/design-ops/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/design-ops/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How design-ops Compares

Feature / Agentdesign-opsStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Design Operations: Figma file organization standards, design-to-dev handoff workflow, design QA checklist, design token sync pipeline (Figma Variables → Style Dictionary → CSS/Tailwind), design system versioning and governance, component audit methodology, and design-dev collaboration patterns. Bridges the gap between design tools and production code.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Design Ops Skill

## When to Activate

- Figma files are chaotic (no naming convention, no organization)
- Handoff from design to engineering is slow or error-prone
- Design tokens are maintained manually in two places (Figma + code)
- Multiple designers working on the same component inconsistently
- Need to establish a design system governance process
- Auditing whether UI matches the design spec

---

## Figma File Organization

### File structure standard

```
Organization structure:
└── [Team] Workspace
    ├── 🎨 Brand & Foundations
    │   ├── Color Styles
    │   ├── Typography Styles
    │   ├── Spacing & Grid
    │   └── Icons
    ├── 🧩 Component Library
    │   ├── Primitives (Button, Input, Badge…)
    │   ├── Composites (SearchBar, UserCard…)
    │   └── Patterns (DataTable, PageHeader…)
    ├── 📱 [Product] Designs
    │   ├── [Feature] — Active
    │   ├── [Feature] — Review
    │   └── Archive
    └── 🔬 Exploration / Scratch
        └── (personal workspace, not canonical)
```

### Page naming within a file

```
Pages:
├── Cover          — Thumbnail, last updated date, status
├── 🎯 [Feature] v2  — Current working design (version in name)
├── 🔍 Specs        — Redline specs, measurements, behavior notes
├── ↩️ Archive       — Previous versions (do not delete — reference history)
└── 🧪 Exploration  — Experiments (not for handoff)
```

### Layer naming convention

```
Rules:
- Use descriptive names, not "Frame 12" or "Group"
- Format: [component] / [variant] / [state]
- Examples:
    Button / Primary / Default
    Button / Primary / Hover
    Card / Compact / With Image
    Navigation / Mobile / Open

Sections:
- Group related layers in frames with clear names
- Capitalize section names: "Hero Section", "Feature Grid"

Icons:
- Name: icon / [name]   (e.g., icon / arrow-right)
```

---

## Design Token Sync Pipeline

Tokens defined in Figma should not be manually re-typed in code.

### Tool chain

```
Figma Variables → Tokens Studio plugin → tokens.json → Style Dictionary → CSS/JS/Tailwind
```

### Step 1: Figma Variables setup

Organize Figma Variables into collections:
```
Collections:
├── Primitives   — raw values (color, spacing, radius)
├── Semantic     — named by purpose (color-brand-primary, spacing-component)
└── Component    — component-specific (button-padding, card-radius)
```

### Step 2: Tokens Studio export (`tokens.json`)

```json
{
  "color": {
    "brand": {
      "primary": { "value": "oklch(55% 0.20 270)", "type": "color" },
      "muted":   { "value": "oklch(80% 0.08 270)", "type": "color" }
    },
    "semantic": {
      "success": { "value": "oklch(60% 0.18 142)", "type": "color" },
      "error":   { "value": "oklch(55% 0.22 15)",  "type": "color" }
    }
  },
  "spacing": {
    "xs": { "value": "4",  "type": "spacing" },
    "sm": { "value": "8",  "type": "spacing" },
    "md": { "value": "16", "type": "spacing" },
    "lg": { "value": "24", "type": "spacing" },
    "xl": { "value": "40", "type": "spacing" }
  }
}
```

### Step 3: Style Dictionary config (`sd.config.js`)

```js
module.exports = {
  source: ['tokens.json'],
  platforms: {
    css: {
      transformGroup: 'css',
      prefix: 'clarc',
      buildPath: 'src/styles/tokens/',
      files: [{ destination: 'tokens.css', format: 'css/variables' }],
    },
    js: {
      transformGroup: 'js',
      buildPath: 'src/tokens/',
      files: [{ destination: 'tokens.js', format: 'javascript/es6' }],
    },
    tailwind: {
      transformGroup: 'js',
      buildPath: 'src/tokens/',
      files: [{ destination: 'tailwind-tokens.js', format: 'javascript/es6' }],
    },
  },
};
```

### Step 4: CI automation

```yaml
# .github/workflows/sync-tokens.yml
name: Sync Design Tokens
on:
  push:
    paths: ['tokens.json']
jobs:
  build-tokens:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci
      - run: npx style-dictionary build
      - run: |
          git config user.email "bot@example.com"
          git config user.name "Token Bot"
          git add src/styles/tokens/ src/tokens/
          git diff --staged --quiet || git commit -m "chore: sync design tokens from Figma"
          git push
```

---

## Handoff Workflow

### Design → Engineering handoff checklist

Before marking a design as "Ready for Dev":

**Completeness**
- [ ] All states designed: default, hover, focus, active, disabled, loading, error, empty
- [ ] All breakpoints designed: mobile (375px), tablet (768px), desktop (1280px)
- [ ] Edge cases designed: long text overflow, no data state, max items state

**Specs**
- [ ] Spacing values use design tokens (not ad hoc values)
- [ ] Colors reference design tokens (not hardcoded hex)
- [ ] Typography references text styles
- [ ] Interactive states have hover/focus/active specs
- [ ] Animation: timing, easing, duration specified for any transitions

**Assets**
- [ ] Icons are components from the icon library (not custom shapes)
- [ ] Images are placeholder-safe (design works without real images)
- [ ] SVG illustrations are exported and handed over

**Developer notes**
- [ ] Component behavior notes (which fields are editable, which are static)
- [ ] API data mapping noted where relevant
- [ ] Known constraints or implementation notes in comments

### Handoff format

Use Figma's Dev Mode or include a dedicated "Specs" page:

```
Specs page structure:
├── 1. Component overview (name, variants, states)
├── 2. Anatomy (labeled parts)
├── 3. Spacing diagram (padding, margin, gap values)
├── 4. Behavior (interaction specs, transitions)
├── 5. Accessibility notes (keyboard, ARIA, contrast)
└── 6. Do / Don't examples
```

---

## Design QA Process

After engineering implements a design, run a QA review.

### Visual QA checklist

```
Spacing:
- [ ] Padding matches spec (use browser DevTools ruler)
- [ ] Component gap matches spec
- [ ] Section margin matches spec

Typography:
- [ ] Font size matches (zoom browser to 100% before checking)
- [ ] Line height matches
- [ ] Font weight matches
- [ ] Letter spacing matches

Color:
- [ ] Background color matches
- [ ] Text color matches
- [ ] Border color and width match
- [ ] Interactive states (hover, focus) match

Layout:
- [ ] Breakpoint behavior matches (check 375, 768, 1280, 1440)
- [ ] Overflow behavior handled (test with long text)
- [ ] Empty state matches design

Animation:
- [ ] Transition timing matches
- [ ] Easing matches
```

### QA severity levels

```
P0 — Blocking: Wrong component rendered, broken layout, missing content
P1 — Major:    Color, spacing, or typography obviously wrong (>4px off)
P2 — Minor:    Subtle spacing (1-2px), minor color variance within WCAG
P3 — Polish:   Animation timing slightly off, micro-interaction missing
```

---

## Component Audit Methodology

Use when auditing an existing UI for design system compliance.

### Audit steps

1. **Inventory** — Capture all unique UI patterns (screenshot every component variant)
2. **Categorize** — Group by function (buttons, inputs, cards, navigation, etc.)
3. **Score each** — For each category:
   - Token compliance: are design tokens used? (0-5 scale)
   - Consistency: do all instances match? (0-5 scale)
   - Accessibility: does it meet WCAG AA? (pass/fail)
4. **Prioritize** — Fix by frequency of use × severity of deviation
5. **Document** — Create canonical versions of all components in Figma
6. **Deprecation plan** — Timeline and migration path for non-compliant variants

### Audit output format

```markdown
## Component Audit — [Date]

### Summary
- Components audited: N
- Token-compliant: N (X%)
- Consistent across uses: N (X%)
- WCAG passing: N (X%)

### Critical findings
| Component | Issue | Instances | Severity |
|-----------|-------|-----------|----------|
| Button | 3 different border-radius values | 47 | P1 |
| Input | Hardcoded color #3B82F6 (not token) | 23 | P1 |

### Recommended actions
1. [Action with owner and timeline]
```

---

## Design System Governance

### Contribution model

```
Tier 1 — Core team only
  Primitive components (Button, Input, Modal)
  Design tokens
  Typography system

Tier 2 — With core team review
  Composite components (SearchBar, DataTable)
  New icons
  Layout patterns

Tier 3 — Open contribution
  Page templates
  Experimental patterns
  Proof of concepts
```

### RFC process for component changes

```markdown
## RFC: [Component Change Title]

### Motivation
[Why this change is needed]

### Proposal
[What changes, before/after]

### Breaking changes
[List any breaking changes and migration path]

### Alternatives considered
[Other approaches evaluated]

### Open questions
[Unresolved decisions]
```

Review window: 5 business days. Merge requires sign-off from 1 designer + 1 engineer.

---

## Checklist

- [ ] Figma files organized with standard page structure
- [ ] Layer naming convention followed (component / variant / state)
- [ ] Figma Variables set up in three collections (Primitives, Semantic, Component)
- [ ] Token sync pipeline configured (Tokens Studio → Style Dictionary → CSS)
- [ ] Token CI automation in place (auto-commit on tokens.json change)
- [ ] Handoff checklist followed before marking designs as "Ready for Dev"
- [ ] Design QA performed after engineering implementation
- [ ] Component audit documented when starting a new design system initiative
- [ ] Contribution governance model defined (who can change what)
- [ ] RFC process for breaking component changes

Related Skills

typography-design

8
from marvinrichter/clarc

Typography as a creative discipline: typeface selection criteria, type pairing (serif + sans, display + body), modular scale systems, line-height and tracking ratios, hierarchy construction, and web/mobile rendering considerations. The decisions behind design tokens, not the tokens themselves.

sdk-design-patterns

8
from marvinrichter/clarc

SDK design patterns — API ergonomics, backward compatibility (semantic versioning, deprecation), multi-language SDK generation (openapi-generator vs Speakeasy), error hierarchy design, SDK testing strategies, and documentation as first-class SDK artifact.

presentation-design

8
from marvinrichter/clarc

Presentation structure, narrative design, and slide layout principles. Covers the problem-solution-evidence arc, slide density rules (one idea per slide), slide type catalogue, opening hooks, and closing patterns. Use when structuring any slide deck — conference talk, demo, investor pitch, or team update.

marketing-design

8
from marvinrichter/clarc

Marketing asset design for developers: Open Graph / social media card specs and HTML generation, email template HTML/CSS patterns (table-based layout, Outlook compatibility, dark mode), banner and ad creative dimensions, print-safe PDF generation, and brand consistency across marketing touchpoints. From OG image code to email that renders in Outlook.

liquid-glass-design

8
from marvinrichter/clarc

iOS 26 Liquid Glass design system — dynamic glass material with blur, reflection, and interactive morphing for SwiftUI, UIKit, and WidgetKit.

generative-ai-design

8
from marvinrichter/clarc

AI-assisted design workflows: prompt engineering for image generation (Midjourney, DALL-E 3, Stable Diffusion, Flux), achieving style consistency across a generated asset set, post-processing AI outputs for production use, legal and licensing considerations, and when AI generation is and isn't appropriate. For teams integrating generative AI into their design workflow.

experiment-design

8
from marvinrichter/clarc

A/B testing and experimentation workflow: hypothesis design, metric selection, sample size calculation, statistical significance, common pitfalls (peeking, SRM, novelty effect), and experiment lifecycle. Complements feature-flags (implementation) with statistical rigor.

design-system

8
from marvinrichter/clarc

Design system architecture: design tokens (color, spacing, typography, radius), component library layers (Primitive → Composite → Pattern), theming with CSS Custom Properties and Tailwind, Storybook documentation, and dark mode. The foundation for consistent UI across an entire product.

dashboard-design

8
from marvinrichter/clarc

Dashboard architecture and UX: KPI hierarchy, information density decisions, filter patterns, drill-down navigation, real-time update strategies (polling vs. WebSocket vs. SSE), empty and loading states for charts, and responsive dashboard layouts. Use when designing or building any analytics dashboard.

api-design-advanced

8
from marvinrichter/clarc

Advanced API design — per-language implementation patterns (TypeScript/Next.js, Go/net-http), anti-patterns (200 for everything, 500 for validation, contract breaking), and full pre-ship checklist.

api-design

8
from marvinrichter/clarc

REST API design patterns including resource naming, status codes, pagination, filtering, error responses, versioning, and rate limiting for production APIs.

zero-trust-patterns

8
from marvinrichter/clarc

Zero-Trust security patterns — mTLS between microservices (Istio/SPIFFE), SPIRE workload identity, OPA/Envoy authorization, NetworkPolicy default-deny-all, short-lived credentials, service mesh security, and Kubernetes RBAC hardening.