Agent skill

Frontend Visual QA

by daymade in daymade/claude-code-skills

Audits already-rendered UI — web app, deck/slide, dashboard, design-system, or Electron/native app — via real-browser/native-app journeys and a Playwright sweep.

MITAuto-check passedFrontend & Design

Install Frontend Visual QA

skills CLI
$ npx skills add daymade/claude-code-skills --skill frontend-visual-qa -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install daymade/claude-code-skills frontend-visual-qa --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/daymade/claude-code-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/frontend-visual-qa .claude/skills/frontend-visual-qa && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
frontend-visual-qa
GitHub stars
1.4k
Token cost
~7.7k tokens
SKILL.md length
3,844 words
Files
37 (incl. scripts, references, assets)
Skills in repo
103
Repo updated
First seen
Licence
MIT

At a glance

Audits already-rendered UI — web app, deck/slide, dashboard, design-system, or Electron/native app — via real-browser/native-app journeys and a Playwright sweep.

  • Works in 6 steps: Establish The Audit Contract → Select The Evidence Level → Prove Target, State And Viewport → …
  • Tasks that involve Visual regression testing
  • SKILL.md covers Scope And Routing, Required Outcome, Workflow and Completion Gate, plus 1 more section
  • Calls node

What it does

Frontend Visual QA is an agent skill from daymade/claude-code-skills. Audits already-rendered UI — web app, deck/slide, dashboard, design-system, or Electron/native app — via real-browser/native-app journeys and a Playwright sweep. Use after UI implementation to find typography, overflow, responsive, routing, data-viz, browser-output, or native-shell defects, or to compare a render against a reference. Not for greenfield UI design (use ui-designer) or QA-program setup (use qa-expert).

Its SKILL.md is about 7.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 40 other files, including scripts, reference files and assets (for example `evals/evals.json` and `evals/trigger-evals.json`).

It sits in Frontend & Design, covering Visual regression testing, UI design and Design systems. It works with Playwright. The repository describes itself as: Professional Claude Code skills marketplace featuring production-ready skills for enhanced development workflows. The licence is MIT.

When your agent uses it

  • Tasks that involve Visual regression testing
  • Tasks that involve UI design
  • Tasks that involve Design systems

Example prompts

  • “Use the frontend-visual-qa skill to audit already-rendered UI — web app, deck/slide, dashboard, design-system, or Electron/native app — via…”
  • “/frontend-visual-qa”

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Establish The Audit Contract
  2. Select The Evidence Level
  3. Prove Target, State And Viewport
  4. Capture And Inspect Rendered Evidence
  5. Exercise Journeys And Outputs
  6. Report, Fix, And Re-run

What it can do on your machine

Read from SKILL.md and the folder at commit 91bed2b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/, which the agent can run.

    Shell commands in SKILL.md call:

    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Frontend Visual QA loads about 7.7k tokens when it runs, and up to ~37k if it reads all its reference files. Until then it costs about 110 tokens; SKILL.md has 3,844 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~110
When it runs · the whole SKILL.md, loaded when a task matches
~7.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~37k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from daymade/claude-code-skills at commit 91bed2b, republished under its MIT licence (© daymade). 3,844 words, ~7,709 tokens.

