← ClaudeAtlas

judge-uilisted

Drive a web UI through a defined flow, capture stage screenshots + a structured read-back, and have an independent vision-judge sub-agent render a PASS / FAIL / UNCERTAIN verdict cross-checked against the read-back — turning "look at the screen" UAT from a human task into an agent-judged one, with a mandatory fall-back to human escalation on low confidence. Use when a UAT step needs someone to drive a browser and judge what renders ("does the screen look right?"), or when user-uat's Visual tier delegates here. Project specifics (server bring-up, auth, testids) come from a project adapter. Invoke as "/judge-ui [flow-or-spec] [--adapter <name>] [--dry-run]".
aberson/skill-mesh · ★ 2 · AI & Automation · score 71
Install: claude install-skill aberson/skill-mesh
# UI Judge > **Judging doctrine:** invariants, archetypes, and the judge↔advisor spectrum live in [`_shared/judge-core.md`](../_shared/judge-core.md) — this skill instantiates them (it is the §10 reference implementation for separate-vision-judge + read-back + escalate). The generic engine for the **visual tier** of UAT. It drives a real browser through a flow, captures a screenshot at each stage, and dispatches an **independent vision-judge sub-agent** that views the pixels, cross-checks them against a structured read-back (API JSON / DB query), and returns a per-stage verdict with evidence. The point: "did the screen render correctly?" has always been a human's job. A browser driver plus a vision model can now *do* most of it — but only safely if the judgment is disciplined. This skill is that discipline. It is **project-agnostic**: everything project-specific (how to start the app, how to reach an authed state, which testids to click) comes from a **project adapter** (e.g. toybox's `/uat-ui`). Without an adapter it runs an inline flow spec you supply. ## When to use / not - **Use:** a UI flow needs driving + visual judgment — a parent dashboard renders a list, a wizard advances through screens, a form's result must look right. Or `/user-uat --ui` routed a visual-tier step here. Or a project adapter calls you with a named flow. - **Don't use** for things a still frame can't judge: **animation/motion, audio/sfx, real-device input, or subjective "does it feel right