visual-verdict — Claude Code skill: what it does, how to install
A visual QA skill that compares generated UI screenshots against reference images and returns a structured JSON verdict for layout iterations.
npx skills add Yeachan-Heo/oh-my-claudecode --skill visual-verdict -a claude-codeWhat visual-verdict does
This skill accepts paths in reference_images[], the current UI screenshot in generated_screenshot, and an optional category_hint. It checks the output and returns a strict JSON object containing a numerical score between 0 and 100, a status (pass, revise, or fail), categorized differences, and targeted suggestions for styling fixes.
The target pass threshold is set at 90 points. If the score falls below 90, the editing cycle is not complete, and the agent must refine the UI before rerunning /oh-my-claudecode:visual-verdict.
When visual discrepancies are difficult to diagnose, secondary tools like pixelmatch help identify pixel diff hotspots. Even so, this skill serves as the authoritative verdict on whether the layout passes inspection.
What it helps with
- compare UI screenshots against reference mockups
- detect discrepancies in spacing, typography, and layout
- generate actionable CSS fix suggestions in JSON
- automate iterative visual QA until reaching a 90+ score
Example prompts for the agent
- Compare `build/screen.png` against reference `design/home.png` and output the verdict
- Review `screenshot.png` against `ref.png` using category hint `dashboard`
- Run `/oh-my-claudecode:visual-verdict` on the current UI screenshot and references in `specs/`
How to install visual-verdict
1Skills CLI (Vercel)
npx skills add Yeachan-Heo/oh-my-claudecode --skill visual-verdict -a claude-code2Manually: put the files in place
~/.claude/skills/visual-verdict/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/visual-verdict/
1Skills CLI (Vercel)
npx skills add Yeachan-Heo/oh-my-claudecode --skill visual-verdict -a codex2Manually: put the files in place
.agents/skills/visual-verdict/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Yeachan-Heo/oh-my-claudecode --skill visual-verdict -a cursor2Manually: put the files in place
.cursor/skills/visual-verdict/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Yeachan-Heo/oh-my-claudecode visual-verdict2Manually: put the files in place
.github/skills/visual-verdict/SKILL.md1Skills CLI (Vercel)
npx skills add Yeachan-Heo/oh-my-claudecode --skill visual-verdict -a gemini-cli2Platform CLI
gemini skills install https://github.com/Yeachan-Heo/oh-my-claudecode --path skills/visual-verdictManually: put the files in place
.devin/skills/visual-verdict/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Yeachan-Heo/oh-my-claudecode --skill visual-verdict -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set26
The whole set →Similar
Questions about visual-verdict
How to install visual-verdict in Claude Code?
Run npx skills add Yeachan-Heo/oh-my-claudecode --skill visual-verdict -a claude-code in your terminal. You can also place the skill file directly at ~/.claude/skills/visual-verdict/SKILL.md.
What output format does visual-verdict produce?
The skill outputs pure JSON containing score, verdict, category_match, differences, suggestions, and a brief reasoning string.
What score is required to pass visual inspection?
The required threshold is 90 points. If the score is lower, the agent must continue editing the interface and rerun the verdict check.
Source text
SKILL.md · MIT
---
name: visual-verdict
description: Structured visual QA verdict for screenshot-to-reference comparisons
level: 2
---
<Purpose>
Use this skill to compare generated UI screenshots against one or more reference images and return a strict JSON verdict that can drive the next edit iteration.
</Purpose>
<Use_When>
- The task includes visual fidelity requirements (layout, spacing, typography, component styling)
- You have a generated screenshot and at least one reference image
- You need deterministic pass/fail guidance before continuing edits
</Use_When>
<Inputs>
- `reference_images[]` (one or more image paths)
- `generated_screenshot` (current output image)
- Optional: `category_hint` (e.g., `hackernews`, `sns-feed`, `dashboard`)
</Inputs>
<Output_Contract>
Return **JSON only** with this exact shape:
```json
{
"score": 0,
"verdict": "revise",
"category_match": false,
"differences": ["..."],
"suggestions": ["..."],
"reasoning": "short explanation"
}
```
Rules:
- `score`: integer 0-100
- `verdict`: short status (`pass`, `revise`, or `fail`)
- `category_match`: `true` when the generated screenshot matches the intended UI category/style
- `differences[]`: concrete visual mismatches (layout, spacing, typography, colors, hierarchy)
- `suggestions[]`: actionable next edits tied to the differences
- `reasoning`: 1-2 sentence summary
<Threshold_And_Loop>
- Target pass threshold is **90+**.
- If `score < 90`, continue editing and rerun `/oh-my-claudecode:visual-verdict` before any further visual review pass.
- Do **not** treat the visual task as complete until the next screenshot clears the threshold.
</Threshold_And_Loop>
<Debug_Visualization>
When mismatch diagnosis is hard:
1. Keep `$visual-verdict` as the authoritative decision.
2. Use pixel-level diff tooling (pixel diff / pixelmatch overlay) as a **secondary debug aid** to localize hotspots.
3. Convert pixel diff hotspots into concrete `differences[]` and `suggestions[]` updates.
</Debug_Visualization>
<Example>
```json
{
"score": 87,
"verdict": "revise",
"category_match": true,
"differences": [
"Top nav spacing is tighter than reference",
"Primary button uses smaller font weight"
],
"suggestions": [
"Increase nav item horizontal padding by 4px",
"Set primary button font-weight to 600"
],
"reasoning": "Core layout matches, but style details still diverge."
}
```
</Example>
Task: {{ARGUMENTS}}
© Yeachan-Heo · MIT · Yeachan-Heo/oh-my-claudecode