원클릭으로
ux-review
UI review.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
UI review.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Autonomous unattended mode.
Minimal-toolset mode.
Main coding mode.
Isolated plan execution mode.
Read-only codebase explorer mode.
General-purpose catch-all mode.
| name | ux-review |
| argument-hint | <the UI to verify — a route, page, or component story> |
| description | UI review. |
Checks shipped UI implementation against design bar — real-browser render, five objective gates (steps 4–8): a11y, tokens, responsive/render, states, regression vs baseline. Repo's own tooling discovered, never assumed. Not code review (/review); not authoring/restyling (designer's scope). On request orchestrates remediation — one solver per blocker, re-render before merge (step 11).
On invoke: brief user — render + check plan, fixes opt-in (per-blocker solvers, re-render before merge); gather inputs. Whatever the target's phrasing — a UI to check, or a question about ux-review itself — it's the surface to render; never substitute a hand-written explanation for actually rendering and gating below.
CLAUDE.md/AGENTS.md, README, CI config, dependency manifest): design-token source of truth, stories, a11y auditor, browser driver, visual-regression harness + invocation. By stack — tokens: design-token JSON/YAML, Style Dictionary, Tailwind/theme config, CSS custom properties, Figma MCP / Dev Mode server; stories: Storybook, Ladle, Histoire; a11y: axe-core, pa11y, Lighthouse; drivers: Playwright MCP tools, Cypress, devtools; visual regression: Playwright toHaveScreenshot, Chromatic, Percy, BackstopJS, reg-suit. Web-perf skill on host → page-load/Core-Web-Vitals go there, not here. Render target defaults to the invocation argument (/ux-review <target>) if given — never re-ask it. Remaining gaps → one AskUserQuestion call, minimum: render target (only if not given via argument); baseline (default: pre-change UI via VCS — stash or parent commit); WCAG level (default AA); breakpoints (default 360/768/1280); token source; state matrix (interaction, dark/high-contrast theming, reduced-motion, RTL/i18n, content stress) + scope. Confirm exact commands per rendering-side-effect guardrail first.prefers-reduced-motion honored); direction (RTL if supported); content stress (long strings, 200% text zoom [WCAG criterion], missing images/data, deeply nested/empty content). Breaks layout, drops below WCAG contrast bar, or hides essential content = Blocker.{
"verdict": "NEEDS_FIX",
"gates": {
"a11y": "fail",
"tokens": "pass",
"responsive": "pass",
"states": "fail",
"regression": "pass"
},
"baseline": "parent commit (HEAD~1) vs working tree",
"observations": {
"a11y": "contrast 2.9:1 on .cta fg/bg (WCAG AA needs 4.5:1); axe: 1 critical, 0 serious",
"states": "card body clips at 200% text zoom; dark-mode focus ring invisible (1.8:1)",
"regression": "header diff is the intended nav change; no off-target drift",
"breakpoints": [360, 768, 1280]
},
"blockers": [
"contrast 2.9:1 on .cta (WCAG AA needs 4.5:1) — use token color/cta-fg (#0b5cad, 4.7:1)",
"200% text zoom clips .card body — fixed container height; switch to min-height"
],
"warnings": [
"card spacing 14px is off the 4px scale; nearest token space-3 (12px)"
],
"not_checked": [
"screen-reader semantics (NVDA / VoiceOver)",
"assistive-tech focus traps",
"motion / animation timing",
"production data shapes"
]
}
NEEDS_FIX → designer/engineer by default. Opt-in via AskUserQuestion after verdict; reviewer never hand-edits the UI. You = orchestrator: spawn solvers via host sub-agent capability — create worktrees, dispatch, re-render, open PRs; no end-to-end hand-off to workflow/swarm engine — you own the loop. Per blocker: own pipeline, independent:
git worktree add) — no collision, masking, unrejectable bundle merge.pass = not done → send back or report unresolved; never merge.main (repo convention — PR or direct) only if (a) re-render proves gate cleared, same target, and (b) user approves before/after evidence. Rejected → discard worktree. Per-finding merges — each judged on own evidence.Warning-only, never Blocker for "feels off." No fabricated "design score" — real measurables: WCAG ratios, exact token equality, binary render/layout integrity.not_checked, hand to human.not_checked, never pass.regression gate skipped, verdict defaults NEEDS_FIX.AskUserQuestion unless repo already authorizes.NEEDS_FIX. DONE = positive proof every gate passed; skipped gate (status: skipped) ≠ pass.