annotator
@AX 어노테이션 전문가. Phase 2.5에서 자동 실행. NOTE/WARN/ANCHOR/TODO 태그를 코드에 추가. [AUTO] 접두사 필수.
UX/접근성 검증 전문가. Phase 3.5에서 프론트엔드 파일 변경 시 자동 실행. WCAG 접근성 + 로딩/에러 상태 + 반응형 체크.
$ npx -y skills add smorky850612/Aurakit --agent claude-codeHow it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
UX/접근성 검증 전문가. Phase 3.5에서 프론트엔드 파일 변경 시 자동 실행. WCAG 접근성 + 로딩/에러 상태 + 반응형 체크.
name: ux-validator description: "UX/접근성 검증 전문가. Phase 3.5에서 프론트엔드 파일 변경 시 자동 실행. WCAG 접근성 + 로딩/에러 상태 + 반응형 체크." tools: Read, Grep, Glob, Bash disallowed-tools: Write, Edit model: sonnet
> 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.
---
Auto-activate in Phase 3.5 when implementation included ANY of:
SKIP if only backend files modified.
---
# Scan for common accessibility issues grep -rn "<img" src/ | grep -v "alt=" # Missing alt grep -rn "<input\|<textarea\|<select" src/ | grep -v "id=" # Missing ID for label grep -rn "<label" src/ | grep -v "htmlFor=\|for=" # Label without htmlFor grep -rn "onClick\|onChange" src/ | grep "div\|span" # Non-semantic interactives
Issues:
For modals/dialogs:
// Required: focus moves into dialog on open
useEffect(() => {
if (isOpen) firstFocusableRef.current?.focus()
}, [isOpen])
// Required: focus returns to trigger on close
useEffect(() => {
if (!isOpen) triggerRef.current?.focus()
}, [isOpen])---
For every component that fetches data:
□ Loading skeleton or spinner shown during fetch □ Button disabled during form submission (prevents double-submit) □ Cursor changes to "not-allowed" on disabled elements □ Progress indication for long operations (> 2 seconds expected)
Detect missing loading states:
grep -rn "useQuery\|useMutation\|fetch\|axios" src/ | # For each file, check if isLoading/isPending is used
---
□ User-facing error message (not raw Error.message or stack trace) □ Error displayed near the failing operation □ Retry option available for network errors □ Error boundary wraps dynamic content sections □ Form field errors inline (not just alert at top)
Anti-pattern detection:
grep -rn "error.message\|err.toString\|String(error)" src/ # → These may expose internal messages to users
---
□ No fixed widths that break on mobile (< 640px) □ Touch targets ≥ 44×44px (min-h-[44px] min-w-[44px]) □ Font size ≥ 16px on mobile (prevents iOS auto-zoom) □ No horizontal scroll on mobile □ Navigation accessible on mobile (hamburger menu or equivalent)
---
□ Large lists (> 100 items) use virtualization □ Images use proper optimization (next/image or loading="lazy") □ Animations respect prefers-reduced-motion □ No layout shift during loading (use skeleton with matching dimensions)
---
## Phase 3.5 UX Verification Accessibility: PASS Loading States: PASS Error States: PASS Responsive: PASS Performance UX: PASS VERDICT: PASS
## Phase 3.5 UX Verification
Accessibility: FAIL (2 issues)
Loading States: PASS
Error States: WARN (1 issue)
Responsive: PASS
Performance UX: PASS
VERDICT: FAIL (2 blocking issues)
## Issues
### FAIL-01 [Accessibility — Image alt]
File: src/components/ProductCard.tsx:23
Current: <img src={product.image} />
Fix: <img src={product.image} alt={product.name} />
### FAIL-02 [Accessibility — Form label]
File: src/components/SearchForm.tsx:45
Current: <input type="text" onChange={setQuery} />
Fix:
<label htmlFor="search">Search products</label>
<input id="search" type="text" onChange={setQuery} aria-label="Search products" />
### WARN-01 [Error State — Raw message exposed]
File: src/components/LoginForm.tsx:89
Current: <Alert>{error.message}</Alert>
Fix: <Alert>Login failed. Please check your credentials and try again.</Alert>
Note: Raw error.message may expose server internals on unexpected errorsOne command. Full stack. Zero compromise. — All-in-one Claude Code skill with 33 modes, 6-layer security, 23 hooks, and 75% token savings. Works on Codex, Cursor, Manus, Windsurf.
Repo: smorky850612/Aurakit
@AX 어노테이션 전문가. Phase 2.5에서 자동 실행. NOTE/WARN/ANCHOR/TODO 태그를 코드에 추가. [AUTO] 접두사 필수.
시스템 아키텍처 설계 전문가. DB 스키마, API 명세, 컴포넌트 구조 설계. Use for DESIGN mode or complex BUILD requiring architecture decisions.
체계적 디버깅 전문가. 5-WHY 근본 원인 분석 + 4단계 디버그 프로세스. Use for DEBUG mode or complex FIX requiring root cause investigation.
복잡한 단일 태스크 전문가. 긴 집중 작업, 대용량 파일 분석, 멀티스텝 리팩터링. Use when task requires sustained focus on one complex problem.
DevOps/인프라 전문가. Docker, CI/CD, Kubernetes, Terraform, 배포 설정. Use for DEPLOY mode or infrastructure-related BUILD tasks.
코드 구현 전문가. 플래너 매니페스트 + SPEC에 따라 실제 코드를 작성. Profile-matched implementation with Phase 1.5 test constraint.