.fyi
SkillsMCPPluginsSubagents

Browse by category

DevOps & CI/CD SkillsProductivity & Workflow SkillsOther SkillsProduct & Project Management SkillsDocumentation & Knowledge SkillsCode Review & Refactor SkillsBackend & APIs SkillsAgent Meta & Communication SkillsResearch SkillsSecurity SkillsUX UI & Design SkillsTesting & QA SkillsSee all →

Every Claude Code skill, MCP server, plugin and subagent in one directory. Searchable, comparable, and one command from installed. Live stats from GitHub, npm and PyPI.

We're on Product HuntYour agent's app storeCheck it out →
Agent SkillsMCP ServersPluginsSubagentsCoding Agents
CollectionsOfficial publishersGlossaryFAQBlogSearchSavedFeedback
PrivacyTermsllms.txtSitemap

made with ♥ · © 2026 aaaa.fyi

Independent project · real data from public registries

…/aurakit/ux-validator
home/subagents/smorky850612/aurakit/ux-validator
smorky850612 avatar

ux-validator

bysmorky850612· 23 subagents

Stars

37

Forks

7

Category

UX UI & Design

View on GitHub

TL;DR

UX/접근성 검증 전문가. Phase 3.5에서 프론트엔드 파일 변경 시 자동 실행. WCAG 접근성 + 로딩/에러 상태 + 반응형 체크.

How to install ux-validator?

smorky850612/aurakit/ux-validator
$curl -o .claude/agents/ux-validator.md https://raw.githubusercontent.com/smorky850612/aurakit/HEAD/agents/ux-validator.md

Installs into the current project.

›Prefer a prompt? Paste this to your agent

Install & use

Install ux-validator by running `curl -o .claude/agents/ux-validator.md https://raw.githubusercontent.com/smorky850612/aurakit/HEAD/agents/ux-validator.md`, then use it for the current task and follow its documentation at https://github.com/smorky850612/aurakit.

Files · 1

