skills/ux-friction-analyzer/SKILL.md
Comprehensive UX analysis using cognitive psychology, ADHD-friendly design, Gestalt principles, and flow state engineering. Specializes in friction audits, user journey simulation, cognitive load optimization, and Fitts' Law application. Activate on "analyze UX", "friction audit", "user journey", "ADHD-friendly", "optimize flow", "reduce cognitive load", "UX audit", "conversion optimization". NOT for visual design execution (use web-design-expert), A/B testing implementation (use frontend-developer), or accessibility compliance auditing (use accessibility-auditor).
npx skillsauth add curiositech/windags-skills ux-friction-analyzerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A comprehensive skill for analyzing and optimizing user experience through cognitive psychology, ADHD-friendly design, and flow state engineering.
Use this decision matrix when conflicting ADHD principles and cognitive load types collide:
| Situation | If High Intrinsic Load | If High Extraneous Load | If High Germane Load | |-----------|----------------------|------------------------|-------------------| | Progressive Disclosure vs Information Need | Hide advanced features; show essentials only | Remove ALL decorative elements; show task steps linearly | Group related info; use expandable sections | | Context Preservation vs Working Memory | Auto-save every keystroke; show current state banner | Clear all non-essential UI; focus on one input field | Save drafts; provide "where you left off" panels | | Chunked Progress vs Task Flow | Break into micro-tasks (1-2 min each) | Show progress bar; hide future steps completely | Use card-based UI; each card = one concept | | Predictable Navigation vs Personalization | Keep identical layout always; disable customization | Use breadcrumbs; limit to 3-level hierarchy max | Offer simple/advanced modes; user chooses complexity |
User arrives → What's their cognitive state?
├─ FOCUSED & ENERGETIC
│ ├─ Goal: Complete complex task
│ │ → Use power-user shortcuts + batch operations
│ └─ Goal: Explore/learn
│ → Show advanced features + guided tour
│
├─ DISTRACTED/MULTITASKING
│ ├─ On mobile
│ │ → Single-column layout + floating action button
│ └─ On desktop
│ → Minimize chrome + auto-save everything
│
├─ OVERWHELMED/ANXIOUS
│ ├─ First-time user
│ │ → Wizard flow + success celebrations
│ └─ Returning user hitting error
│ → Clear error recovery + undo options
│
└─ TIME-PRESSURED/URGENT
├─ Regular task
│ → Smart defaults + keyboard shortcuts
└─ Crisis situation
→ Emergency mode UI + direct contact options
When feature requests conflict with friction reduction:
Detection Rule: If user abandons before completing first meaningful action
Detection Rule: If user takes >23 minutes to complete familiar 5-minute task
Detection Rule: If users repeatedly ask "Is this working?" during long operations
Detection Rule: If completion rates drop >15% despite no major UX changes
Detection Rule: If power users complain about "dumbed down" interface
Scenario: User with ADHD purchasing laptop accessories, gets distracted mid-checkout
Current Flow Analysis:
0:00 User adds items to cart (3 items)
└─ Cart shows: Item list, recommendations, promo codes, shipping calculator
0:30 Clicks "Checkout" → Redirected to shipping form
└─ Form has 12 fields, required fields marked with *
1:45 Phone notification interrupts
└─ User checks notification, returns to checkout
2:30 User confused - form partially filled but unclear what's complete
└─ Starts over, re-enters shipping address
4:00 Gets to payment step → Credit card form asks for billing address
└─ User forgot if billing = shipping, sees no indication
6:15 Completes payment → "Processing..." with spinning wheel
└─ No time estimate, user worries something broke
7:30 Success page → Generic "Order complete" message
└─ User unsure what happens next, when items ship
Decision Points Hit:
Optimized Flow:
0:00 User adds items to cart
└─ Cart shows: Item list only, single "Secure Checkout" button (44px tall)
0:15 Checkout → Single step: "Where should we ship this?"
└─ Address form only, with "Use my saved address" option
└─ Auto-save on every keystroke
1:30 Phone interrupts → User leaves page
2:00 User returns → Banner: "Continue your checkout - we saved your progress"
└─ Address pre-filled, "Next: Payment" button ready
2:15 Payment step → "Same billing address?" with Yes (default) / No toggle
└─ Credit card form with visual validation (green checkmarks)
3:00 Submit → "Processing payment..." with progress bar
└─ "This usually takes 10-15 seconds"
3:15 Success → "Order #12345 confirmed! Ships Tuesday, arrives Friday"
└─ "Track your order" button + calendar reminder option
Key Changes:
Scenario: SaaS analytics dashboard used by marketing teams
Journey Simulation:
User Intent: Create weekly report for executive team
Cognitive State: Time-pressured (due in 30 minutes)
Experience Level: Intermediate (uses tool monthly)
FRICTION AUDIT:
0:00 Lands on dashboard → 47 different widgets/charts visible
FRICTION: Overwhelm Cascade - too many data points
COGNITIVE LOAD: High extraneous
0:45 Looking for "Create Report" function → Finds it in hamburger menu
FRICTION: Hidden primary action
TIME LOSS: 45 seconds of hunting
1:30 Report builder opens → 23 chart type options in dropdown
FRICTION: Too many choices for time-pressured user
DECISION NEEDED: Past reports were always bar charts + line graphs
3:00 Selects data sources → Interface shows all 47 available sources
FRICTION: No smart filtering based on user's team/role
TIME LOSS: 90 seconds scrolling through irrelevant options
5:30 Starts building first chart → No template from last week's report
FRICTION: No learning from user patterns
CONTEXT SWITCH RISK: User might leave to find last week's report
8:00 Chart renders slowly (12 seconds) → No progress indication
FRICTION: Invisible Progress Paralysis
USER ANXIETY: "Is it broken? Should I refresh?"
15:00 Report preview → Executive template not applied automatically
FRICTION: Micro-friction accumulation
EXPERT USER ISSUE: No keyboard shortcuts for power users
Optimization Decisions:
Before considering a UX friction audit complete, verify:
Quantitative Metrics:
User Experience Validation:
Design System Compliance:
Do NOT use this skill for:
Visual design execution → Use [web-design-expert] instead
A/B testing setup or statistical analysis → Use [frontend-developer] + [data-analyst] instead
Accessibility compliance auditing → Use [accessibility-auditor] instead
Technical performance optimization → Use [frontend-developer] instead
User research methodology → Use [user-researcher] instead
Boundary Decision Rule: If the task requires specialized domain expertise beyond UX psychology and cognitive principles, delegate to the appropriate specialist skill.
data-ai
license: Apache-2.0 NOT for unrelated tasks outside this domain.
development
Use when designing caching strategies (cache-aside, write-through, write-behind), implementing distributed locks, building rate limiters, leaderboards, real-time streams (XADD/consumer groups), pub/sub, or tuning eviction policies. Triggers: thundering-herd on cache miss, dogpile on key expiry, Redlock vs SET-NX-PX choice, sliding-window rate limiter, hot-key on a single cluster slot, big-key blowup, MULTI/EXEC across slots, KEYS in production. NOT for Redis Cluster operations/admin (different domain), embedded KV (SQLite, leveldb), in-process LRU caches, or Memcached.
tools
Drawing the `'use client'` boundary correctly in React Server Components apps (Next.js App Router, RSC frameworks) — leaf-pushing, slot composition, serialization rules, and environment poisoning prevention. Grounded in react.dev and Next.js 16 docs.
development
Use when designing rate limiting for an API, choosing between token bucket / sliding window / leaky bucket / fixed window, implementing it in Redis, deciding edge (Cloudflare/Upstash) vs origin enforcement, sizing per-user vs per-IP vs per-endpoint quotas, returning the right 429 response with Retry-After, or fixing the boundary-burst bug in fixed-window limiters. Triggers: 429 too many requests, INCR + EXPIRE, ZADD + ZREMRANGEBYSCORE + ZCARD, X-RateLimit-Remaining header, Cloudflare WAF rate limiting rules, Upstash @upstash/ratelimit, leaky bucket shaping vs policing, distributed rate limiter consistency. NOT for DDoS mitigation specifically (different scale), CAPTCHA / bot management, full WAF design, or per-user quota billing.