From user-testing-agent
Simulates diverse user personas interacting with web app UIs, including realistic timing, behaviors, and frustrations. For pre-release testing, UX validation, accessibility reviews, and form optimization.
How this skill is triggered — by the user, by Claude, or both
Slash command
/user-testing-agent:user-testingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill enables persona-based user testing that simulates how real users interact with web applications. It combines behavioral psychology, UX research methodologies, and browser automation to provide authentic testing experiences.
behaviors/timing.jsonpersonas/arabic-rtl-user.jsonpersonas/bad-connection-user.jsonpersonas/boomer-tech-averse.jsonpersonas/boomer-tech-friendly.jsonpersonas/brazilian-user.jsonpersonas/busy-executive.jsonpersonas/cognitive-adhd-user.jsonpersonas/comparison-shopper.jsonpersonas/designer-critic.jsonpersonas/developer-critic.jsonpersonas/distracted-parent.jsonpersonas/genalpha-tablet-kid.jsonpersonas/genz-digital-native.jsonpersonas/german-business-user.jsonpersonas/gift-buyer.jsonpersonas/impulse-buyer.jsonpersonas/index.jsonpersonas/japanese-user.jsonpersonas/keyboard-only-user.jsonThis skill enables persona-based user testing that simulates how real users interact with web applications. It combines behavioral psychology, UX research methodologies, and browser automation to provide authentic testing experiences.
| ID | Generation | Tech Comfort | Patience | Key Trait |
|---|---|---|---|---|
boomer-tech-averse | Boomer | 2/10 | 7/10 | Needs explicit guidance |
boomer-tech-friendly | Boomer | 6/10 | 8/10 | Prefers familiar patterns |
millennial-tech-skeptic | Millennial | 7/10 | 5/10 | Skeptical of manipulation |
genz-digital-native | Gen Z | 9/10 | 3/10 | Expects instant results |
genalpha-tablet-kid | Gen Alpha | 8/10 | 2/10 | Touch-first, visual |
Each persona has three gender variants with different names and subtle trait adjustments:
Personas are defined in JSON files with this schema:
{
"id": "persona-id",
"name": "Display Name",
"generation": "boomer|millennial|genz|genalpha",
"techComfort": 1-10,
"patience": 1-10,
"genderVariants": {
"male": { "name": "...", "pronouns": "he/him", "traits": [...] },
"female": { "name": "...", "pronouns": "she/her", "traits": [...] },
"neutral": { "name": "...", "pronouns": "they/them", "traits": [...] }
},
"traits": {
"readingSpeed": "slow|medium|fast",
"clickConfidence": "hesitant|normal|decisive",
"errorRecovery": "confused|methodical|adaptive",
"scrollBehavior": "careful|normal|impatient",
"formFilling": "cautious|normal|rushed"
},
"timing": {
"baseReadingWPM": 100-400,
"clickDelay": 300-3000,
"hoverBeforeClick": 200-1500,
"confusionPause": 5000-30000,
"successPause": 300-2000,
"pageLoadTolerance": 2000-10000
},
"narrationStyle": {
"vocabulary": "simple|moderate|technical|casual",
"frustrationThreshold": 1-10,
"verbosity": "quiet|normal|chatty",
"expressions": ["...", "..."]
},
"frustrationTriggers": ["...", "..."],
"positiveReactions": ["...", "..."],
"typicalBehaviors": ["...", "..."]
}
base_time = (word_count / persona.timing.baseReadingWPM) * 60 * 1000 // ms
adjusted_time = base_time * complexity_modifier
final_time = adjusted_time * random(0.8, 1.2) // Add variance
Complexity Modifiers:
| Action | Tech-Averse | Tech-Friendly | Tech-Skeptic | Digital Native | Tablet Kid |
|---|---|---|---|---|---|
| Click | 2000-3000ms | 800-1200ms | 600-1000ms | 200-400ms | 300-600ms |
| Form field | 1500ms | 800ms | 600ms | 200ms | 400ms |
| Decision | 5000ms | 2000ms | 3000ms | 500ms | 1000ms |
| Confusion | 20000ms | 10000ms | 8000ms | 5000ms | 3000ms |
When a persona encounters confusing UI:
During testing, output continuous first-person narration:
[10:32:15] [Gen Z - Jayden] [NAVIGATE]
"Okay let's see what this is about..."
[10:32:18] [Gen Z - Jayden] [SCAN]
"Lot of text... skip... skip... where's the sign up button?"
[10:32:20] [Gen Z - Jayden] [CLICK]
"There it is. Let's go."
[10:32:25] [Gen Z - Jayden] [FRUSTRATION]
"Bruh, why do they need my phone number?? This is sus."
# User Testing Report
## Session Overview
- **Persona**: [Name] ([ID])
- **Gender Variant**: [Male/Female/Neutral]
- **URL Tested**: [URL]
- **Tasks Attempted**: [List]
- **Overall Success**: [X/Y tasks completed]
## Executive Summary
[1-2 paragraph overview]
## Task Analysis
### Task 1: [Description]
- **Status**: Completed / Partial / Failed
- **Time**: [Duration]
- **Confusion Points**:
- [Timestamp]: [What caused confusion]
- **Screenshots**: [Links]
## Usability Issues
### Critical (Task Blockers)
1. **[Issue]**
- Personas affected: [List]
- Evidence: [Screenshot/description]
- Recommendation: [Fix]
### Major (High Frustration)
...
### Minor (Suboptimal)
...
## Persona-Specific Insights
[Observations unique to this persona's worldview]
## Prioritized Recommendations
| Priority | Issue | Recommendation | Affected Personas |
|----------|-------|----------------|-------------------|
| P0 | ... | ... | All |
| P1 | ... | ... | Tech-averse |
/user-test --url https://example.com --persona genz-digital-native
/user-test --url https://shop.example.com --persona boomer-tech-averse --tasks "find product, add to cart, checkout"
/user-test --url https://app.example.com --persona millennial-tech-skeptic --gender f
/user-test --url https://example.com --persona genalpha-tablet-kid --verbose
This skill requires claude --chrome for browser automation:
# Start Claude with Chrome integration
claude --chrome
# Then run user tests
/user-test --url https://your-app.com --persona genz-digital-native
The skill uses Playwright MCP tools:
browser_navigate - Page navigationbrowser_snapshot - Accessibility tree analysisbrowser_click - Element interactionbrowser_type - Text inputbrowser_take_screenshot - Evidence capturenpx claudepluginhub ncklrs/claude-chrome-user-testing --plugin user-testing-agentAudits web app UX by dogfooding as user persona: tracks emotional friction, click efficiency, resilience to back/refresh, return intent. Uses Playwright/Chrome MCP for live sites, outputs ranked reports.
Simulates user testing by provisioning environments, exercising CLI tools, APIs, web apps, and desktop GUIs via persona-driven interactions, and producing structured feedback on bugs and friction.
Plans and runs usability tests on designs or prototypes, covering test design, task scripts, moderation, observation, and findings synthesis. Use for design validation, finding usability issues, or improving task completion before shipping.