skills/golem-powers/figma-loop/SKILL.md
Iterative Figma-to-implementation pixel-perfect verification loop. Use when implementing or refining UI from Figma designs. Drills on screenshots, comparing Figma vs implementation, fixing one thing at a time until 3 consecutive checks pass. Covers figma iteration, pixel perfect, design verification, ui drilling, figma comparison. NOT for: fetching Figma specs only (use figma-workflow docs), creating new components from scratch without a reference design.
npx skillsauth add etanhey/golems figma-loopInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Drill on Figma designs until pixel-perfect. Compare screenshots, fix one thing at a time, repeat until 3 consecutive checks pass with no changes needed.
At least one of these Figma MCP tools must be available:
| Tool | When Available |
|------|---------------|
| mcp__figma__get_screenshot | Figma desktop app is open |
| mcp__figma-remote__get_screenshot | Always (uses API with fileKey) |
Plus browser automation for implementation screenshots:
| Tool | Purpose |
|------|---------|
| mcp__claude-in-chrome__computer | Screenshot of running app |
| mcp__claude-in-chrome__navigate | Navigate to the right page |
| mcp__claude-in-chrome__resize_window | Match Figma viewport size |
Or for React Native:
| Tool | Purpose |
|------|---------|
| Simulator screenshot | xcrun simctl io booted screenshot /tmp/screen.png |
| Device build | npx expo run:ios --device |
Track iteration progress with check.sh:
SCRIPT="~/.claude/commands/golem-powers/figma-loop/scripts/check.sh"
$SCRIPT init "WelcomeScreen" "95:72" # Start session
$SCRIPT pass # Record passing check (increments counter)
$SCRIPT fail "spacing off by 8px" # Record fail (resets counter to 0)
$SCRIPT status # Show progress (X/3 passes)
| What you want to do | Workflow | |---------------------|----------| | Full iteration loop (start to finish) | workflows/iterate.md | | Set up tracking file | workflows/setup.md | | Just do a single comparison check | workflows/check.md |
A component is only "done" when 3 consecutive checks pass with zero changes needed.
Check 1: Fix spacing → FAIL (made change) → counter resets to 0
Check 2: Fix color → FAIL (made change) → counter resets to 0
Check 3: All good → PASS → counter = 1
Check 4: All good → PASS → counter = 2
Check 5: All good → PASS → counter = 3 → DONE
Why 3? One pass could be lucky. Two could miss something. Three consecutive passes with fresh eyes each time gives confidence.
For each element, verify ALL of these:
| Category | What to Check | |----------|--------------| | Position | Top, left, right, bottom, center alignment | | Size | Width, height, padding, margin | | Colors | Background, text, border, shadow | | Typography | Font size, weight, line height, letter spacing | | Spacing | Gaps between elements, internal padding | | Order | RTL consideration (first in DOM = RIGHT visually) | | Icons | Which icon, size, color, position relative to text | | States | Default, hover, pressed, disabled, focused | | Radius | Border radius on all corners |
gap-[16px] → gap-4
p-[8px] → p-2
p-[12px] → p-3
p-[16px] → p-4
p-[24px] → p-6
rounded-[8px] → rounded-lg
rounded-[12px] → rounded-xl
rounded-[16px] → rounded-2xl
rounded-[24px] → rounded-3xl
text-[14px] → text-sm
text-[16px] → text-base
text-[18px] → text-lg
text-[20px] → text-xl
text-[24px] → text-2xl
text-[28px] → text-3xl
| Visual Position (RTL) | DOM Order | Tailwind |
|----------------------|-----------|----------|
| RIGHT | First | items-start, justify-start |
| LEFT | Last | items-end, justify-end |
Button icons in RTL:
// Icon on LEFT visually (after text in RTL)
<Button rightIcon={<Phone />}>Call</Button>
// Icon on RIGHT visually (before text in RTL)
<Button leftIcon={<Phone />}>Call</Button>
| Don't | Do Instead | |-------|------------| | Fix 5 things at once | Fix ONE thing, re-screenshot, verify | | Skip checks when "it looks close" | Always do formal screenshot comparison | | Hardcode pixel values | Use Tailwind scale or CSS vars | | Ignore RTL | Verify element order matches RTL expectations | | Guess colors | Use exact hex from Figma design context | | Stop after 1 passing check | Need 3 CONSECUTIVE passes |
development
Create, edit, and verify golem-powers skills using the standard SKILL.md structure, workflow files, adapters, templates, and eval fixtures. Use for new skills, structural edits, workflows/adapters, and pre-deploy validation. NOT for invoking existing skills, superpowers skills, or skill-creator agent workflows.
testing
Extract structured knowledge from any video source — YouTube URLs or local screen recordings. YouTube → gems workflow (yt-dlp transcript → keyword hotspots → frame extract → brain_digest → structured gems). Screen recordings → QA workflow (reuses /qa-video stalker pipeline). Use when user shares a YouTube link wanting deep extraction with frames, shares a .mov/.mp4 for QA processing, says "extract from video", "video gems", "process this recording", or mentions gem extraction from video content.
testing
Use when running or reviewing any recurring monitor loop for merge queues, worker queues, collab tails, or agent completion. Enforces drive-to-completion ticks: every tick must query live state with `!`, classify whether real progress happened, and then dispatch, verify-and-decrement, or escalate-park. Triggers on: monitor loop, /loop, recurring tick, keep monitoring, silent autonomous, merge gate, blocked review, no-progress loop.
tools
MeHayom freelance client management — daily updates, decision tracking, time logging. Use when drafting Yuval updates, logging scope changes, tracking hours, or any MeHayom client communication. Triggers: 'draft Yuval update', 'client update', 'daily update', 'log decision', 'track time', 'mehayom'.