skills/design-compare/SKILL.md
Compare Figma designs against implementation screenshots, identifying layout, typography, color, and sizing discrepancies. Generates a structured visual review table and an interactive HTML comparison page with swipe and side-by-side modes. Use when the user asks to compare design with preview, compare Figma with screenshot, check design implementation, or provides a Figma URL alongside a screenshot.
npx skillsauth add artemnovichkov/skills design-compareInstall 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.
Compare Figma design screenshots against local preview screenshots, producing a structured visual review and an interactive HTML comparison page. Supports multiple screens in a single report.
$SKILL_DIR refers to the directory containing this SKILL.md file. Resolve it based on where the skill is installed (e.g. .claude/skills/design-compare, .agents/skills/design-compare, etc.).
The export script requires a FIGMA_ACCESS_TOKEN env var. Store it in .env at the repo root:
FIGMA_ACCESS_TOKEN=figd_...
The script auto-loads .env from the repo root. Get a token from https://www.figma.com/developers/api#access-tokens
Important: Ensure .env is listed in .gitignore to avoid committing tokens.
Repeat for each screen being compared. Use a slug (e.g. empty-state, list-view) to name files.
Derive the report folder from the project or context name, e.g. design-compare-reports/LayoutCheckExample/. Within this folder, store images in per-view subfolders named after the source file (without extension), e.g. ContentView/, SliderView/. The report folder holds a single shared config.js and report.html.
Figma design image:
fileKey and nodeId from the Figma URL.mcp__figma__get_screenshot with the extracted parameters. The screenshot is returned inline for visual comparison in Step 2.mkdir -p "design-compare-reports/<ReportName>/<ViewName>"
bash "$SKILL_DIR/scripts/export-figma-node.sh" "<fileKey>" "<nodeId>" "design-compare-reports/<ReportName>/<ViewName>/<slug>_figma.png"
The script validates that fileKey is alphanumeric (with hyphens/underscores) and nodeId matches digit-colon/hyphen patterns. Invalid inputs are rejected.
The script exports at 3x scale with use_absolute_bounds=true to match device pixel density and clip to exact frame bounds.Preview image:
mcp__xcode__RenderPreview to render a fresh preview and use the returned previewSnapshotPath.cp "<preview_path>" "design-compare-reports/<ReportName>/<ViewName>/<slug>_preview.png"
Read/view both images (Figma inline screenshot + preview file) and analyze them. Evaluate:
Produce a single markdown table ordered by visual importance:
| Status | Aspect | Detail | |--------|--------|--------| | ✅ | Layout alignment | Matches design | | ❌ | Background color | Expected #1A1A1A, got #FFFFFF |
Use ✅ for matches, ❌ for mismatches. Keep each row concise (one line). For mismatches, include what differs and how to fix it.
All shared artifacts (config.js, report.html) are stored in design-compare-reports/<ReportName>/. Images live in per-view subfolders (<ViewName>/).
Generate config.js with screen metadata. Image paths use the <ViewName>/ prefix. Write the following JavaScript to design-compare-reports/<ReportName>/config.js:
// config.js — generated by design-compare skill
const reportConfig = {
generatedAt: "TIMESTAMP", // replace with current date/time
screens: [
{
name: "SCREEN_NAME", // replace with human-readable name
figma: "VIEW_NAME/SLUG_figma.png",
preview: "VIEW_NAME/SLUG_preview.png",
figmaUrl: "FIGMA_URL" // replace with full Figma URL for the node
}
]
};
Replace placeholders: TIMESTAMP → current date/time, SCREEN_NAME → human-readable name, VIEW_NAME → source file name (without extension), SLUG → file slug, FIGMA_URL → full Figma URL.
For multiple screens, add entries to the screens array.
Copy the HTML template:
cp "$SKILL_DIR/assets/compare.html" "design-compare-reports/<ReportName>/report.html"
Open the file with open design-compare-reports/<ReportName>/report.html.
The HTML page provides swipe (default) and side-by-side comparison modes, screen tabs for multi-screen reports, and direct Figma links.
tools
Sends macOS notifications after xcodebuild commands, showing Build Succeeded or Build Failed with scheme and project info. Mimics Xcode's native build notifications. Auto-triggers on xcodebuild via PostToolUse hook.
development
Read, stream, and analyze Apple unified logs (OSLog) for iOS/macOS apps. Auto-detects subsystem from Logger usage or bundle identifier. Supports live log show, real-time streaming, and .logarchive analysis with full predicate reference. Use when the user asks to check app logs, stream console output, debug with OSLog, or analyze .logarchive files on iOS/macOS.
development
Generate crash reports from Firebase Crashlytics with automated fix proposals, severity scoring, and developer assignments via git blame. Use when analyzing crashes, triaging production issues, or generating crash triage reports.
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.