Back to skills
SKILL.md
Ui Ux Researcher
ASecurityUse when Expert auditor for accessibility, cognitive load, and premium design heuristics.
- 5 stars
- 0 votes
- 0 copies
- 0 views
- Added September 27, 2026
Security analysis
100/100npx -y skills add Harmitx7/tribunal-kit --skill ui-ux-researcher --agent claude-codeAre you the author of Ui Ux Researcher?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/harmitx7-ui-ux-researcher-tribunal-kit)---
name: ui-ux-researcher
description: "Use when Expert auditor for accessibility, cognitive load, and premium design heuristics."
version: 5.0.0
last-updated: 2026-09-13
skills:
- web-design-guidelines
- frontend-design
- trend-researcher
tools: Read, Grep, Glob, Bash, Edit, Write
scripts-binding:
- .agent/scripts/lint_runner.js
- .agent/scripts/verify_all.js
---
# UI/UX Researcher Skill
---
## π οΈ Technical Architecture & Reference Recipes
---
## When to Activate
- When asked to "review my UI", "check accessibility", "audit design", or "review UX".
- After any `/create` or `/enhance` that generates UI code.
- When paired with `trend-researcher` for a full "Design Intelligence" pass.
- During the VERIFICATION phase of any frontend build.
## Audit Framework
### Tier System
Every UI element is evaluated across 3 tiers. Each tier has hard requirements that must pass before moving to the next:
```
βββββββββββββββββββββββββββββββββββββββ
β P0: SAFETY & ACCESS β β Must pass. Blocks ship.
β Accessibility, error handling, β
β keyboard nav, screen readers β
βββββββββββββββββββββββββββββββββββββββ€
β P1: CLARITY & FLOW β β Should pass. Flags issues.
β Information hierarchy, feedback, β
β task completion, error recovery β
βββββββββββββββββββββββββββββββββββββββ€
β P2: POLISH & PREMIUM β β Nice to have. Elevates quality.
β Micro-interactions, whitespace, β
β consistency, delight moments β
βββββββββββββββββββββββββββββββββββββββ
```
### P0: Safety & Accessibility (BLOCKS SHIP)
| # | Check | Standard | How to Verify |
| ---- | ----------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------- |
| 0.1 | Color contrast (normal text) | β₯ 4.5:1 (WCAG AA) | Calculate `(L1 + 0.05) / (L2 + 0.05)` |
| 0.2 | Color contrast (large text β₯18px bold or β₯24px) | β₯ 3:1 | Same formula |
| 0.3 | Touch targets | β₯ 44Γ44px (WCAG 2.5.8) | Check CSS `min-width`/`min-height` or padding |
| 0.4 | Keyboard navigation | All interactive elements focusable, visible focus ring | Check for `tabindex`, `:focus-visible` styles |
| 0.5 | Screen reader labels | All images have `alt`, all inputs have `label`/`aria-label` | Grep for `<img` without `alt`, `<input` without label |
| 0.6 | Semantic HTML | Single `<h1>`, proper heading hierarchy, landmark regions | Parse DOM structure |
| 0.7 | Error prevention | Destructive actions require confirmation | Check delete/submit flows |
| 0.8 | Escape hatches | Every modal/overlay has close, every flow has "Back" | Check for close buttons, back navigation |
| 0.9 | Reduced motion | `prefers-reduced-motion` media query present | Grep for the media query |
| 0.10 | Color-only indicators | Information is not conveyed by color alone | Check error states, status badges |
### P1: Clarity & Flow (SHOULD FIX)
| # | Check | Heuristic | What to Look For |
| --- | ---------------------- | -------------------------------------- | -------------------------------------------------- |
| 1.1 | Single primary action | One dominant CTA per view | Multiple same-weight buttons competing |
| 1.2 | Visual feedback | Every interaction has visible response | Missing hover/active/disabled states |
| 1.3 | Loading states | Async operations show progress | Missing spinners, skeletons, or progress bars |
| 1.4 | Empty states | Zero-data views have guidance | Blank screens with no "Get Started" |
| 1.5 | Error messaging | Errors are specific and actionable | Generic "Something went wrong" without context |
| 1.6 | Information scent | Users can predict what happens next | Ambiguous labels like "Submit" vs "Create Account" |
| 1.7 | Consistency | Similar elements behave similarly | Mixed button styles, inconsistent spacing |
| 1.8 | Progressive disclosure | Complex forms use steps or sections | 20+ fields on one page |
| 1.9 | Alignment & grid | Elements follow a consistent grid | Misaligned elements, inconsistent gutters |
### P2: Polish & Premium (ELEVATES QUALITY)
| # | Check | Quality Signal | Implementation |
| --- | --------------------- | ----------------------------------------------------------- | ------------------------------------------------ |
| 2.1 | Whitespace balance | Content has room to breathe | Audit `padding`/`margin` β minimum 16px sections |
| 2.2 | Corner radius harmony | Outer radius > inner radius, consistent across components | Check `border-radius` values |
| 2.3 | Shadow depth system | Consistent shadow levels (sm β md β lg β xl) | Verify `box-shadow` consistency |
| 2.4 | Typography rhythm | Consistent line-height, letter-spacing across hierarchy | Check for modular type scale |
| 2.5 | Micro-interactions | Entrances, hovers, and feedback feel intentional | Cross-reference with `whimsy-injector` |
| 2.6 | Icon consistency | Same style family (outline vs filled, same weight) | Mixed icon sets = visual noise |
| 2.7 | Color temperature | Warm palette stays warm, cool stays cool | Check for temperature clashes |
| 2.8 | Content density | Not too sparse (wasted space), not too dense (overwhelming) | Subjective β use Goldilocks principle |
## Scoring Protocol
### UX Score (1-10)
```
Score = (P0_pass_rate Γ 0.5) + (P1_pass_rate Γ 0.3) + (P2_pass_rate Γ 0.2)
8-10: Ship-ready. Minor polish opportunities.
6-7: Good foundation. Fix P0 violations, address key P1 issues.
4-5: Needs work. Multiple accessibility or flow problems.
1-3: Significant rework needed. Fundamental usability barriers.
```
### Severity Labels
| Label | Meaning | Action |
| ------------- | -------------------------------------------- | -------------------- |
| π΄ BLOCKER | P0 violation, breaks accessibility or safety | Must fix before ship |
| π‘ WARNING | P1 issue, impacts clarity or flow | Should fix |
| π΅ SUGGESTION | P2 opportunity, improves polish | Nice to fix |
## Report Format
```
βββ UX Audit Report βββββββββββββββββββββ
Target: [component/page name]
Score: [X] / 10
Grade: [A/B/C/D/F]
βββ P0: Safety & Access βββββββββββββββββ
π΄ 0.1 FAIL β Contrast ratio 2.8:1 on `.card-subtitle` (needs 4.5:1)
File: components/Card.tsx:24
Fix: Change color from hsl(0,0%,70%) to hsl(0,0%,40%)
π΄ 0.4 FAIL β No focus ring on `.nav-link`
File: components/Nav.tsx:12
Fix: Add `:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px }`
β
0.2, 0.3, 0.5, 0.6, 0.7, 0.8, 0.9, 0.10 β PASS
βββ P1: Clarity & Flow ββββββββββββββββββ
π‘ 1.3 β No loading state on data fetch
File: pages/Dashboard.tsx:45
Fix: Add skeleton placeholder while `isLoading` is true
π‘ 1.4 β Empty state shows blank div
File: pages/Users.tsx:28
Fix: Add "No users yet. Invite your team β" with CTA
β
1.1, 1.2, 1.5, 1.6, 1.7, 1.8, 1.9 β PASS
βββ P2: Polish & Premium ββββββββββββββββ
π΅ 2.2 β Buttons use 8px radius, cards use 16px, but nested card buttons should use 12px
Fix: Apply harmonized radius: outer 16px β inner 12px
π΅ 2.5 β No entrance animations on page load
Fix: Partner with whimsy-injector for staggered fade-in
β
2.1, 2.3, 2.4, 2.6, 2.7, 2.8 β PASS
βββ Fix Priority ββββββββββββββββββββββββ
1. Fix contrast on .card-subtitle (P0, 2 min)
2. Add focus ring to .nav-link (P0, 1 min)
3. Add loading skeletons (P1, 15 min)
4. Add empty state messaging (P1, 10 min)
```
## Nielsen's 10 Heuristics Quick Reference
Used as the theoretical backbone for P1 checks:
| # | Heuristic | What to Check |
| --- | ----------------------------------- | ------------------------------------------ |
| H1 | Visibility of system status | Loading indicators, progress bars |
| H2 | Match between system and real world | Natural language labels, familiar icons |
| H3 | User control and freedom | Undo, Back, Cancel always available |
| H4 | Consistency and standards | Same patterns across the app |
| H5 | Error prevention | Confirmation dialogs, input validation |
| H6 | Recognition over recall | Labels over icons-only, visible navigation |
| H7 | Flexibility and efficiency | Keyboard shortcuts, bulk actions |
| H8 | Aesthetic and minimalist design | No extraneous information |
| H9 | Help users recognize errors | Specific error messages with recovery |
| H10 | Help and documentation | Tooltips, onboarding, contextual help |
## Cross-Skill Integration
| Paired Skill | Integration Point |
| ------------------------ | ------------------------------------------------------------ |
| `trend-researcher` | Validate that applied trends pass P0 contrast and P1 clarity |
| `whimsy-injector` | P2.5 β delegate micro-interaction implementation |
| `web-design-guidelines` | Reference for component-level design standards |
| `frontend-design` | Token-level validation (spacing, radius, shadows) |
| `accessibility-reviewer` | Deep-dive partner for complex ARIA patterns |
## Anti-Hallucination Guard
- **Never claim a design is "accessible"** without verifying specific contrast ratios and ARIA attributes.
- **Never fabricate UX scores** β always calculate from the checklist pass rate.
- **Only suggest ARIA attributes** that are verified in the current codebase context.
- **Ground all UX claims** in Nielsen's heuristics or WCAG 2.2 standards β cite the specific rule.
- **Do not invent file paths or line numbers** β only reference code that has been read.
Attribution
Comments
Loading commentsβ¦