Download SKILL.mdSave it as .claude/skills/frontend-visual-qa/SKILL.md (or your agent's skills folder). This skill also uses 36 other files; get the full folder from GitHub.
name
frontend-visual-qa
description
Audits already-rendered UI — web app, deck/slide, dashboard, design-system, or Electron/native app — via real-browser/native-app journeys and a Playwright sweep. Use after UI implementation to find typography, overflow, responsive, routing, data-viz, browser-output, or native-shell defects, or to compare a render against a reference. Not for greenfield UI design (use ui-designer) or QA-program setup (use qa-expert).

Frontend Visual QA

Audit the interface the user can actually see. Treat build success, DOM presence, and uninspected screenshot files as supporting signals, never as visual proof.

Default to audit-only. Do not edit implementation, add tests, install dependencies, or update snapshots unless the user explicitly asks to fix or change the UI. Permission to fix source does not authorize rebuilding, restarting, or deploying any target.

Scope And Routing

Use this skill only after a rendered artifact exists. Select the smallest audit profile that covers the request:

  • core visual — composition, typography, spacing, wrapping, clipping, images;
  • responsive — breakpoints, reflow, mobile alternatives, scroll ownership;
  • state and journey — conditional branches, transitions, recovery, routes;
  • browser output — download, share, clipboard, popup, file dialog, print, PDF;
  • native shell — Electron or hybrid chrome, permissions, drag regions, IPC UI;
  • page contract — dashboard/admin, landing/deck, design-system artifact, browser tool/game, map/GIS, or review tool;
  • reference parity — comparison with a named screenshot, product, or tier;
  • data visualization — chart hierarchy, tokens, semantics, and accessibility.

For a website/document converted to Markdown and consumed in Obsidian or another named reader, load references/markdown-reader-handoff.md before judging figure readability. Compare the complete source figure with its actual document reading canvas, including HTML captions and SVG/CSS dependencies.

Combine profiles only when the changed surface or the user requests a broad release review. Do not force a local line-break review through unrelated auth, map, export, and native-shell checks.

Use adjacent skills by stage:

  • Use ui-designer, frontend-design, or another design skill to derive or create a visual direction, or to extract a design system from reference screenshots — this skill audits an already-rendered artifact, it does not derive one.
  • Use this skill to test the already-rendered result, not to debug nonvisual code (logic, data, or backend correctness) that produced no visible defect.
  • Use qa-expert for a full test strategy, defect program, and release metrics.
  • Use both this skill and qa-expert only when rendered visual evidence is one part of a broader QA gate.
  • This skill owns rendered information hierarchy as well as geometry: whether persistent labels, explanations and repeated context help the actor's task or displace it. Do not route that question away as mere copy polish. Domain-fact correctness, terminology and persuasion still need the appropriate content or subject-matter review; a rendering pass cannot certify those claims.

Required Outcome

Produce all of the following:

  1. A scope contract naming the artifact, actor, job, target kind and canonical target identity, conditional state, viewports, affected journeys, reference/SSOT, and authorization.
  2. A verification status: verified, partial, or blocked.
  3. Findings tied to visible evidence, impact, state, viewport, and reproduction.
  4. A list of what was actually exercised and what remains unverified.
  5. When freshness or deployment is claimed, a separate delivery status and its identity evidence; when target mutation is explicitly authorized, identity before/after, a same-target/state/viewport re-run, and a regression guard.

Never downgrade the user's real objective to whatever evidence was easiest to collect.

Workflow

Track this checklist for nontrivial audits:

- [ ] 1. Establish the audit contract and authorization
- [ ] 2. Select the required evidence level and canonical harness
- [ ] 3. Prove the target, state, data, viewport, and claimed freshness
- [ ] 4. Capture and inspect macro, local, and responsive evidence
- [ ] 5. Exercise the affected journeys and recipient outputs
- [ ] 6. Report findings; fix and re-run only when authorized
1. Establish The Audit Contract

Read the project instructions, design-system SSOT, tokens, approved assets, launcher/test SOP, and the changed code. Then write a falsifiable contract:

Artifact/page type:
Actor and job:
Target kind + canonical identity:
  web = exact in-browser URL (query/fragment included) + named environment
  single file/image = canonical path + content hash + rendering scheme
  multi-resource artifact = canonical entry + dependency/manifest digest + renderer
  native = installed artifact fingerprint + build/version + process/window + renderer route
Conditional state:
Delivery identity/status, only when freshness/deployment is claimed:
Reference or design-system SSOT:
Relevant viewport/device matrix:
Intended projection/canvas size, if any:
Affected interactions and outputs:
Audit profiles:
Source authorization: audit-only | fix-and-verify
Interaction/action authority: read-only navigation | fixture-safe state changes | <named actions>
Target mutation authority: none | isolated diagnostic | local target | deploy <named environment>
Anti-goals / must-not-become:
Pass condition:

Name the correct state before judging pixels. Logged-out, onboarding, empty, permission-denied, seeded, populated, loading, and feature-flag branches can look like different products. A clean screenshot of the wrong branch is invalid. When authorization is in scope, signed-in-but-role-less is a distinct branch; logged-out or fully privileged evidence cannot stand in for it.

Use the actor's task as the success target. “The chart exists” or “the tab switches” is not enough when the user needs to decide severity, finish a review, or recover from an error.

Freeze the user's requirements separately from the implementation. A complaint about clutter, redundant explanation or wasted space identifies a failure class, not just the circled element. Inspect that class across the declared full surface. Do not silently narrow the review to the last screenshot's rectangles or rewrite the requirement as “the task remains possible” after a candidate fails.

When the pass condition names a visual reference — a screenshot, another product's page, a "make ours look like theirs" — load references/reference-parity-decomposition.md before judging the implementation, and in fix-and-verify mode before writing the next fix round. This does not widen the skill's after-implementation scope: the decomposition is the first act of the audit, applied to the reference artifact (which always already exists), and each parity fix round is implementation happening inside this skill's fix-and-verify authority. If the same request also needs a visual direction created from scratch, that part still belongs to a design skill — hand the finished inventory over rather than re-deriving it there. The contract's first deliverable is the measured structural inventory of the reference, and the parity verdict is a per-relationship diff against that inventory. Fixing only the delta the user's latest screenshot complains about, round after round, converges only by exhausting the user — a real five-round case is decomposed in that file. It also governs two traps that outlive the inventory: your own geometry assertions are Level D for parity (they encode your reading of the reference, and stay green through a misreading), and a user's veto on an effect ("never crop the image") indicts the structural premise that forces the effect, not the parameter that picks its flavor. For a reporting-grade data page compared against a tier reference, that file and references/data_viz_tier_and_token_audit.md divide the work: decomposition governs page structure, the tier benchmark governs data-presentation parameters — load both.

2. Select The Evidence Level

Use the strongest level required by the claim:

LevelEvidenceClaims it can support
AReal visible Chrome/browser or canonical native-app window, driven through the user journeyBrowser/OS chrome, downloads, clipboard, popup blocking, file pickers/dialogs, print preview, permissions, native shell, actual visible-window complaints
BSame-state browser DevTools or project E2E/Playwright run with representative dataDOM geometry, routes, focus, overlays, interaction states, repeatable responsive behavior
CFresh headless mechanical sweep from the bundled scriptOverflow, wrapping, images, basic layout heuristics, screenshot candidates
DSource, lint, build, unit tests, or static DOM reasoningHypotheses and regression support only

Do not promote a lower level into a stronger conclusion:

  • A screenshot path that was never opened has no visual evidence value.
  • A fresh headless empty state cannot verify the user's populated state.
  • A renderer URL cannot verify an Electron/native shell.
  • A handler call cannot verify Chrome print preview, popup, or download UI.
  • A pointer cursor, hover style, or "click to X" badge cannot verify the click does anything: a signifier without a working handler is a dead click, confirmed only by triggering it (step 5).
  • Device emulation is an approximation; use a real device when device-specific behavior is material.

If the required Level A surface is unavailable or another session owns the GUI, continue only with evidence that does not pretend to replace it. Report the exact missing evidence and mark the affected claim partial or blocked.

3. Prove Target, State And Viewport

Read project-authoritative status before launching anything. Use the canonical launcher only when each side effect fits its own authority: lifecycle permission covers rebuild/restart/deploy, while seed or transactional data changes require interaction/action authority. Never infer one from the other. An authorized isolated diagnostic server is labeled non-target.

Keep an exact web URL in browser memory, but persist only a redacted structural URL plus a stable digest/query-key list. Single files/images use path, content hash, and renderer; multi-resource HTML/decks require an authoritative resource manifest or dependency-closure digest. Native UI needs an installed-artifact fingerprint/code signature plus build, process/window, and renderer route. A renderer dev URL is diagnostic only. Treat raw screenshots as temporary local sensitive evidence; share/commit only a minimal redacted derivative.

When a claim concerns a source change, freshness, or deployment, additionally close the source-to-target chain:

  1. take the expected identity from the target's release contract, not local HEAD unless that target is supposed to run HEAD;
  2. read project-authoritative runtime build/image/release status;
  3. map browser/data-plane evidence to that expected artifact—a hashed filename alone proves nothing unless an expected manifest maps it;
  4. prove the intended route, actor, data, conditional state, and viewport.

For GET-readable web resources, follow delivery verification and run the bundled manifest comparison before claiming a matched deployment. Include separately served embedded components. Its result establishes only the supplied identity checks; keep pixel inspection and the actual user journey as independent gates.

Without identity mapping, a freshness/deployment claim is unprovable; when neither is claimed, use not applicable. Current pixels remain independently verifiable. If a source fix and target differ, its closure stays partial — source fixed, verification target stale. Audit-only work continues inspecting the live target without mutation. Source fix authority alone does not permit a target lifecycle; with separately authorized target mutation, record identity before the action, run only the named canonical lifecycle, re-prove identity, and repeat the same target/state/viewport. If lifecycle ownership is unresolved, that mutation path is blocked.

Prefer a cache-disabled reload/fresh context. Change the query only when the project declares it semantically inert, preserve existing query/fragment, and run final evidence on the original URL. The detailed page-state probe, file:// boundary, cache rules, redirects, and viewport comparison are in references/browser-driving-and-observation-traps.md §2–§5. Record the final URL and dimensions before CSS diagnosis, then restore the user's expected viewport when finished.

For a scripted sweep, first prove the target state is reproducible with one of:

  • the project's fixture/storage-state/setup path;
  • one or more required rendered markers passed with repeated --require flags;
  • a direct deep link whose refresh restores the same state.

Otherwise label the run a fresh-session diagnostic, not a pass.

When the audit must sign in to a SPA, when scripted login fails or bounces back to the auth route, or when the target runs on localhost behind shell proxies, load references/auth-session-and-environment-traps.md before filing any login/network finding — those failures are usually the driving harness or the environment impersonating a product defect.

After authentication, do not drive from remembered sidebar labels or assume the target navigation is already mounted. Record the final URL, a short visible body excerpt, and the currently available links/buttons; then follow the canonical entry the rendered landing page actually exposes. If an expected locator is absent, treat navigation-contract or harness drift as the leading diagnosis until the target route/state is independently proven.

4. Capture And Inspect Rendered Evidence

Capture the whole visible composition before zooming into the defect, then the affected component, relevant responsive widths, and lower sections. Open every screenshot with an image viewer and record what you saw; an uninspected file is not evidence.

Calibrate the capture before trusting it. Falsify apparent clipping against DOM geometry, pin device scale where supported, wait for fonts/network/animation, and use the engine the recipient actually views. DOM evidence explains pixels; it does not replace them.

The full capture-calibration protocol and minimum inspection set are in references/browser-driving-and-observation-traps.md §12. Extent and device-emulation traps specific to headless capture are catalogued in the same reference at §4–§5.

Load references/history-derived-checklist.md for the core visual/responsive defect catalog and standards-backed checks. For composition or density audits, execute its Information necessity before layout check before fixing line breaks. The sweep's attentionInventory makes the visible text population and exact repetitions inspectable; review the full population against the task, not only its repetition candidates. Complete inventory coverage is not proof that the content is necessary.

Some defects produce no diagnostic anywhere: a global reset outranking a component's own styles, a library renaming its internal DOM classes so whole rule groups match nothing, a font family declared but never shipped, geometry written into theme config where source scans cannot see it, a new design token reusing a name the file already spent, a property that cannot apply because the rule never set the layout mode it presupposes, and per-element compliance that still reads as "no design system" in aggregate. Source review, type checks and geometry assertions are structurally blind to these — the artifacts are valid and simply do nothing. When a page looks cheap while every gate is green, that combination is the signature. Load references/silent-degradation-and-evidence.md for the detection method per class, and probe the two highest-yield ones mechanically:

node <skill-root>/scripts/silent_degradation_probe.mjs font \
  --url http://127.0.0.1:5173/ --weight 700 \
  --family "Brand Sans" --family "Fallback Sans"

node <skill-root>/scripts/silent_degradation_probe.mjs class \
  --css path/to/bridge.css --library-css node_modules/<lib>/dist/<lib>.css

Pass every family in the stack and the weight the page really uses. Interpret all five verdicts exactly; platform generics are healthy, while only host-provided-only and broken asset are defects. The reference explains why computed family names, document.fonts.check(), unloaded candidates, and CJK-only width probes otherwise create false conclusions.

Run the bundled sweep from the audited project so it can resolve the project's existing Playwright dependency:

node <skill-root>/scripts/visual_layout_audit.mjs \
  --url 'http://127.0.0.1:5173/?state=fixture#/ready' \
  --page-type app \
  --require "Expected state marker" \
  --screenshot-sections

Use --file <artifact.html> for a local HTML artifact. Run node <skill-root>/scripts/visual_layout_audit.mjs --help for all flags. For a contracted canvas, pass one or more exact viewports; custom viewports replace the default responsive matrix:

node <skill-root>/scripts/visual_layout_audit.mjs \
  --file deck.html --page-type deck --viewport 1920x1080 \
  --screenshot-sections

For a long page whose evidence depends on below-the-fold covers or thumbnails, add --scroll-visible-media. It visits rendered media rows before capture so lazy loading can start, while excluding CSS-hidden responsive alternatives. Without that flag, offscreen lazy media is reported as deferred coverage rather than a broken asset. In either mode, inspect the screenshots: “not requested,” “still loading,” and “request completed but undecodable” are different states.

Use repeated --forbid patterns only for project-specific stale names or rendered terms that the current product contract explicitly prohibits. Do not encode generic taste preferences as forbidden regexes.

The script exits:

  • 0 when no mechanical errors remain;
  • 1 when errors remain, or warnings remain with --fail-on-warning;
  • 2 for invalid input, missing prerequisites, or runtime/setup failure.

The script writes screenshots and its JSON report to a unique temporary run directory; explicit --out must be new or empty. It is a Level C sweep, not the final verdict. Never commit/share raw evidence: reports hash rendered labels and redact target-derived values, while derivative screenshots need identifying pixels redacted. Its target-string fingerprint and single-file byte hash do not compute a multi-resource closure/native identity; supply the project contract.

Do not mutate the audited project merely to run the sweep. Reuse its package manager and canonical browser harness. If Playwright is absent, continue with available Level A/B evidence and report the omitted Level C sweep; install a dependency only when dependency changes are authorized.

Pass headers through --header-env "Name: ENV_NAME"; argv contains only the header/env names, never the value. Raw --header is disabled. Values stay on the target origin; TLS stays enabled except for an explicitly trusted self-signed origin.

Run the probe regressions from a project that already provides Playwright:

bash
node --test <skill-root>/tests/test_silent_degradation_probe.mjs
Show full SKILL.md (1,157 more words)Show less
5. Exercise Journeys And Outputs

A visible signifier is not proof of behavior — trigger every relevant control whose side effects fit the explicit action authority, confirm the response, and mark the rest unverified. Pointer/hover/button styling can be a false affordance: the handler is absent or stale, while screenshots and plausible source both pass. Only a real Level A/B trigger verifies behavior. Prioritize late-added lightboxes, thumbnail grids, and copy actions. Assert the resulting state—not dispatch—and rule out delegation, hydration timing, or trusted-gesture gates before calling a dead click (browser-driving-and-observation-traps.md trap 1). A missing visible cue around working behavior is the inverse failure in the silent-degradation reference.

Exercise only the relevant transition matrix:

entry -> ready -> active -> processing -> success/error -> recovery -> ready

Also verify, when applicable:

  • click -> URL/state -> refresh -> deep link -> back/forward;
  • drawer/modal/popover open, focus, background interaction, close, and mobile;
  • transient notification lifecycle with observation armed before the trigger;
  • advanced mode -> visible current mode and trigger owner -> one-step return to default;
  • provider/model/runtime status -> selected configuration and current status evidence;
  • download -> completed file -> opened recipient artifact;
  • share -> copied/opened URL -> refreshed recipient state;
  • file picker/dialog -> visible open/cancel/select path -> recovered app state;
  • print/PDF -> real Chrome preview -> nonblank pages;
  • Electron/native -> canonical app process/window -> native controls and shell.

Load references/journey-and-page-contracts.md when the audit includes state transitions, authorization, modes, provider/model/runtime truth, routes, transient states, overlays, browser outputs, native shells, landing/deck/browser tool/game artifacts, dashboards, design-system artifacts, GIS/maps, or review tools.

Load references/data_viz_tier_and_token_audit.md only for reporting-grade data pages, named tier/reference comparisons, chart token audits, or categorical palettes.

Before reporting a nontrivial audit, re-walk the primary path as a tired user without debugger context. Look first for unclear trigger or mode ownership, hidden return-to-default, blocked recovery, misleading runtime labels, raw machine language, unreachable controls, avoidable manual work, and the missing guard that would let the same defect recur. This is a falsification pass, not an excuse to expand a local visual-only audit into every profile.

6. Report, Fix, And Re-run

Every appearance claim ships with the pixels that show it. A reader who cannot see the defect cannot decide anything about it, and cannot check whether the finding is even real. Crop to the affected element with just enough surrounding context to locate it — a full-page screenshot proves nothing about a 14px misalignment, and prose alone ("the buttons look cheap") is unactionable no matter how accurate. scripts/silent_degradation_probe.mjs shot crops one element plus padding for exactly this.

Four rules that decide whether the evidence survives contact with a reader: comparisons must be scale-matched (two full-width regions placed side by side shrink until the 3px difference under discussion vanishes — crop both to the same component at the same width instead); dimensions are reported in CSS px, never device px (a DPR-2 capture has twice the pixel count, and quoting that as page height has produced a false "20 screens long" finding); a capture taken before a fix is labeled with the commit it shows rather than presented as current; and findings resting on a code count rather than a photograph are marked as such, so the reader knows which parts of the list are equally evidenced.

Separate impact from category. Follow the project's severity taxonomy when one exists. Otherwise use:

  • Blocker — false success, destructive/misleading action, or primary journey cannot complete without a safe workaround;
  • Major — core task, recipient output, recovery, route, or critical control is unusable;
  • Moderate — comprehension or operation is materially degraded but a safe workaround exists;
  • Minor — polish defect with little task impact.

Use categories such as layout, responsive, state, route, accessibility, browser-output, native-shell, intent, or taste. Taste and Intent are not severity levels.

Report with this compact schema:

Current-render status: verified | partial | blocked
Delivery status: matched | mismatched | unprovable | not applicable
Fix-closure status: verified | partial | blocked | not applicable
Target: <web: redacted requested/final + target-string fingerprint/query keys/redirects | single-file/image: redacted canonical path + content hash + renderer | multi-resource: entry + authoritative manifest/dependency-closure digest + renderer | native: installed-artifact fingerprint/signature + build/version + process/window + renderer route>
Environment: <verified name or unverified>
Delivery identity: <expected; observed before -> after; evidence>
Actor/job; reference/pass condition; affected journeys:
Authorization: <source scope; interaction/action scope; target-mutation scope>
Scope: <state, viewports, profiles>

Findings:
- Major · browser-output · PDF action · desktop
  Impact/state/viewport/reproduction:
  Evidence artifact/crop:
  Evidence: clicking the visible control opens about:blank; print preview has no page.
  Fix: use a user-gesture-safe print path and re-test the recipient preview.

Reference-parity inventory (parity audits only):
- <relationship -> matched | deliberately diverged (derivation) | not yet, one line each>

Verified:
- <journey/state/viewport + concrete evidence>

Not verified:
- <missing surface/evidence and why>

In audit-only mode, continue read-only evidence gathering but make no source or target mutation. In fix-and-verify mode:

  1. Fix the root cause rather than hiding overflow, shrinking all type, changing selectors to evade the detector, or removing a feature.
  2. Preview subjective alternatives live before committing a shared visual token.
  3. Update a target only under its separate named mutation authority; otherwise report source-fixed/target-unverified without expanding scope.
  4. Re-run the same canonical target and re-prove identity, route, state, viewport, journey, and recipient output.
  5. Add or update the smallest regression guard that would catch the confirmed failure class.

Three habits keep the fix pass from manufacturing its own defects — each has produced one:

  • Shoot the "before" while the defect still exists. After the rebuild it is unreproducible, and a closure report can then only assert the improvement. Reuse the identical crop window for the after-shot so the pair differs by one variable.
  • Grep a new shared name before introducing it. A token named after a word the file already spent (rail, bar, card) silently overrides or gets overridden depending on definition order, changing two subsystems at once (silent-degradation class 1f).
  • Prove the repaired assertion can fail. Reintroduce the defect, watch it go red with the expected magnitude, then remove it. An assertion that stayed green through the whole bug does not become a guard by being rewritten.

Completion Gate

Call current-render status verified only when:

  • the canonical target kind/identity, final target, data, and actor state are proven;
  • delivery is matched, mismatched, or unprovable when freshness is claimed, otherwise not applicable;
  • every screenshot cited in the report was opened and inspected;
  • relevant viewports and lower sections were covered;
  • affected interactions and outputs were exercised at the required evidence level;
  • no unresolved Blocker/Major finding contradicts the pass;
  • every explicit pass condition is met, including information necessity when layout/density is in scope; calling a violation Moderate, Minor, taste or “still usable” does not override a user's requirement;
  • remaining limitations are explicit.

Call fix-closure status verified only after an authorized fix is rechecked against the same canonical target/state/viewport; otherwise use partial or blocked.

Otherwise report partial or blocked. Never ask the user to perform a check the available agent tools can perform.

Bundled Resources

  • scripts/visual_layout_audit.mjs — Playwright-powered mechanical viewport, layout, and media-state sweep with screenshots and JSON evidence.
  • scripts/attention_inventory.mjs — observed text/geometry, repetition and label echo inventory used by the sweep; it never certifies necessity.
  • references/history-derived-checklist.md — core visual/responsive defect catalog plus standards-backed checks.
  • references/journey-and-page-contracts.md — state, route, overlay, browser-output, native-shell, and page-type contracts.
  • references/markdown-reader-handoff.md — complete-figure comparison in the actual Markdown reader, dependency diagnosis and authorized readable-image repair.
  • references/auth-session-and-environment-traps.md — authenticated-SPA login and post-login navigation driving traps plus environment hijack diagnostics (proxy, CSP entry point, server-log triangulation).
  • references/data_viz_tier_and_token_audit.md — conditional data-viz, reference-tier, token, and palette audit.
  • references/reference-parity-decomposition.md — the reference-parity profile's method: measured structural inventory of the named reference before judging or fixing, per-relationship parity verdicts with match criteria, why self-authored assertions are Level D for parity, veto-premise analysis, asset fidelity, relationship (not value) translation, and the pre-report confirmation list.
  • references/browser-driving-and-observation-traps.md — the auditor's own failure modes: misread clicks, stale caches, file:// limits, viewport-vs-page screenshots, width-resize vs device emulation, states a default screenshot cannot show, hidden-tab media deferral, virtual-time false negatives, --dump-dom timing (and the title-encoded interaction probe done right), and Range-server media stalls. Read it before driving a real browser, and whenever an observation surprises you.
  • evals/evals.json and evals/trigger-evals.json — behavior and routing regression cases; excluded from packaged runtime content.

© daymade, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 36 other files (scripts, references, assets) in frontend-visual-qa of daymade/claude-code-skills.

  • SKILL.md
  • assets/markdown-reader-pilot/source.html
  • evals/evals.json
  • evals/files/browser-output-fixture.html
  • evals/files/data-viz-reference.html
  • evals/files/data-viz-target.html
  • evals/files/dead-affordance-fixture.html
  • evals/files/deck-fixture.html
  • evals/files/focus-and-motion-fixture.html
  • evals/files/gis-fixture.html
  • evals/files/layout-defects.html
  • evals/files/lazy-responsive-media-fixture.html
  • evals/files/route-state-fixture.html
  • evals/files/script-evidence-edge-cases.html
  • evals/files/static-review.png
  • evals/files/transient-fixture.html
  • evals/trigger-evals.json
  • … and 20 more

Open the folder on GitHubat commit 91bed2b

Compare with similar skills

Frontend Visual QA next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Frontend Visual QA compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Frontend Visual QA this skilldaymade/claude-code-skills1.4k—~7.7kAutomated safety check: PassMIT
Igniteui Angular Figma To AppIgniteUI/igniteui-angular599—~6.4kAutomated safety check: PassMIT
Extract Design Systemespennilsen/pi122—~2kAutomated safety check: PassMIT
Design SystemOhh-889/skyroc79511 repos~1.7kAutomated safety check: PassMIT
UI/UX Design System AdvisorGalaxy-Dawn/claude-scholar5.7k1 repos~1.1kAutomated safety check: PassMIT
Cc DesignZeroZ-lab/cc-design827—~2.2kAutomated safety check: NotesNone

Similar skills

  • Igniteui Angular Figma To App

    IgniteUI/igniteui-angular

    Builds Angular views from Figma designs with Ignite UI for Angular, supporting Indigo.Design kits, third-party kits, and plain frames.

    599 GitHub stars~6.4k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Extract Design System

    espennilsen/pi

    Reverse-engineer a design system from a live website (public URL or localhost).

    122 GitHub stars~2k tokensUpdated 16 days ago
    Frontend & DesignAuto-check passed
  • Design System

    Ohh-889/skyroc

    Token architecture, component specifications, and slide generation.

    795 GitHub starsUsed in 11 repos~1.7k tokens
    Frontend & DesignAuto-check passed
  • UI/UX Design System Advisor

    Galaxy-Dawn/claude-scholar

    Turns a vague UI request into a concrete design system with style, palette, typography and layout guidance from a search script, plus stack-specific implementation advice.

    5.7k GitHub starsUsed in 1 repo~1.1k tokens
    Frontend & DesignAuto-check passed
  • Cc Design

    ZeroZ-lab/cc-design

    High-fidelity HTML design and prototype creation. An agent skill from ZeroZ-lab/cc-design.

    827 GitHub stars~2.2k tokensUpdated 3 mo ago
    Frontend & DesignAuto-check: notes
  • Visual Style

    calesthio/OpenMontage

    Create, extract, and apply portable visual design systems via visual-style.md files.

    65k GitHub stars~1.5k tokensUpdated 4 days ago
    Frontend & DesignAuto-check passed

More from daymade/claude-code-skills

All 103 skills in this repo
  • Video Comparer

    daymade/claude-code-skills

    This skill should be used when comparing two videos to analyze compression results or quality differences.

    1.4k GitHub starsUsed in 1 repo~1.4k tokens
    Auto-check: notes
  • CLI Demo Generator

    daymade/claude-code-skills

    Generates professional animated CLI demos as GIFs using VHS terminal recordings.

    1.4k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Doc To Markdown

    daymade/claude-code-skills

    Converts DOCX/PDF/PPTX and saved HTML/HTM to high-quality Markdown with automatic post-processing.

    1.4k GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Interaction Design Board

    daymade/claude-code-skills

    Generates several distinct, clickable HTML interaction prototypes for one product surface into a Design Board and collects selection/remix feedback before implementation.

    1.4k GitHub stars~2.7k tokensUpdated today
    Auto-check passed
  • Auto Repo Setup

    daymade/claude-code-skills

    Diagnoses and repairs repository setup and guarded Git workflows for Claude Code or Codex — environment repair, startup sync, hook auditing, collaborator handoff.

    1.4k GitHub stars~2.6k tokensUpdated today
    Auto-check: notes
  • Bigdata Skill

    daymade/claude-code-skills

    Pulls Bigdata.com (RavenPack) financial and news data via the official bigdata-client SDK and /v1/ REST endpoints — structured financials, prices, analyst estimates, entity-sentiment series…

    1.4k GitHub stars~3.7k tokensUpdated today
    Auto-check passed

Works with

Questions about Frontend Visual QA

What does Frontend Visual QA do?

Audits already-rendered UI — web app, deck/slide, dashboard, design-system, or Electron/native app — via real-browser/native-app journeys and a Playwright sweep. Frontend Visual QA is an agent skill from daymade/claude-code-skills. Audits already-rendered UI — web app, deck/slide, dashboard, design-system, or Electron/native app — via real-browser/native-app journeys and a Playwright sweep.

When should I use Frontend Visual QA?

Frontend Visual QA fits situations like: tasks that involve Visual regression testing; tasks that involve UI design; tasks that involve Design systems.

How do I install Frontend Visual QA in Claude Code?

Run `npx skills add daymade/claude-code-skills --skill frontend-visual-qa -a claude-code`. Or copy the skill folder (frontend-visual-qa in daymade/claude-code-skills) into .claude/skills/frontend-visual-qa in your project. Claude Code loads it when a task matches its description.

How do I install Frontend Visual QA in Codex?

Run `npx skills add daymade/claude-code-skills --skill frontend-visual-qa -a codex`. Or copy the skill folder (frontend-visual-qa in daymade/claude-code-skills) into .agents/skills/frontend-visual-qa in your project. Codex loads it when a task matches its description.

Can I use Frontend Visual QA in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add daymade/claude-code-skills --skill frontend-visual-qa -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/frontend-visual-qa, .gemini/skills/frontend-visual-qa, .github/skills/frontend-visual-qa and .opencode/skills/frontend-visual-qa in your project.

What does Frontend Visual QA need to run?

Going by SKILL.md and its folder, Frontend Visual QA needs the command-line tools its instructions call (node).

Does Frontend Visual QA access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Frontend Visual QA safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Frontend Visual QA use?

Frontend Visual QA is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Frontend Visual QA use?

About 7.7k tokens (SKILL.md is roughly 31k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 29k tokens, read only when the agent opens those files.

What are the alternatives to Frontend Visual QA?

Skills that share tags, products or a category with Frontend Visual QA: Igniteui Angular Figma To App (IgniteUI/igniteui-angular, 599 stars), Extract Design System (espennilsen/pi, 122 stars), Design System (Ohh-889/skyroc, 795 stars) and UI/UX Design System Advisor (Galaxy-Dawn/claude-scholar, 5.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Frontend Visual QA?

daymade (a GitHub user) maintains it in daymade/claude-code-skills, which has 1,444 GitHub stars. The repository holds 103 skills in this directory. The repository was last updated on October 8, 2026.

Source: daymade/claude-code-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.