Runs a pre-handoff QA checklist on a Figma design before
Figma Design QA Skill

Runs a pre-handoff QA checklist on a Figma design before it goes to engineering. Use when asked to QA a Figma design, do a pre-handoff check, or validate a Figma file is ready to build.
--- name: figma-design-qa description: "Runs a pre-handoff QA checklist on a Figma design before it goes to engineering. Use when asked to QA a Figma design, do a pre-handoff check, or validate a Figma file is ready to build. Produces a structured QA report covering file hygiene, component usage, accessibility, and handoff readiness with explicit pass/fail status per item. Optimised for Opus 4.7 and newer models." --- # Figma Design QA Skill Runs a systematic pre-handoff QA check on a Figma design — catching issues that cause engineering back-and-forth before they become expensive. ## Required Inputs Ask the user for these if not provided: - **Feature or screen being QA-d** (describe what has been designed) - **Platform** (iOS / Android / Web) - **Design system** (custom / Material / HIG / None) - **Handoff tool** (Figma Inspect / Zeplin / Storybook / Direct link) - **QA depth** (quick 15 min / standard 30 min / thorough 60 min)
Overview
Runs a systematic pre-handoff QA check on a Figma design — catching issues that cause engineering back-and-forth before they become expensive.
Manual install (npx, ZIP)
npx skills add mohitagw15856/pm-claude-skills --skill figma-design-qa -g -a claude-codemkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/mohitagw15856/pm-claude-skills/tar.gz/f6ca79348c55 \
| tar -xz -C ~/.claude/skills --strip-components=2 pm-claude-skills-f6ca79348c55/skills/figma-design-qaNew-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/82d966a7a3a2542ea8bc/figma-design-qa.zip" -OutFile "$env:TEMP\figma-design-qa.zip"; Expand-Archive "$env:TEMP\figma-design-qa.zip" -DestinationPath "$HOME\.claude\skills" -ForceConnects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md5.0 KB
Read the files here
mohitagw15856/
Show the full text121 lines
Figma Design QA Skill
Runs a systematic pre-handoff QA check on a Figma design — catching issues that cause engineering back-and-forth before they become expensive.
Required Inputs
Ask the user for these if not provided:
- Feature or screen being QA-d (describe what has been designed)
- Platform (iOS / Android / Web)
- Design system (custom / Material / HIG / None)
- Handoff tool (Figma Inspect / Zeplin / Storybook / Direct link)
- QA depth (quick 15 min / standard 30 min / thorough 60 min)
Programmatic Helper
Contrast ratios cannot be eyeballed. The AA line sits at 4.5:1, and #777777
on white is 4.478 (fails) while #767676 is 4.54 (passes) — no amount of
looking at a screenshot separates those. Compute them:
npx --yes notugly fix "#8ab4f8" "#ffffff" # ratio, APCA, and the nearest passing colour
npx --yes notugly onepager <url> --out review.html # every pairing, printable
npx --yes notugly vision # which colours merge for colour-blind viewers
notugly fix returns the ratio, the APCA lightness contrast, and the closest
colour to the one already chosen that passes — same hue, same chroma. Paste
those numbers into the tables below rather than estimating them.
Deterministic, zero dependencies, and no model call — so it costs nothing to run and gives the same answer every time.
QA is a pass/fail activity, so every contrast row needs a number and a verdict.
For a deployed build, npx notugly check <url> exits non-zero on a failure,
which makes it usable directly in CI rather than only by hand.
Output Structure
QA Report: [Feature] | [Date] | [Platform] Overall status: Ready / Minor fixes needed / Not ready
Section 1: File Hygiene
- All layers named semantically (no "Rectangle 12")
- No unused/hidden layers in final frames
- Components from library (not detached copies)
- All text uses text styles (not manual font settings)
- All colours use styles or variables (not hex overrides)
- Frames named to match screen map
- No leftover prototype wires to wrong frames
Section 2: Component Usage
- All buttons use library component
- All inputs use library component
- All icons from approved icon library
- No custom components that should be in library
- Variants used correctly (right size, state, type)
Section 3: Content and Copy
- No placeholder text (Lorem ipsum) in final designs
- All copy reviewed and approved
- Realistic content used (not "User Name")
- Long text edge cases tested
- Error messages are human-readable
- Empty states have copy and CTA
Section 4: States and Coverage
- Default, Loading, Empty, Error, Success states
- Interactive elements have hover/active (web)
- Disabled states designed where applicable
Section 5: Accessibility
- All text meets WCAG AA contrast (4.5:1 body, 3:1 large)
- UI components meet 3:1 contrast against background
- Touch targets minimum 44x44pt iOS / 48x48dp Android
- Focus states for keyboard/switch navigation (web)
- Information not conveyed by colour alone
- Icons have text labels or accessible names annotated
Section 6: Handoff Readiness
- Dev annotations on non-obvious interactions
- Spacing uses Auto Layout (not absolute positioning)
- Images/assets exported at correct resolutions
- Design matches approved requirements
- Link to prototype included
Issues Found
For each fail: [Issue] — Blocking / Fix before handoff / Fix in next iteration
- What: [Specific layer/screen/element]
- Fix: [Exact action needed]
- Owner: [Designer/PM/Both]
Handoff Decision
Status, signed off by, date.
Quality Checks
- All 6 sections completed
- Every fail has a specific description and fix action
- Blocking issues separated from minor ones
- Handoff decision is explicit
Anti-Patterns
- Do not produce a partial QA — every checklist category must be evaluated, not just the ones that are obviously problematic
- Do not leave the handoff decision ambiguous — the output must explicitly state pass, pass with conditions, or fail
- Do not skip accessibility checks — colour contrast, tap target size, and screen reader labels are required, not optional
- Do not report issues without specifying which screen or component they appear on
- Do not approve a design if any component is detached from the library without a documented reason
Example Trigger Phrases
- "QA this Figma design before handoff"
- "Run a pre-handoff check on [feature] design"
- "Is this Figma design ready for engineering?"
- "Do a design QA on [screen/feature]"
- "What needs fixing before we hand this off?"
| 1 | |
| 2 | name figma-design-qa |
| 3 | description "Runs a pre-handoff QA checklist on a Figma design before it goes to engineering. Use when asked to QA a Figma design, do a pre-handoff check, or validate a Figma file is ready to build. Produces a structured QA report covering file hygiene, component usage, accessibility, and handoff readiness with explicit pass/fail status per item. Optimised for Opus 4.7 and newer models." |
| 4 | |
| 5 | |
| 6 | # Figma Design QA Skill |
| 7 | |
| 8 | Runs a systematic pre-handoff QA check on a Figma design — catching issues that cause engineering back-and-forth before they become expensive. |
| 9 | |
| 10 | ## Required Inputs |
| 11 | |
| 12 | Ask the user for these if not provided: |
| 13 | **Feature or screen being QA-d** (describe what has been designed) |
| 14 | **Platform** (iOS / Android / Web) |
| 15 | **Design system** (custom / Material / HIG / None) |
| 16 | **Handoff tool** (Figma Inspect / Zeplin / Storybook / Direct link) |
| 17 | **QA depth** (quick 15 min / standard 30 min / thorough 60 min) |
| 18 | |
| 19 | |
| 20 | ## Programmatic Helper |
| 21 | |
| 22 | Contrast ratios cannot be eyeballed. The AA line sits at 4.5:1, and `#777777` |
| 23 | on white is 4.478 (fails) while `#767676` is 4.54 (passes) — no amount of |
| 24 | looking at a screenshot separates those. Compute them: |
| 25 | |
| 26 | |
| 27 | npx --yes notugly fix "#8ab4f8" "#ffffff" # ratio, APCA, and the nearest passing colour |
| 28 | npx --yes notugly onepager <url> --out review.html # every pairing, printable |
| 29 | npx --yes notugly vision # which colours merge for colour-blind viewers |
| 30 | |
| 31 | |
| 32 | `notugly fix` returns the ratio, the APCA lightness contrast, and the closest |
| 33 | colour to the one already chosen that passes — same hue, same chroma. Paste |
| 34 | those numbers into the tables below rather than estimating them. |
| 35 | |
| 36 | Deterministic, zero dependencies, and **no model call** — so it costs nothing to |
| 37 | run and gives the same answer every time. |
| 38 | |
| 39 | QA is a pass/fail activity, so every contrast row needs a number and a verdict. |
| 40 | For a deployed build, `npx notugly check <url>` **exits non-zero** on a failure, |
| 41 | which makes it usable directly in CI rather than only by hand. |
| 42 | |
| 43 | ## Output Structure |
| 44 | |
| 45 | QA Report: [Feature] | [Date] | [Platform] |
| 46 | **Overall status:** Ready / Minor fixes needed / Not ready |
| 47 | |
| 48 | ### Section 1: File Hygiene |
| 49 | All layers named semantically (no "Rectangle 12") |
| 50 | No unused/hidden layers in final frames |
| 51 | Components from library (not detached copies) |
| 52 | All text uses text styles (not manual font settings) |
| 53 | All colours use styles or variables (not hex overrides) |
| 54 | Frames named to match screen map |
| 55 | No leftover prototype wires to wrong frames |
| 56 | |
| 57 | ### Section 2: Component Usage |
| 58 | All buttons use library component |
| 59 | All inputs use library component |
| 60 | All icons from approved icon library |
| 61 | No custom components that should be in library |
| 62 | Variants used correctly (right size, state, type) |
| 63 | |
| 64 | ### Section 3: Content and Copy |
| 65 | No placeholder text (Lorem ipsum) in final designs |
| 66 | All copy reviewed and approved |
| 67 | Realistic content used (not "User Name") |
| 68 | Long text edge cases tested |
| 69 | Error messages are human-readable |
| 70 | Empty states have copy and CTA |
| 71 | |
| 72 | ### Section 4: States and Coverage |
| 73 | Default, Loading, Empty, Error, Success states |
| 74 | Interactive elements have hover/active (web) |
| 75 | Disabled states designed where applicable |
| 76 | |
| 77 | ### Section 5: Accessibility |
| 78 | All text meets WCAG AA contrast (4.5:1 body, 3:1 large) |
| 79 | UI components meet 3:1 contrast against background |
| 80 | Touch targets minimum 44x44pt iOS / 48x48dp Android |
| 81 | Focus states for keyboard/switch navigation (web) |
| 82 | Information not conveyed by colour alone |
| 83 | Icons have text labels or accessible names annotated |
| 84 | |
| 85 | ### Section 6: Handoff Readiness |
| 86 | Dev annotations on non-obvious interactions |
| 87 | Spacing uses Auto Layout (not absolute positioning) |
| 88 | Images/assets exported at correct resolutions |
| 89 | Design matches approved requirements |
| 90 | Link to prototype included |
| 91 | |
| 92 | ### Issues Found |
| 93 | For each fail: |
| 94 | **[Issue] — Blocking / Fix before handoff / Fix in next iteration** |
| 95 | What: [Specific layer/screen/element] |
| 96 | Fix: [Exact action needed] |
| 97 | Owner: [Designer/PM/Both] |
| 98 | |
| 99 | ### Handoff Decision |
| 100 | Status, signed off by, date. |
| 101 | |
| 102 | ## Quality Checks |
| 103 | [ ] All 6 sections completed |
| 104 | [ ] Every fail has a specific description and fix action |
| 105 | [ ] Blocking issues separated from minor ones |
| 106 | [ ] Handoff decision is explicit |
| 107 | |
| 108 | ## Anti-Patterns |
| 109 | |
| 110 | [ ] Do not produce a partial QA — every checklist category must be evaluated, not just the ones that are obviously problematic |
| 111 | [ ] Do not leave the handoff decision ambiguous — the output must explicitly state pass, pass with conditions, or fail |
| 112 | [ ] Do not skip accessibility checks — colour contrast, tap target size, and screen reader labels are required, not optional |
| 113 | [ ] Do not report issues without specifying which screen or component they appear on |
| 114 | [ ] Do not approve a design if any component is detached from the library without a documented reason |
| 115 | |
| 116 | ## Example Trigger Phrases |
| 117 | "QA this Figma design before handoff" |
| 118 | "Run a pre-handoff check on [feature] design" |
| 119 | "Is this Figma design ready for engineering?" |
| 120 | "Do a design QA on [screen/feature]" |
| 121 | "What needs fixing before we hand this off?" |
Details
- Updated
- Sep 23, 2026
- License
- MIT
- Stars on the repo
- ★ 1,395
- Checked
- Source
- mohitagw15856/pm-claude-skills ↗
- Creator
- mohitagw15856 · 193 listings
Made with figma-design-qa


Similar skills
See all →
SkillDesign, redesign, shape, critique, audit, polish, clarifyImpeccable
SkillApple's approach to interface design and fluidApple design
SkillBuild an animation from scratchBuilding Animations
SkillRenders a component you choose in every stateBreak
SkillReviews your work across multiple categories like UIChange review
SkillCraft-first interface design for dashboards, admin panelsThe ProblemMore from mohitagw15856
SkillDesign a 360-degree feedback survey or write a structured360-Degree Feedback Template Skill
SkillDesign statistically rigorous A/B tests for product featuresA/B Test Planner Skill
SkillGenerate a WCAG 2.2 accessibility audit checklistAccessibility Audit Skill
SkillBuild a structured account plan for any key customerAccount Plan Skill
SkillOptimize an article for Answer Engine Optimization so AIAEO Optimizer Skill
SkillConduct a structured ethical review of an AI or ML featureAI Ethics Review Skill