Visual QA (Dual-Oracle UI Verification)
Rigorously verifies web and terminal UIs with screenshot/pixel-diff evidence plus two parallel read-only reviewers, then issues one GOOD/NEEDS WORK verdict.
Design & UIAdvanced★ 67,531⑂ 5,507AI score 8/10Last updated: Aug 9, 2026
What it does
After you build or change any UI, this skill proves whether it actually looks and behaves right instead of self-certifying.
- Surface detection: routes work into web/page, TUI/terminal, or reference-fidelity (clone/Figma/mockup) capture tracks — or both when a change touches each.
- Objective evidence: enumerates every page, tab, modal state, breakpoint and scroll position and captures all of them (a 40-slide deck means 40 captures), then runs the bundled Node CLI for
image-diffJSON (diffRatio, similarityScore, hotspots, alphaChannelIntact) ortui-checkJSON (maxWidth, overflowLines, borderMisaligned, wideCharColumns). It also enforces capture hygiene and freshness so stale or corrupt artifacts never pass. - Two parallel oracles: Pass A audits design-system reality (tokens and reusable primitives vs. hardcoded one-offs or a pasted background image) and whether features truly work; Pass B opens the screenshots and grades pixel fidelity plus CJK line-breaking, clipping and wide-char drift.
- Motion evidence: hover/focus/scroll transitions must be captured as rest, mid-transition and settled frames; "the pixels differ because it animates" is explicitly not an excuse.
- Hard completion gate: not done until a fresh independent reviewer returns PASS with zero BLOCKING findings on a complete, freshly captured set of the current build; findings are tagged
[product]vs[evidence]so the loop repairs the right thing.
Who it's for
- Engineers cloning sites or converting Figma/AI mockups into code who need region-by-region fidelity
- Product teams shipping Korean/Japanese/Chinese copy where orphaned particles and clipped descenders slip through
- CLI/TUI authors who care about box-drawing alignment and 2-cell wide characters
- Anyone who wants to forbid agent self-review before a "done" claim
Examples
- Landing-page clone: capture reference and actual at the same viewport, run
image-diff; a 97 similarity score with a top-right header hotspot points straight at a spacing/shadow token mismatch to fix. - Korean dashboard QA: Pass B inspects every page screenshot, flags headings breaking as
에이전트 오케스트 / 레이션as REVISE, and you fix the wrapping rules before shipping. - TUI regression check: render the real pty through an xterm.js web terminal to PNG, then
tui-check --cols 80catches line 3 overflowing by 2 columns and borders misaligned at wide-char columns 12–13.
· · · Install guide · · ·
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the packages/shared-skills/skills/visual-qa folder from the GitHub repo code-yeongyu/oh-my-openagent into my ~/.claude/skills/visual-qa/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/code-yeongyu/oh-my-openagent.git /tmp/oh-my-openagent && mkdir -p ~/.claude/skills && cp -r /tmp/oh-my-openagent/packages/shared-skills/skills/visual-qa ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Open a terminal and clone the repo into a temp folder:
git clone https://github.com/code-yeongyu/oh-my-openagent.git /tmp/oh-my-openagent - Create your skills folder if needed:
mkdir -p ~/.claude/skills - Copy just this skill:
cp -r /tmp/oh-my-openagent/packages/shared-skills/skills/visual-qa ~/.claude/skills/ - Confirm
~/.claude/skills/visual-qa/scripts/visual-qa.mjsexists and that Node.js 18+ is installed (node -v). - If you have no browser capture tooling, install one:
npm install -g agent-browser && agent-browser install(or use your project's Playwright / dev-browser setup). - Restart Claude Code and trigger it with prompts like "run visual QA on this page" or "pixel-diff my build against this mock".
- Note: the TUI capture script (
script/qa/web-terminal-visual-qa.mjs) and the OpenCode/Codexspawn_agentcalls are repo- and harness-specific — in plain Claude Code substitute the Task tool for the reviewer passes and your own pty/xterm capture script.
View source on GitHub ↗License: NOASSERTION