/figma-audit — Design System Audit & Quality Check
Audit a Figma file for design system consistency, accessibility compliance, token adoption, and Code Connect coverage. Produces actionable findings. Requires /figma-use.
Freedom Level: Read-Only + Report
Audit skills read and analyze but do not modify the canvas. Output is a structured report with severity levels.
When to Use
- Before a design handoff to development
- After pulling a design system (
memi pull) - Periodic design system health checks
- When components look inconsistent or broken
- Before establishing Code Connect mappings
Audit Checklist
1. Token Adoption
figma_get_variables → list all defined tokens get_design_context for each page → check usage Report: ✓ Bound to variable: colors/primary/500 ✗ Raw hex: #3b82f6 (should be colors/primary/500) ✗ Magic number: 16px padding (should be spacing/4) Metric: % of visual properties bound to variables Target: 90%+
2. Component Consistency
figma_search_components → list all components figma_get_component_details for each → check structure Report: ✓ Auto Layout applied ✓ Properties documented ✓ Variants complete (default, hover, active, disabled, focused) ✗ Missing state: Button has no "loading" variant ✗ Inconsistent padding: Card uses 16px, CardHeader uses 12px Metric: % of components with all required states Target: 100% for atoms, 90% for molecules
3. Atomic Design Compliance
Check each component's classification: ✓ Atom: no nested component instances (correct) ✗ Atom: Button contains Icon instance (should be molecule or use instance swap) ✓ Molecule: FormField composes Label + Input + HelpText ✗ Organism: LoginForm classified as molecule (too complex) Metric: % of components correctly classified Target: 95%+
4. Accessibility
For each component: ✓ Contrast ratio: text on background meets WCAG AA (4.5:1) ✗ Touch target: Button is 32px tall (needs 44px minimum) ✓ Focus indicator: visible focus ring ✗ Missing: no aria-label on icon-only button For each page: ✓ Heading hierarchy: h1 → h2 → h3 (no skips) ✗ Missing landmark: no main content area defined ✓ Color not sole indicator: error states use icon + color Metric: WCAG violations per page Target: 0 critical, <5 minor
5. Code Connect Coverage
get_code_connect_map → current mappings Report: ✓ Mapped: Button → src/components/ui/button.tsx ✓ Mapped: Card → src/components/ui/card.tsx ✗ Unmapped: MetricCard (no code counterpart) ✗ Stale: FormField maps to deleted file Metric: % of components with valid Code Connect Target: 80%+ for atoms, 60%+ for molecules
6. Naming Conventions
Check against naming rules: ✓ PascalCase: MetricCard, LoginForm ✗ Wrong case: metric-card (should be MetricCard) ✗ Vague name: "Frame 47" (rename to meaningful name) ✓ Token path: colors/primary/500 Metric: % of elements following naming conventions Target: 100%
7. Auto Layout Health
For each container: ✓ Has Auto Layout ✗ Uses absolute positioning (should be Auto Layout) ✓ Sizing: fill container (correct for content area) ✗ Sizing: hug contents (should be fill for responsive element) ✓ Spacing uses token values Metric: % of containers using Auto Layout Target: 95%+
Output Format
╔══════════════════════════════════════╗ ║ Design System Audit Report ║ ╚══════════════════════════════════════╝ Score: 82/100 Token Adoption: 87% ✓ Component Quality: 79% ⚠ Atomic Compliance: 95% ✓ Accessibility: 74% ⚠ Code Connect: 65% ✗ Naming: 92% ✓ Auto Layout: 89% ✓ Critical Issues (fix immediately): 1. Button has no focus indicator 2. 23 raw hex values should be variables 3. FormField Code Connect points to deleted file Warnings (fix soon): 1. MetricCard missing "loading" variant 2. 5 components have inconsistent padding Recommendations: 1. Run: memi tokens → re-export and bind 2. Run: add_code_connect_map for 12 unmapped components 3. Add missing variant states to 8 components
Integration
- Save audit results to
.memoire/audit.jsonfor tracking over time - Compare against previous audits to show improvement
- Block
memi syncif critical issues exceed threshold


