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.
tools
Building resilient distributed systems with circuit breakers, retries with full-jitter exponential backoff, retry budgets (per-request 3-attempt + per-client 10% ratio per Google SRE), deadline propagation, and the cascading-failure math (4 layers × 3 retries = 64x amplification). Grounded in Resilience4j, Microsoft Cloud Patterns, AWS Architecture Blog (Marc Brooker), and Google SRE Book.
testing
Designing HTTP cache headers that work correctly across browsers, CDNs, and shared proxies — `Cache-Control` directives per RFC 9111, `stale-while-revalidate` and `stale-if-error` per RFC 5861, the Vary header for varying responses, and surrogate keys for tag-based purging. Grounded in IETF RFCs and Cloudflare/Fastly docs.
development
Use when designing or fixing a Content Security Policy on a real site, choosing between nonce-based and hash-based CSP, adding strict-dynamic, debugging "Refused to execute inline script" errors, deploying CSP in report-only mode first, configuring report-to / report-uri, or auditing an existing policy for unsafe-inline / unsafe-eval / wildcards. Triggers: "CSP blocks legitimate inline script", strict-dynamic, nonce-{RANDOM}, sha256-{HASH}, object-src none, base-uri none, frame-ancestors, Trusted Types, X-Content-Security-Policy obsolete, report-only vs enforced. NOT for general HTTP security headers (HSTS, COOP/COEP), Trusted Types deep dive, CORS configuration, or building a WAF.
tools
Choosing and operating an HTTP API versioning strategy that doesn't break clients — Stripe's date-based pinned versions, the Deprecation/Sunset header pair (RFC 9745 + RFC 8594), URI vs header vs media-type approaches, and the version-transformer pattern. Grounded in Stripe's published architecture and IETF RFCs.