// Reviews finished and in-progress digital products to assess adherence to design specifications and discover potential issues with those specifications. Validates implementation against design intent, identifies visual and interaction discrepancies, and provides actionable feedback for design and engineering teams.
| name | design-qa |
| description | Reviews finished and in-progress digital products to assess adherence to design specifications and discover potential issues with those specifications. Validates implementation against design intent, identifies visual and interaction discrepancies, and provides actionable feedback for design and engineering teams. |
This skill guides Claude through systematic design quality assurance - reviewing implemented products against design specifications, brand guidelines, and best practices to ensure high-quality execution.
Design QA serves multiple purposes:
This skill focuses on design implementation, not user experience validation:
Step 1: Collect Reference Materials
Questions to ask user:
1. What product/feature are we reviewing?
2. Where can I access it? (URL, staging link, screenshots)
3. Do you have design specs or Figma files?
4. Are there brand guidelines to check against?
5. Any specific concerns or focus areas?
6. What's the review scope? (specific screens/flows or full product)
Use `view` to read:
- Design specification documents
- Design system documentation
- Brand guidelines
- Previous QA reports (if any)
Use `web_fetch` to:
- Load the live product/staging site
- Analyze HTML, CSS, interactions
- Test responsive behavior
Step 2: Understand the Specification Before reviewing implementation:
Visual Design Review:
For each screen/component:
1. Layout & Spacing
- Compare actual spacing to spec
- Check alignment and grid adherence
- Verify padding and margins
2. Typography
- Font family, size, weight, line height
- Text color and contrast
- Hierarchy and consistency
3. Colors
- Background colors match design tokens
- Text colors meet contrast requirements
- Interactive elements use correct states
4. Visual Elements
- Icons correct size and style
- Images display at correct resolution
- Borders, shadows, radius match spec
5. Components
- Match design system patterns
- Consistent across screens
- All variants implemented correctly
Interaction Review:
For each interactive element:
1. States
- Default, hover, active, focus, disabled
- Loading and success states
- Error states and validation
2. Animations & Transitions
- Duration matches spec
- Easing function correct
- Performance (no jank or lag)
3. Behavior
- Click/tap responses correctly
- Keyboard navigation works
- Focus order logical
- Modals/overlays function properly
Responsive Design Review:
Test at multiple breakpoints:
- Mobile (320px, 375px, 414px)
- Tablet (768px, 1024px)
- Desktop (1280px, 1440px, 1920px)
Check for:
- Layout adaptation matches spec
- Content reflow works properly
- Touch targets adequate on mobile (min 44x44 / 48x48)
- No horizontal scrolling (unless intentional)
- Images scale appropriately
Accessibility Review:
Keyboard Navigation:
- Tab order logical
- All interactive elements focusable
- Focus indicators visible
- Escape/Enter work as expected
Screen Reader:
- Alt text on images
- Form labels associated
- ARIA labels where needed
- Error messages announced
Color & Contrast:
- Text contrast 4.5:1 minimum
- UI elements 3:1 minimum
- Test with color blindness simulation
- Don't rely on color alone
Content:
- Headings hierarchical (h1, h2, h3)
- Links descriptive
- Button text meaningful
- Form errors clear
Issue Report Structure:
## [Issue Title] - [Severity]
**Location**: [Screen name / Component name / URL]
**Expected** (per spec):
[What the design spec says should happen]
[Include screenshot from Figma or design file]
**Actual** (implementation):
[What actually appears/happens]
[Include screenshot or video of implementation]
**Discrepancy**:
[Specific difference, with measurements if applicable]
Example: "Button padding is 8px instead of specified 12px"
**Impact**: [How this affects user experience or brand]
**Recommendation**: [Specific fix needed]
**Severity**: [Critical / High / Medium / Low]
**Device/Browser**: [Where issue was observed]
Critical (Must fix before launch):
High (Should fix before launch):
Medium (Fix in next sprint):
Low (Nice to have):
IMPORTANT: Organize all deliverables by batch in dated folders.
Each batch of QA review work should be saved in its own folder:
docs/design/qa-batch-{number}-{MMDDYY}/
Examples:
docs/design/qa-batch-1-102425/docs/design/qa-batch-2-110125/Rationale:
Batch folder structure:
docs/design/qa-batch-1-102425/
โโโ design-qa-report.md
โโโ design-qa-issues.csv
โโโ spec-improvements.md
โโโ screenshots/
โโโ issue-001-button-spacing.png
โโโ issue-002-color-contrast.png
โโโ expected-vs-actual-comparison.png
Location: docs/design/qa-batch-{number}-{MMDDYY}/
File: design-qa-report.md
Format: Markdown with embedded screenshots
Structure:
# Design QA Report: [Product/Feature Name]
**Date**: [Date]
**Reviewer**: Claude (Design QA Skill)
**Scope**: [What was reviewed]
## Executive Summary
- Total issues found: [Number]
- Critical: [Number]
- High: [Number]
- Medium: [Number]
- Low: [Number]
- Overall assessment: [Ready to ship / Needs work / Major issues]
## Key Findings
1. [Most important issue or pattern]
2. [Second most important]
3. [Third most important]
## Detailed Issues
### Critical Issues
[List of critical issues with full documentation]
### High Priority Issues
[List of high priority issues]
### Medium Priority Issues
[List of medium priority issues]
### Low Priority Issues
[List of low priority issues]
## Specification Gaps
[Issues caused by ambiguous or missing specs]
## Positive Observations
[Things that were implemented well]
## Recommendations
1. [Top recommendation]
2. [Second recommendation]
3. [Third recommendation]
## Next Steps
- [ ] Address critical issues
- [ ] Review high priority fixes
- [ ] Update design specs based on gaps found
- [ ] Schedule follow-up QA review
Location: docs/design/qa-batch-{number}-{MMDDYY}/
File: design-qa-issues.csv
Format: CSV for import to project management tools
Columns:
Location: docs/design/qa-batch-{number}-{MMDDYY}/
File: spec-improvements.md
Format: Markdown with specific suggestions
Purpose: Help improve design documentation for future projects
โ Poor Issue:
The button is wrong
- Doesn't look right
- Fix it
โ Good Issue:
## Primary CTA Button Padding Incorrect - High
**Location**: Checkout page, "Complete Purchase" button
**Expected** (per spec):
- Padding: 12px vertical, 24px horizontal
- Button height: 48px
**Actual** (implementation):
- Padding: 8px vertical, 16px horizontal
- Button height: 40px
**Discrepancy**:
Button is 8px shorter and appears cramped. Touch target falls below recommended 44x44px minimum for mobile.
**Impact**:
- Reduced tappability on mobile devices
- Inconsistent with other primary CTAs
- Less visual prominence for primary action
**Recommendation**:
Update button CSS to use design token `py-3 px-6` (12px/24px) to match specification and design system.
**Severity**: High (affects primary conversion action and mobile usability)
**Device/Browser**: All devices, Chrome 118
## Pattern Found: Inconsistent Spacing System
**Observation**:
Multiple screens use spacing values outside the design system:
- Profile page: 14px gap between fields (should be 12px or 16px)
- Settings: 20px section margin (should be 16px or 24px)
- Dashboard: 10px card padding (should be 12px or 16px)
**Root Cause**:
Design specification didn't explicitly reference the 4px/8px spacing scale.
**Impact**:
Visual inconsistency, harder to maintain, accessibility issues with unpredictable spacing.
**Recommendation**:
1. Update all spacing to use design tokens (spacing scale)
2. Add spacing scale reference to design spec
3. Create CSS variables for spacing tokens
Problem: Logging dozens of 1px differences that don't matter Instead: Focus on issues that affect user experience or brand consistency
Problem: "Engineer did it wrong" without checking if spec was clear Instead: Ask "Was the spec clear?" and improve documentation
Problem: "Doesn't look right" or "spacing is off" Instead: Provide specific measurements and comparisons
Problem: Describing issues in text only Instead: Show expected vs. actual with visual evidence
Problem: Only checking visual appearance Instead: Always review keyboard navigation, screen reader, and contrast
Problem: All issues treated equally, overwhelming dev team Instead: Use clear severity levels to guide prioritization
Problem: Only testing on desktop Chrome Instead: Review across devices, browsers, and screen sizes
Problem: Only pointing out problems Instead: Note what was implemented well, builds morale
Problem: Expecting pixel-perfect match on all browsers/devices Instead: Understand technical constraints and browser differences
Before starting QA review:
For each screen:
For each interactive element:
At each breakpoint:
Test on:
# Use Lighthouse for accessibility and performance
npm install -g lighthouse
lighthouse [URL] --output=html --view
# Use Percy or Chromatic for visual regression testing
# (requires setup and integration)
# Check color contrast programmatically
# Use tools like Colorable or Contrast Checker
Look for systemic issues:
This helps identify root causes vs. one-off bugs.
Compare against:
Before submitting QA report:
/mnt/user-data/outputs/# Design QA Report: E-commerce Checkout Flow
**Date**: October 22, 2025
**Reviewer**: Claude (Design QA Skill)
**Scope**: Complete checkout flow (cart โ shipping โ payment โ confirmation)
## Executive Summary
- **Total issues found**: 23
- **Critical**: 1
- **High**: 4
- **Medium**: 12
- **Low**: 6
- **Overall assessment**: Needs work - address critical and high issues before launch
## Key Findings
1. Payment form submit button non-functional on mobile Safari (Critical)
2. Inconsistent spacing throughout flow - not using design system scale
3. Missing error states for invalid payment info
4. Color contrast issues on several form labels
## Detailed Issues
### Critical Issues
#### 1. Payment Submit Button Non-Functional on Mobile Safari - CRITICAL
**Location**: Payment page, "Complete Purchase" button (iOS Safari 17)
**Expected**: Button triggers payment processing when tapped
**Actual**: Button does not respond to tap on mobile Safari. Works on desktop and Chrome mobile.
**Evidence**: [Screenshot showing button]
**Impact**: Complete checkout flow blocker for iOS users (approximately 30% of mobile traffic).
**Recommendation**:
- Check for JavaScript errors in Safari console
- Verify touch event handlers attached correctly
- Test with minimal CSS to isolate issue
- May need `-webkit-appearance: none` or explicit touch event handling
**Severity**: CRITICAL - breaks core functionality for large user segment
---
### High Priority Issues
#### 2. Shipping Form Spacing Inconsistent - HIGH
**Location**: Shipping address form
**Expected** (per design spec):
- Form field spacing: 16px vertical gap
- Label to input: 4px gap
- Section spacing: 24px
**Actual**:
- Form field spacing: 14px, 18px, 12px (varies)
- Label to input: 6px, 8px (inconsistent)
- Section spacing: 20px
**Evidence**: [Screenshot with measurements]
**Impact**:
- Visual inconsistency reduces polish
- Harder to maintain (no systematic spacing)
- Misalignment with design system used elsewhere
**Recommendation**:
Update CSS to use design tokens:
- `space-y-4` for form fields (16px)
- `space-y-1` for label-to-input (4px)
- `space-y-6` for sections (24px)
**Severity**: HIGH - affects visual consistency system-wide
End of Design - QA Skill Specification