Verify built UI against this project's hard rules and against the design — runs the mechanical check script, then the judgement checks a script cannot make (visual fidelity vs Figma, token naming…

UnlicenseAuto-check: notesFrontend & Design

Install QA Verify

skills CLI
$ npx skills add textura-agency/next16-claude-starter --skill qa-verify -a claude-code

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

GitHub CLI
$ gh skill install textura-agency/next16-claude-starter qa-verify --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/textura-agency/next16-claude-starter.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/qa-verify .claude/skills/qa-verify && 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
qa-verify
GitHub stars
133
Token cost
~1.9k tokens
SKILL.md length
992 words
Files
1
Skills in repo
16
Repo updated
First seen
Licence
Unlicense

At a glance

Verify built UI against this project's hard rules and against the design — runs the mechanical check script, then the judgement checks a script cannot make (visual fidelity vs Figma, token naming…

  • Works in 4 steps: Run layer 1, fix every FAIL. → Walk layer 2 section by section, fixing… → Re-run layer 1 (fixes can introduce… → …
  • Is this ready to ship
  • SKILL.md covers Layer 1 — mechanical (always…, Layer 2 — judgement checks, The loop and Report
  • Calls yarn and node

What it does

QA Verify is an agent skill from textura-agency/next16-claude-starter. Verify built UI against this project's hard rules and against the design — runs the mechanical check script, then the judgement checks a script cannot make (visual fidelity vs Figma, token naming, motion choice, semantics, contrast through every frame of an entrance, responsive behaviour including live resizes, phone overflow and dark mode), and fixes what it finds in a loop until clean. Use after building or changing any page, view, section or component, before committing, and whenever the user says "QA this"…

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Frontend & Design, covering Theming and dark mode. It works with Figma. The repository describes itself as: AI-first Next.js 16 starter for animation-heavy sites, wired with an Obsidian vault & Claude Code hooks. The licence is Unlicense.

When your agent uses it

  • Is this ready to ship
  • Tasks that involve Theming and dark mode

Example prompts

  • “QA this”
  • “check my work”
  • “is this ready to ship”
  • “/qa-verify”

Requirements

  • Pre-approved tools (allowed-tools): Bash, Read, Grep, Glob, Edit, Write

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Run layer 1, fix every FAIL.
  2. Walk layer 2 section by section, fixing as you go.
  3. Re-run layer 1 (fixes can introduce violations).
  4. Repeat until clean.

What it can do on your machine

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

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • Grep
    • Glob
    • Edit
    • Write

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • yarn
    • node

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

  • Network

    No URLs in SKILL.md. Its commands use yarn, which can reach the network depending on how they are called.

    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

QA Verify loads about 1.9k tokens when it runs. Until then it costs about 143 tokens; SKILL.md has 992 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~143
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, Grep, Glob, Edit, Write

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from textura-agency/next16-claude-starter at commit 6c6edf9, republished under its Unlicense licence (© textura-agency). 992 words, ~1,907 tokens.

Download SKILL.mdSave it as .claude/skills/qa-verify/SKILL.md (or your agent's skills folder).
name
qa-verify
description
Verify built UI against this project's hard rules and against the design — runs the mechanical check script, then the judgement checks a script cannot make (visual fidelity vs Figma, token naming, motion choice, semantics, contrast through every frame of an entrance, responsive behaviour including live resizes, phone overflow and dark mode), and fixes what it finds in a loop until clean. Use after building or changing any page, view, section or component, before committing, and whenever the user says "QA this", "check my work", or "is this ready to ship".
allowed-tools
Bash, Read, Grep, Glob, Edit, Write

QA & verification

Two layers. The script decides what is decidable; you decide the rest. Never report "done" on the script alone — it cannot see a design.

Browser checks below use tools/qa/ against a running yarn build && yarn start (yarn qa:setup once; every tool takes --url; see tools/qa/README.md). Probes need a person's UA — the default puppeteer UA gets the robot form, which has no motion, no cursor and no scene, and "proves" a bug gone that a person still sees. Look at every screenshot a tool writes (Read the image) — numbers flag, the eye decides.

Layer 1 — mechanical (always run first)

bash
.claude/scripts/verify.sh          # whole src/
.claude/scripts/verify.sh src/views/about.tsx   # scoped
yarn lint
yarn build                          # must pass before anything ships

Every FAIL must be fixed. WARNs are judgement calls: fix or justify in your summary, do not silently ignore them.

Layer 2 — judgement checks

Work section by section. For each one:

Design fidelity (only when a design exists)

Re-fetch the Figma node — do not QA from memory or from your own earlier summary. get_design_context for values, get_screenshot for layout. Then compare:

  • Copy — character for character. Flag anything paraphrased, shortened or invented.
  • Layout — column count, flex direction, alignment, order, positioning.
  • Spacing — margins, padding, gaps against the design values.
  • Typography — size, weight, line-height, letter-spacing. Never assume a heading is bold; designs often use 400.
  • Colour — exact values, resolved through tokens rather than matched by eye.
  • Images — aspect ratio, crop, radius, overlap. No effects the design lacks.

If an image looks invisible or wrong, check the container first — an invented wrapper background is the usual cause, not the asset itself.

Tokens
  • Every colour/spacing/radius/type value resolves to a token.
  • New tokens follow the three-tier grammar and carry a comment naming their origin.
  • No literal reached @theme inline or a Tier 2 token.
  • A value that had to be invented because the design has no token for it is flagged to the user for design review, not quietly added.
Motion
  • Everything scroll-driven, revealing, staggered or layout-affecting is a spring.
  • CSS transition-* appears only for hover/focus/discrete state, with duration-[var(--duration-*)] and a token ease.
  • Each primitive is the right one — Inview for reveals, SpringTrigger scrub for parallax, Hover for hover, text through the text engine.
  • tag is semantic on every animation component.
  • With prefers-reduced-motion, content is present and readable — and the page still responds: a loop: spring or while (alive) await … loop not gated on useMotionOff() restarts in the same tick forever under skipAnimation and hangs the tab (found on 6+ production sites). node tools/qa/check-motion.mjs --url … checks reduced motion and the robot form.
  • Motion speed doesn't follow the refresh rate: per-frame increments are scaled by dt (a 120 Hz phone otherwise runs them 2×) — mobile-device-qa §120 Hz.
  • Hover springs exist only where a mouse can hover; text reveals blur once per line, never per letter (optimize-performance §3).
Semantics & a11y
  • One <h1>; heading levels never skip; the outline reads as a document.
  • Landmarks named; icon-only controls labelled; real button / a.
  • Keyboard reachable, visible focus, logical tab order.
  • Meaningful alt; decorative images alt="".
  • Contrast meets WCAG AA (4.5:1 body, 3:1 large text) at every frame of the entrance, not just at rest: node tools/qa/axe-sweep.mjs --url … samples contrast and target-size every ~120 ms from navigation. A first-screen fade sampled mid-way is a real Lighthouse failure — reveal with transform / clip / a mask sweep while opacity stays 1 (optimize-load §3). Its at-rest failures over a canvas are real even when Lighthouse says 100.
  • Target size: 24 px centres, measured on the rendered boxes.
  • Overlays (menu, modal): focus moves in when opened and back to the toggle on close, Escape closes, aria-expanded + aria-controls, the rest inert.
Show full SKILL.md (409 more words)Show less
Responsive

This project scales the root font-size with the viewport (the adaptive grid in globals.css), so most sizing follows automatically. What still needs checking:

  • No horizontal overflow at any width down to 320px: document.documentElement.scrollWidth === innerWidth at 320, 360, 390, 430. One over-wide section zooms the whole phone page out.
  • Grid/flex reflow at each breakpoint; nothing cramped or orphaned.
  • Touch targets ≥ 44px on mobile.
  • Navigation collapses at the intended breakpoint.
  • Text stays readable; nothing clipped by an overflow + tight leading combo. Split headlines never break mid-word ("DA/TA") — letters grouped in a white-space: nowrap word span.
  • Dark mode emulated. Any overlay or menu on a theme token (bg-background) turns dark under prefers-color-scheme: dark while a fixed-colour page stays light — one menu read ~1:1 on a reviewer's dark-mode phone. Give overlays their own tokens.
  • Resize it live, both ways — not just fresh loads at each size. node tools/qa/resize-check.mjs --url … [--sel "<elements that matter>"]: a real window jump, drag and widen; a DevTools device-preset switch and back (DPR, mobile and touch change together — how most reviewers check a phone); a Responsive-mode drag; tablet rotation. Each must land where a fresh load at that size does: every line "=", and LOOK at every strip — a box can match while what it draws is stale (a <model-viewer> box right, the model inside it still framed for desktop). Also by hand in next dev. Fix what it finds: sizes measured once on mount, DPR or pointer read once, a one-screen layout's scroll lock, camera framing, springs holding old targets.
  • Anything a phone shows changed (menus, heroes, sliders, full-screen scenes, stills) → run mobile-device-qa — the iOS toolbar, 120 Hz, touch and safe-area checks a desktop browser never exercises.
Architecture
  • Route delegates to a view; view is a Server Component; "use client" at leaves.
  • Content arrives via props/hooks — nothing hardcoded in a component.
  • Async data has loading/error/empty states with skeletons.
  • Components under ~150 lines, in the right folder, named export, typed props.

The loop

  1. Run layer 1, fix every FAIL.
  2. Walk layer 2 section by section, fixing as you go.
  3. Re-run layer 1 (fixes can introduce violations).
  4. Repeat until clean.

Report

State plainly: what failed and was fixed, what is a WARN you consciously kept and why, any design values that could not map to tokens, and anything you could not verify (no design available, no device to test on, iOS-only behaviour checked only in emulation). Do not report a clean pass you did not achieve.

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

Files

Just SKILL.md in .claude/skills/qa-verify of textura-agency/next16-claude-starter.

Open the folder on GitHubat commit 6c6edf9

Compare with similar skills

QA Verify 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.

QA Verify compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
QA Verify this skilltextura-agency/next16-claude-starter133—~1.9kAutomated safety check: NotesUnlicense
Figma Design System Builderwarpdotdev/warp65k2 repos~4.4kAutomated safety check: PassAGPL-3.0
Material Design 3 UI/UX Guideskydashnet/material-design-3-ui-skill138—~3kAutomated safety check: PassMIT
Igniteui Angular Generate From Image DesignIgniteUI/igniteui-angular599—~4.7kAutomated safety check: PassMIT
Igniteui Wc Customize Component ThemeIgniteUI/igniteui-webcomponents170—~4.3kAutomated safety check: PassMIT
Qt Figma Token ExtractionTheQtCompanyRnD/agent-skills470—~7.3kAutomated safety check: PassBSD-3-Clause

Similar skills

  • Builds or updates a design system in Figma from a codebase in ordered phases: discovery, variables and tokens, components, theming and documentation, with checkpoints.

    65k GitHub starsUsed in 2 repos~4.4k tokens
    Frontend & DesignAuto-check passed
  • Material Design 3 UI/UX Guide

    skydashnet/material-design-3-ui-skill

    Guides designing, reviewing or implementing interfaces that follow Google's Material Design 3 system: semantic tokens, component states, adaptive layout and accessibility.

    138 GitHub stars~3k tokensUpdated 10 days ago
    Frontend & DesignAuto-check passed
  • Implements Angular application views from design images using Ignite UI Angular components.

    599 GitHub stars~4.7k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Igniteui Wc Customize Component Theme

    IgniteUI/igniteui-webcomponents

    Theme and style Ignite UI Web Components (and igniteui-react) apps using CSS custom properties, optional Sass, and the igniteui-theming MCP server.

    170 GitHub stars~4.3k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Qt Figma Token Extraction

    TheQtCompanyRnD/agent-skills

    Extract design tokens, text styles, and variables from a Figma design system and produce a design-tokens.json plus ready-to-use QML singletons.

    470 GitHub stars~7.3k tokensUpdated 3 days ago
    Frontend & DesignAuto-check passed
  • Igniteui Angular Theming

    IgniteUI/igniteui-angular

    Generates and customizes Ignite UI for Angular themes including color palettes, typography, elevations, and component-level styles using the Sass theming system and the igniteui-theming MCP server.

    599 GitHub stars~4.1k tokensUpdated yesterday
    Frontend & DesignAuto-check passed

More from textura-agency/next16-claude-starter

All 16 skills in this repo
  • Mobile Device QA

    textura-agency/next16-claude-starter

    Make a site behave on real phones — the defects no Lighthouse run or headless scroll test sees, learned from site owners reviewing production sites on an iPhone.

    135 GitHub stars~5k tokensUpdated yesterday
    Auto-check: notes
  • Optimize Load

    textura-agency/next16-claude-starter

    Get a page into Lighthouse's green zone on desktop and mobile, for people AND for the robot form crawlers get — build it, audit all four categories (Performance, Accessibility, Best Practices, SEO)…

    135 GitHub stars~4.6k tokensUpdated yesterday
    Auto-check: notes
  • Optimize Performance

    textura-agency/next16-claude-starter

    Make a page in this starter actually smooth — build it, scroll it in real Chrome on PC and on an emulated phone, fix what the measurement blames, re-measure to prove it.

    135 GitHub stars~3.7k tokensUpdated yesterday
    Auto-check: notes
  • Payload Admin

    textura-agency/next16-claude-starter

    Make a Payload admin feel like part of the site and explain itself — the skin re-tinted from the site's own tokens (calm, light, no added motion), the site's wordmark and favicon, a dashboard…

    135 GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed
  • Payload Cms

    textura-agency/next16-claude-starter

    Put a Payload CMS admin on a site built from this starter — every visible string and content photo editable, derived from the site's own content objects with the code's copy as the fallback, a…

    135 GitHub stars~3.7k tokensUpdated yesterday
    Auto-check: notes
  • Aeo Visibility

    textura-agency/next16-claude-starter

    Answer Engine Optimisation — make the site citable by ChatGPT, Claude, Perplexity, Gemini and AI Overviews.

    135 GitHub stars~1.4k tokensUpdated yesterday
    Auto-check: notes

Works with

Questions about QA Verify

What does QA Verify do?

Verify built UI against this project's hard rules and against the design — runs the mechanical check script, then the judgement checks a script cannot make (visual fidelity vs Figma, token naming…. QA Verify is an agent skill from textura-agency/next16-claude-starter. Verify built UI against this project's hard rules and against the design — runs the mechanical check script, then the judgement checks a script cannot make (visual fidelity vs Figma, token naming, motion choice, semantics, contrast through every frame of an entrance, responsive behaviour including live resizes, phone overflow and dark mode), and fixes what it finds in a loop until clean.

When should I use QA Verify?

QA Verify fits situations like: is this ready to ship; tasks that involve Theming and dark mode.

How do I install QA Verify in Claude Code?

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

How do I install QA Verify in Codex?

Run `npx skills add textura-agency/next16-claude-starter --skill qa-verify -a codex`. Or copy the skill folder (.claude/skills/qa-verify in textura-agency/next16-claude-starter) into .agents/skills/qa-verify in your project. Codex loads it when a task matches its description.

Can I use QA Verify 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 textura-agency/next16-claude-starter --skill qa-verify -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/qa-verify, .gemini/skills/qa-verify, .github/skills/qa-verify and .opencode/skills/qa-verify in your project.

What does QA Verify need to run?

Going by SKILL.md and its folder, QA Verify needs the command-line tools its instructions call (yarn and node). Its frontmatter pre-approves these tools: Bash, Read, Grep, Glob, Edit, Write.

Does QA Verify 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 QA Verify safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does QA Verify use?

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

How many tokens does QA Verify use?

About 1.9k tokens (SKILL.md is roughly 7.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to QA Verify?

Skills that share tags, products or a category with QA Verify: Figma Design System Builder (warpdotdev/warp, 65k stars), Material Design 3 UI/UX Guide (skydashnet/material-design-3-ui-skill, 138 stars), Igniteui Angular Generate From Image Design (IgniteUI/igniteui-angular, 599 stars) and Igniteui Wc Customize Component Theme (IgniteUI/igniteui-webcomponents, 170 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains QA Verify?

textura-agency (a GitHub organization) maintains it in textura-agency/next16-claude-starter, which has 133 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on October 7, 2026.

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