visual-qa
MUST USE after building/changing any UI or when asked whether a page, component, or TUI looks right. Rigorous visual QA across web/page and terminal UIs. Prefer browser:control-in-app-browser for unauthenticated browser/page QA in Codex, then Playwright/agent-browser/dev-browser. Captures screenshot/TUI evidence with bundled diff scripts, runs design-system/functional and visual-fidelity/CJK reviewer passes, then synthesizes a good/bad verdict. Triggers: visual QA, screenshot/pixel diff, UI looks wrong, reference fidelity, design system check, responsive check, CJK text clipping, TUI alignment
npx skills add code-yeongyu/oh-my-openagent --skill visual-qa --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
What it does
Verifies a rendered UI against intent using objective script evidence plus two parallel read-only oracle passes, then synthesizes a single good/bad verdict. It handles web/page UIs and TUI/terminal UIs, capturing reference and actual evidence, computing diffs, and triggering dual-pass QA reviews.
How it works
- Step 1 - Detect the surface: determine whether the UI is web/page-based or a TUI, and identify if a reference packet exists for pixel-accurate comparison.
- Step 2 - Capture objective reference evidence: generate or ingest a reference packet (screenshots, Figma exports, annotations, etc.), redact secrets, and ensure complete coverage across pages, viewports, and states. Produce fresh captures for comparison and run image diff via
node "$SKILL_DIR/scripts/visual-qa.mjs" image-diff <reference.png> <actual.png>with fields likedimensionsMatch,diffRatio,similarityScore,alphaChannelIntact,hotspots[]. - For web: capture reference image, then actual screenshot (preferred via
browser:control-in-app-browserwhen available, otherwise via Playwright/agent-browser/dev-browser tooling). Use agent-browser as a fallback with setup instructions in$SKILL_DIR/references/agent-browser-setup.md. - For TUI: render via a real pty in a browser using xterm.js, producing
terminal.png,terminal.txt,terminal-ansi.txt, andmetadata.json, then runnode "$SKILL_DIR/scripts/visual-qa.mjs" tui-check .omo/evidence/<slug>/tui-web-terminal/terminal.txt --cols <N>to validate width and layout. - Step 3 - Dispatch two read-only QA subagents in parallel: run two oracle reviews concurrently via the harness. Each returns PASS, REVISE, or FAIL with concrete findings, and must include
[product]or[evidence]tags in their observations. Pass A (design-system and functional integrity) and Pass B (visual fidelity and CJK precision) evaluate different aspects and use the provided evidence and CAPTURES. - Each pass returns a structured verdict with findings and blocking items if any.
When to use it
- Use after building or changing any UI, before declaring it done.
- Use for red-flagged or important visual changes where pixel fidelity, layout accuracy, and CJK text handling matter.
- Skip when there is no rendered surface (pure backend or library logic with no visual output).
What it can touch
- It relies on the skill’s internal tooling and scripts located under the
packages/shared-skills/skills/visual-qa/directory, including thescripts/visual-qa.mjsandscripts/cli.tscomponents. It requires tools compatible with the described browser and terminal capture workflows, as well as the referenced agent tooling (e.g.,agent-browser).
Caveats
- Uses two read-only oracle passes; results depend on the completeness and freshness of captures (must be redacted properly, and evidence must be fresh).
- The guidance enforces strict handling of reference packets and demands coverage of all enumerated pages and states; incomplete coverage is considered BLOCKING.
- The review requires handling of motion and interactions, not just static captures; animation states should be captured and compared appropriately.
# Visual QA - Dual-Oracle Web and TUI Verification Verify a rendered UI against intent using objective script evidence plus two parallel read-only oracle passes, then synthesize one good/bad verdict. The script numbers focus the reviewers. They are not the verdict. ## Purpose and when to use - Use after you build or change any UI, before calling it done. Covers web/page UIs and TUI/terminal UIs. - Use when output must match a mock, a baseline, or a stated design intent; when you suspect a regression; when CJK (Korean/Japanese/Chinese) text may clip, misalign, or wrap awkwardly; when a claimed design system might actually be a flat image; when a terminal layout may overflow or its borders may break. - Skip when there is no rendered surface (pure backend or library logic with no visual or terminal output). For broad post-implementation review use review-work; this skill is the visual specialist. In the commands below, `$SKILL_DIR` is this skill's own directory (the folder containing this SKILL.md). The bundled Node evidence CLI lives at `scripts/visual-qa.mjs` inside it; the TypeScript source in `scripts/cli.ts` is for development. ## Step 1 - Detect the surface - Web/page UI: render
- Purpose and when to use
- Step 1 - Detect the surface
- Step 2 - Capture objective reference evidence
- Reference packet hygiene
- Coverage - capture every page, not a sample
- Evidence must be fresh
- Capture hygiene - validate before dispatching reviewers
- Web
- TUI
- Motion and interaction capture
- Step 3 - Dispatch two read-only QA subagents in parallel
- Pass A - Design-system and functional integrity (deeper, strict)
- Pass B - Visual fidelity and CJK precision (focused)
- Step 4 - Synthesize one verdict
What does the visual-qa skill do?
MUST USE after building/changing any UI or when asked whether a page, component, or TUI looks right. Rigorous visual QA across web/page and terminal UIs. Prefer browser:control-in-app-browser for unauthenticated browser/page QA in Codex, then Playwright/agent-browser/dev-browser. Captures screenshot/TUI evidence with bundled diff scripts, runs design-system/functional and visual-fidelity/CJK reviewer passes, then synthesizes a good/bad verdict. Triggers: visual QA, screenshot/pixel diff, UI looks wrong, reference fidelity, design system check, responsive check, CJK text clipping, TUI alignment
How do I install it?
Run `npx skills add code-yeongyu/oh-my-openagent --skill visual-qa --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From code-yeongyu/oh-my-openagent, a repository with 67,209 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.