ui-verify-checks
Use when verifying a frontend UI change in a real browser before reporting done.
Skill by jhlee0409
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/jhlee0409-ui-verify-checks
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, frontend, security
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/ui-verify-checks
What's inside
- Skill name
ui-verify-checks- Description
- Use when verifying a frontend UI change in a real browser before reporting done. The canonical 7-check list (real auth → render≠behavior → scroll containment → primary-button reachability → selection-state sync → responsive → console) + environment fail-fast rule (transport-unreachable vs HTTP error distinction) + verdict rules. Load when invoking ui-verify, after any UI change in the frontend app, before claiming any user-visible feature works. Triggers on UI check, design broken, scroll check, button not visible, preview not updating.
- License
- MIT
- Instructions
- 70 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (1)
- SKILL.md
SKILL.md (first lines)
# UI verification — 7 real-browser checks
A UI change is NOT done until it renders correctly in a real browser. The recurring failure modes: broken scroll, off-screen buttons, selection state that does not propagate, render passing while behavior is broken. This skill catches them before work is reported complete.
## Setup
1. Identify which sub-context changed from `git diff --name-only`.
2. Read that sub-context's `DESIGN.md` first. Separate stacks may have separate tones and tokens; verify against the right one.
3. Identify the changed route/page from the diff.
4. Start the dev server if it is not running (`npm run dev` / `vite` on the app's own port). Wait for it to be ready before navigating.
## Environment fail-fast rule (CRITICAL — distinguishes "environment" from "UI defect")
The trigger is the server being UNREACHABLE at the **TRANSPORT layer**: the dev server won't start, or a probe of the backend base URL returns connection-refused / ECONNREFUSED / DNS-fail / timeout — the process is not up, there is NO HTTP response at all.
An HTTP error is **NOT** environment failure: a 4xx/5xx (even a blanket one) means the server IS up and RESPONDING — a 500 can be a genuine backend bug, and a blanket 401/403 is usually fake-auth / wrong-cred → CANT-VERIFY (see Checks), NOT environment.
**Before declaring "environment", PROBE the transport**:
```
curl -sS -o /dev/null -w '%{http_code}' <backend base URL>
```
- No HTTP code (refused / timeout) = environment fail-fast.
- ANY code (even 500) = server is up, stay on the §Checks verdict (FAILURE / CANT-VERIFY).
On a genuine transport-unreachable signal STOP: report `environment problem — server/backend process not running (transport-unreachable), environment must be fixed first` in ONE line and end. Do NOT retry endlessly, re-screenshot, or fall into a long static-analysis fallback — one fail-fast verdict, then stop.
A cold `next dev` / `vite` compile is NOT "down": `browser_wait_for` a stable anchor first; only a refused transport AFTER that is environment.
## Scope boundary — accessibility is NOT your job
a11y for operator surfaces is enforced DETERMINISTICALLY by the CI a11y gate (axe-core runs in CI, not by you, and the merge gate reads its conclusion). Do NOT run axe and self-report it here — stay focused on render + behavior. Design-intent a11y (focus-order intent, label semantics) is `design-critic`'s human layer on top of the axe CI signal.
## The 7 checks (run every one — do not skip)
1. **Real auth, not fake fixtures** — log in with a real seed account against a real backend. Fake JWT / fake storage keys / synthetic silent audio → verdict for any feature behavior is CANT-VERIFY, NOT "PASS". A test environment that makes failure unfalsifiable is no test at all.
2. **Render is not behavior** — "the page renders, the button is in the viewport, the console is clean" only proves the UI was drawn. It is NOT evidence the feature works. The feature works only when real input → real output is demonstrated (e.g. real inputs → click the primary action → a real artifact lands in the result page). Without that artifact, the verdict for "the feature works" is CANT-VERIFY.
3. **Scroll containment** — is scroll applied at the right level? A page-wide scroll that should have been a panel-level scroll is a defect. Confirm the intended scroll region scrolls and the rest stays fixed.
4. **Primary-button reachability** — the save / submit / primary action button must be reachable and clickable without being pushed off-screen. Scroll to it and confirm it is in the viewport and clickable.
5. **Selection-state sync** — when a selection is made in a sub-component (e.g. a bottom strip), confirm it is reflected in the parent (e.g. the top preview). This is a recurring defect — test it explicitly.
6. **Responsive** — resize to a desktop width and a narrow width; confirm nothing overflows or becomes unreachable.
7. **Console** — `browser_console_messages` — report any error. A 401 / 403 / 5xx on a real backend call is a FAILURE, not "environment limitation".
## Verdict rules — pick exactly 1 of 3 (all first-class)
- **PASS** — all 7 checks passed AND a real execution artifact was produced (real output file, real HTTP response body, real authenticated screenshot).
- **FAIL** — specific check(s) failed. List each with selector + screenshot.
- **CANT-VERIFY** — real-run evidence absent OR environment prevents exercising the real path. NOT "PASS with caveats".
## Output (BLUF header first)
- **Conclusion**: one of the 3 above.
- **Check results**: table — check name, PASS/FAIL/CANT-VERIFY, evidence (file path, screenshot path, real HTTP response body, real artifact produced). Evidence is required — a row with no evidence is CANT-VERIFY.
- **Defects**: for each failure, the concrete problem + selector + a screenshot.
- Attach screenshots of the key states + the actual artifact produced.
## Constraints
- Do NOT report "PASS" if any check fails or could not be run.
- **Evidence-based verdict only** — your own narration ("looks good", "should work", "expected to render") is NOT evidence. No artifact = CANT-VERIFY.
- **"Environment limitation" excuse BANNED** — never report "fake auth / fake key / synthetic silent audio limitation, 0 feature errors". If the environment is fake and prevents exercising the real path, the verdict is CANT-VERIFY — not "PASS (conditional)".
- **Render ≠ works** — a passing scroll/viewport/console checklist with no real input→output demonstration means the verdict for *the feature* is CANT-VERIFY.
- **Citation-truth**: any file/contract you cite must be confirmed to exist via grep/read before it grounds a claim.From jhlee0409/omni-harness-kit, MIT.
More from jhlee0409/omni-harness-kit
- 0.507score
localize
jhlee0409
Resolve a change request into an EXACT edit target before touching code, then gate the edit on tests — the localize → edit → validate loop.
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
llm-eng-checks
jhlee0409
Use when building or hardening an LLM feature — prompt design, RAG, eval harness, model/provider selection, guardrails, and token/cost budgeting — with…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
tdd
jhlee0409
Drive a single behavior change with Kent Beck's red → green → refactor loop — write the failing test FIRST, confirm it fails for the right reason, implement…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
accessibility-checks
jhlee0409
Use when verifying accessibility (WCAG 2.2 AA) of a rendered UI in a real browser before reporting done — the omp-native replacement for the chrome-devtools…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
perf-checks
jhlee0409
Use when investigating or optimizing performance in a real browser/build/DB before reporting a fix — the omp-native replacement for the chrome-devtools…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
chrome-verify-checks
jhlee0409
Use when verifying a chrome-extension/ change before reporting done.
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
assess
jhlee0409
Read-only maintainability audit of a whole codebase — ranks the files most likely to cause maintenance pain (size × churn hotspots, test gaps, lint debt) and…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
blast-radius
jhlee0409
Enumerate the full impact set of a symbol before or during a change — every reference, caller, implementation/subtype, and reverse import — plus an explicit…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
db-verify-checks
jhlee0409
Use when verifying data-shape claims against a real store — MongoDB or a SQL store (SQLAlchemy / SQLite / Postgres) — before reporting any data-touching…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
diagnose
jhlee0409
Disciplined diagnosis loop for a hard bug or performance regression — reproduce → minimize → hypothesize → instrument → fix the cause → regression-test.
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
handoff
jhlee0409
Write the live working-set state into a resume block so a FRESH session can continue this work without re-narration.
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
new-spec
jhlee0409
Scaffold a spec triplet (spec.md / plan.md / context.md) under specs/YYYYMMDD-<name>/ before starting a non-trivial piece of work.
SkillCFreshness: C★ 2Claude Code +9
Signals
- Stars
- 2
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Jul 14, 2026 (3 months ago)
- Last release
- Jul 22, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/jhlee0409/omni-harness-kit
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from jhlee0409
- 0.507score
chrome-verify-checks
jhlee0409
Use when verifying a chrome-extension/ change before reporting done.
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
accessibility-checks
jhlee0409
Use when verifying accessibility (WCAG 2.2 AA) of a rendered UI in a real browser before reporting done — the omp-native replacement for the chrome-devtools…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
llm-eng-checks
jhlee0409
Use when building or hardening an LLM feature — prompt design, RAG, eval harness, model/provider selection, guardrails, and token/cost budgeting — with…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
perf-checks
jhlee0409
Use when investigating or optimizing performance in a real browser/build/DB before reporting a fix — the omp-native replacement for the chrome-devtools…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
db-verify-checks
jhlee0409
Use when verifying data-shape claims against a real store — MongoDB or a SQL store (SQLAlchemy / SQLite / Postgres) — before reporting any data-touching…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
assess
jhlee0409
Read-only maintainability audit of a whole codebase — ranks the files most likely to cause maintenance pain (size × churn hotspots, test gaps, lint debt) and…
SkillCFreshness: C★ 2Claude Code +9
Cite this page
ui-verify-checks skill. Agent Mart. https://agentmart.dev/skills/jhlee0409-ui-verify-checks (last updated 2026-10-24)