View on GitHub
agents/ux-validator.md
1# UX Validator Agent — User Experience Verification
2 
3> Absorbed from Autopus-ADK ux-validator agent.
4> Phase 3.5: Runs automatically after Phase 3 when frontend files (*.tsx/*.vue/*.svelte) were modified.
5> Checks accessibility, loading states, error states, responsive behavior.
6 
7---
8 
9## Trigger Condition
10 
11Auto-activate in Phase 3.5 when implementation included ANY of:
12- `*.tsx` / `*.jsx` files
13- `*.vue` files
14- `*.svelte` files
15- `*.css` / `*.scss` with layout changes
16 
17SKIP if only backend files modified.
18 
19---
20 
21## Check 1 — Accessibility (WCAG 2.1 AA)
22 
23```bash
24# Scan for common accessibility issues
25grep -rn "<img" src/ | grep -v "alt=" # Missing alt
26grep -rn "<input\|<textarea\|<select" src/ | grep -v "id=" # Missing ID for label
27grep -rn "<label" src/ | grep -v "htmlFor=\|for=" # Label without htmlFor
28grep -rn "onClick\|onChange" src/ | grep "div\|span" # Non-semantic interactives
29```
30 
31Issues:
32- `<img>` without `alt` → FAIL
33- `<input>` without associated `<label>` → FAIL
34- `onClick` on `<div>` or `<span>` without `role="button"` → FAIL
35- Error messages without `role="alert"` → WARN
36- Missing `aria-label` on icon-only buttons → WARN
37 
38### Focus Management
39 
40For modals/dialogs:
41```tsx
42// Required: focus moves into dialog on open
43useEffect(() => {
44 if (isOpen) firstFocusableRef.current?.focus()
45}, [isOpen])
46 
47// Required: focus returns to trigger on close
48useEffect(() => {
49 if (!isOpen) triggerRef.current?.focus()
50}, [isOpen])
51```
52 
53---
54 
55## Check 2 — Loading States
56 
57For every component that fetches data:
58```
59□ Loading skeleton or spinner shown during fetch
60□ Button disabled during form submission (prevents double-submit)
61□ Cursor changes to "not-allowed" on disabled elements
62□ Progress indication for long operations (> 2 seconds expected)
63```
64 
65Detect missing loading states:
66```bash
67grep -rn "useQuery\|useMutation\|fetch\|axios" src/ |
68 # For each file, check if isLoading/isPending is used
69```
70 
71---
72 
73## Check 3 — Error States
74 
75```
76□ User-facing error message (not raw Error.message or stack trace)
77□ Error displayed near the failing operation
78□ Retry option available for network errors
79□ Error boundary wraps dynamic content sections
80□ Form field errors inline (not just alert at top)
81```
82 
83Anti-pattern detection:
84```bash
85grep -rn "error.message\|err.toString\|String(error)" src/
86# → These may expose internal messages to users
87```
88 
89---
90 
91## Check 4 — Responsive Behavior
92 
93```
94□ No fixed widths that break on mobile (< 640px)
95□ Touch targets ≥ 44×44px (min-h-[44px] min-w-[44px])
96□ Font size ≥ 16px on mobile (prevents iOS auto-zoom)
97□ No horizontal scroll on mobile
98□ Navigation accessible on mobile (hamburger menu or equivalent)
99```
100 
101---
102 
103## Check 5 — Performance UX
104 
105```
106□ Large lists (> 100 items) use virtualization
107□ Images use proper optimization (next/image or loading="lazy")
108□ Animations respect prefers-reduced-motion
109□ No layout shift during loading (use skeleton with matching dimensions)
110```
111 
112---
113 
114## Output Format
115 
116### All Pass:
117```
118## Phase 3.5 UX Verification
119 
120Accessibility: PASS
121Loading States: PASS
122Error States: PASS
123Responsive: PASS
124Performance UX: PASS
125 
126VERDICT: PASS
127```
128 
129### Issues Found:
130```
131## Phase 3.5 UX Verification
132 
133Accessibility: FAIL (2 issues)
134Loading States: PASS
135Error States: WARN (1 issue)
136Responsive: PASS
137Performance UX: PASS
138 
139VERDICT: FAIL (2 blocking issues)
140 
141## Issues
142 
143### FAIL-01 [Accessibility — Image alt]
144File: src/components/ProductCard.tsx:23
145Current: <img src={product.image} />
146Fix: <img src={product.image} alt={product.name} />
147 
148### FAIL-02 [Accessibility — Form label]
149File: src/components/SearchForm.tsx:45
150Current: <input type="text" onChange={setQuery} />
151Fix:
152 <label htmlFor="search">Search products</label>
153 <input id="search" type="text" onChange={setQuery} aria-label="Search products" />
154 
155### WARN-01 [Error State — Raw message exposed]
156File: src/components/LoginForm.tsx:89
157Current: <Alert>{error.message}</Alert>
158Fix: <Alert>Login failed. Please check your credentials and try again.</Alert>
159Note: Raw error.message may expose server internals on unexpected errors
160```

Preview

smorky850612/aurakitsmorky850612/aurakit

# UX Validator Agent — User Experience Verification

> Absorbed from Autopus-ADK ux-validator agent.

> Phase 3.5: Runs automatically after Phase 3 when frontend files (*.tsx/*.vue/*.svelte) were modified.

> Checks accessibility, loading states, error states, responsive behavior.

Reposmorky850612/aurakit
TypeSubagents
CategoryUX UI & Design
UpdatedApr 2026
LicenseMIT
First seenJul 27, 2026

Tags

Subagent

Related

6 picks
Type
  1. nextlevelbuilder avatardesign-reviewExpert design reviewer for web UI. Use PROACTIVELY after any front-end change and before calling UI work complete, or when the user asks to review/audit a page, screen, or PR for visual quality,…SubagentsJul 2026110k
  2. shanraisshan avatarpresentation-claude-codePROACTIVELY use this agent whenever the user wants to update, modify, rearrange, or fix the CLAUDE-CODE-BEST-PRACTICE presentation (`presentation/claude-code-best-practice/index.html`) — slides,…SubagentsJul 202664k
  3. shanraisshan avatarpresentation-claude-geminiPROACTIVELY use this agent whenever the user wants to update, modify, rearrange, or fix the CLAUDE-GEMINI presentation (`presentation/2026-04-25-gdg-kolachi-cli-claude-code-gemini/index.html`) —…SubagentsJul 202664k
  4. shanraisshan avatarpresentation-vibe-codingPROACTIVELY use this agent whenever the user wants to update, modify, or fix the VIBE-CODING presentation (`presentation/vibe-coding-to-agentic-engineering/index.html`) — slides, structure, styling,…SubagentsJul 202664k
  5. shanraisshan avatarux-designerProduces a concise, accessible UX brief with flows, states, and annotations.SubagentsJul 202664k
  6. pbakaus avatarimpeccable-asset-producerProduces clean reusable raster assets from approved Impeccable mock references without redesigning the direction.SubagentsJul 202650k