Purpose
Compare generated UI screenshots against one or more reference images and return a strict JSON verdict that can drive the next edit iteration.
When to use
- 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
Inputs
reference_images[] (one or more image paths)
generated_screenshot (current output image)
- Optional:
category_hint (e.g., hackernews, sns-feed, dashboard)
Output contract
Return JSON only with this exact shape:
{
"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.
Debug visualization
When mismatch diagnosis is hard:
- Keep
$visual-verdict as the authoritative decision.
- Use pixel-level diff tooling (pixel diff / pixelmatch overlay) as a secondary debug aid to localize hotspots.
- Convert pixel diff hotspots into concrete
differences[] and suggestions[] updates.
Example
{
"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."
}
Related skills
verify-ui — manual screenshot comparison. Use this skill after verify-ui to quantify the diff with image-based metrics.
figma-implement-design → figma-use — after implementing a Figma design, use verify-ui and visual-verdict to validate the implementation matches the reference.
verify-ui-auto — after visual-verdict confirms the diff is acceptable, set up automated golden tests to prevent regressions.
1---2name: visual-verdict3description: Structured visual QA verdict for screenshot-to-reference comparisons4---56## Purpose78Compare generated UI screenshots against one or more reference images and return a strict JSON verdict that can drive the next edit iteration.910## When to use1112- The task includes visual fidelity requirements (layout, spacing, typography, component styling)13- You have a generated screenshot and at least one reference image14- You need deterministic pass/fail guidance before continuing edits1516## Inputs1718- `reference_images[]` (one or more image paths)19- `generated_screenshot` (current output image)20- Optional: `category_hint` (e.g., `hackernews`, `sns-feed`, `dashboard`)2122## Output contract2324Return **JSON only** with this exact shape:2526```json27{28 "score": 0,29 "verdict": "revise",30 "category_match": false,31 "differences": ["..."],32 "suggestions": ["..."],33 "reasoning": "short explanation"34}35```3637Rules:38- `score`: integer 0-10039- `verdict`: short status (`pass`, `revise`, or `fail`)40- `category_match`: `true` when the generated screenshot matches the intended UI category/style41- `differences[]`: concrete visual mismatches (layout, spacing, typography, colors, hierarchy)42- `suggestions[]`: actionable next edits tied to the differences43- `reasoning`: 1-2 sentence summary4445## Threshold and loop4647- Target pass threshold is **90+**.48- If `score < 90`, continue editing and rerun `/oh-my-claudecode:visual-verdict` before any further visual review pass.49- Do **not** treat the visual task as complete until the next screenshot clears the threshold.5051## Debug visualization5253When mismatch diagnosis is hard:54551. Keep `$visual-verdict` as the authoritative decision.562. Use pixel-level diff tooling (pixel diff / pixelmatch overlay) as a **secondary debug aid** to localize hotspots.573. Convert pixel diff hotspots into concrete `differences[]` and `suggestions[]` updates.5859## Example6061```json62{63 "score": 87,64 "verdict": "revise",65 "category_match": true,66 "differences": [67 "Top nav spacing is tighter than reference",68 "Primary button uses smaller font weight"69 ],70 "suggestions": [71 "Increase nav item horizontal padding by 4px",72 "Set primary button font-weight to 600"73 ],74 "reasoning": "Core layout matches, but style details still diverge."75}76```7778## Related skills7980- **`verify-ui`** — manual screenshot comparison. Use this skill after verify-ui to quantify the diff with image-based metrics.81- **`figma-implement-design`** → **`figma-use`** — after implementing a Figma design, use verify-ui and visual-verdict to validate the implementation matches the reference.82- **`verify-ui-auto`** — after visual-verdict confirms the diff is acceptable, set up automated golden tests to prevent regressions.