Install any skill in seconds. Free to start, no credit card required.
Get Started Free →UX research and design toolkit covering persona generation, journey mapping, usability testing, and research synthesis. Use for user research, persona creation, journey mapping, or design validation.
.claude/skills/borghei-ux-researcher-designer/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 150% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 198% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 198% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 120% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 358% | 0% |
Generate user personas from research data, create journey maps, plan usability tests, and synthesize research findings into actionable design recommendations.
Use this skill when you need to:
Before generating the research artifact, confirm these inputs. If any is unknown or vague, ASK — do not assume:
Stop rule: ask only the 2-3 that most change the output. If the user says "just draft it," proceed and list your assumptions at the top of the artifact.
Situation: You have user data (analytics, surveys, interviews) and need to create a research-backed persona.
Steps:
Required format (JSON): json [ { "user_id": "user_1", "age": 32, "usage_frequency": "daily", "features_used": ["dashboard", "reports", "export"], "primary_device": "desktop", "usage_context": "work", "tech_proficiency": 7, "pain_points": ["slow loading", "confusing UI"] } ]
bash # Human-readable output python scripts/persona_generator.py
# JSON output for integration python scripts/persona_generator.py json
| Component | What to Check | |-----------|---------------| | Archetype | Does it match the data patterns? | | Demographics | Are they derived from actual data? | | Goals | Are they specific and actionable? | | Frustrations | Do they include frequency counts? | | Design implications | Can designers act on these? |
references/persona-methodology.md for validity criteriaWhen you lack research data but need a hypothesis-driven persona to align the team, use a proto-persona canvas. Proto-personas are assumption tools -- not validated truth -- meant to be tested and refined.
Use when: Starting a new initiative with no research budget, aligning a cross-functional team quickly, or creating a testable hypothesis about your user.
Proto-Persona Canvas Template:
markdown### [Alliterative Name] (e.g., "Careful Carlos") **Bio & Demographics:** - Age, geography, social status, career stage - Online presence, leisure activities, partner status **Quotes** (what they say, feel, think): - "[Direct quote capturing their perspective]" - "[Quote revealing frustration or aspiration]" **Pains:** - [Pain related to the problem space] - [Pain related to current workarounds] **What They're Trying to Accomplish:** - [Observable behavior 1] - [Observable behavior 2] **Goals** (wants, needs, dreams): - [Short-term goal] - [Long-term aspiration] **Attitudes & Influences:** - Decision Making Authority: [Can they buy/adopt your solution?] - Decision Influencers: [Who influences their decisions?] - Beliefs & Attitudes: [What beliefs impact their choices?] **Assumptions to Validate:** - [Top assumption that must be true for this persona to be viable] - [Second assumption] - [Third assumption]
Next steps after proto-persona:
Situation: You need to visualize the end-to-end user experience for a specific goal.
Steps:
| Element | Description | |---------|-------------| | Persona | Which user type | | Goal | What they're trying to achieve | | Start | Trigger that begins journey | | End | Success criteria | | Timeframe | Hours/days/weeks |
Sources:
Typical B2B SaaS stages: Awareness → Evaluation → Onboarding → Adoption → Advocacy
Stage: [Name] ├── Actions: What does user do? ├── Touchpoints: Where do they interact? ├── Emotions: How do they feel? (1-5) ├── Pain Points: What frustrates them? └── Opportunities: Where can we improve?
| Stage | Happy Path | Fail Path | Difficult Path | |---|---|---|---| | Awareness | Finds product via search | Never discovers product | Finds competitor first | | Consideration | Clear value proposition | Confused by pricing | Needs manager approval | | Decision | Easy signup flow | Form errors, abandons | Legal review delays | | Delivery & Use | Smooth onboarding | Can't import data | Workaround needed | | Loyalty | Becomes advocate | Churns silently | Stays but complains |
| Stage | Leading KPI | Lagging KPI | Team Owner | |---|---|---|---| | Awareness | Site visits, ad impressions | Brand recall | Marketing | | Consideration | Demo requests, pricing page views | MQL conversion | Marketing/Sales | | Decision | Trial starts, contract sent | Close rate | Sales | | Use | Feature adoption, DAU | Retention rate | Product | | Loyalty | NPS, referral count | LTV, expansion revenue | Customer Success |
For each friction point, document:
| Friction Point | Why It Matters | Intervention | Expected Impact | Effort | Confidence | |---|---|---|---|---|---| | Description] | User/business impact] | Proposed fix] | High/Med/Low | S/M/L | High/Med/Low |
Priority Score = Frequency x Severity x Solvability
references/journey-mapping-guide.md for templatesSituation: You need to validate a design with real users.
Steps:
Transform vague goals into testable questions:
| Vague | Testable | |-------|----------| | "Is it easy to use?" | "Can users complete checkout in <3 min?" | | "Do users like it?" | "Will users choose Design A or B?" | | "Does it make sense?" | "Can users find settings without hints?" |
| Method | Participants | Duration | Best For | |--------|--------------|----------|----------| | Moderated remote | 5-8 | 45-60 min | Deep insights | | Unmoderated remote | 10-20 | 15-20 min | Quick validation | | Guerrilla | 3-5 | 5-10 min | Rapid feedback |
Good task format: SCENARIO: "Imagine you're planning a trip to Paris..." GOAL: "Book a hotel for 3 nights in your budget." SUCCESS: "You see the confirmation page."
Task progression: Warm-up → Core → Secondary → Edge case → Free exploration
| Metric | Target | |--------|--------| | Completion rate | >80% | | Time on task | <2× expected | | Error rate | <15% | | Satisfaction | >4/5 |
references/usability-testing-frameworks.md for full guideSituation: You have raw research data (interviews, surveys, observations) and need actionable insights.
Steps:
Tag each data point:
[GOAL] - What they want to achieve[PAIN] - What frustrates them[BEHAVIOR] - What they actually do[CONTEXT] - When/where they use product[QUOTE] - Direct user words User A: Uses daily, advanced features, shortcuts User B: Uses daily, complex workflows, automation User C: Uses weekly, basic needs, occasional
Cluster 1: A, B (Power Users) Cluster 2: C (Casual User)
| Cluster | Users | % | Viability | |---------|-------|---|-----------| | Power Users | 18 | 36% | Primary persona | | Business Users | 15 | 30% | Primary persona | | Casual Users | 12 | 24% | Secondary persona |
For each theme:
| Factor | Score 1-5 | |--------|-----------| | Frequency | How often does this occur? | | Severity | How much does it hurt? | | Breadth | How many users affected? | | Solvability | Can we fix this? |
references/persona-methodology.md for analysis frameworkGenerates data-driven personas from user research data.
| Argument | Values | Default | Description | |----------|--------|---------|-------------| | format | (none), json | (none) | Output format |
Sample Output:
============================================================
PERSONA: Alex the Power User
============================================================
📝 A daily user who primarily uses the product for work purposes
Archetype: Power User
Quote: "I need tools that can keep up with my workflow"
👤 Demographics:
• Age Range: 25-34
• Location Type: Urban
• Tech Proficiency: Advanced
🎯 Goals & Needs:
• Complete tasks efficiently
• Automate workflows
• Access advanced features
😤 Frustrations:
• Slow loading times (14/20 users)
• No keyboard shortcuts
• Limited API access
💡 Design Implications:
→ Optimize for speed and efficiency
→ Provide keyboard shortcuts and power features
→ Expose API and automation capabilities
📈 Data: Based on 45 users
Confidence: HighArchetypes Generated:
| Archetype | Signals | Design Focus | |-----------|---------|--------------| | power_user | Daily use, 10+ features | Efficiency, customization | | casual_user | Weekly use, 3-5 features | Simplicity, guidance | | business_user | Work context, team use | Collaboration, reporting | | mobile_first | Mobile primary | Touch, offline, speed |
Output Components:
| Component | Description | |-----------|-------------| | demographics | Age range, location, occupation, tech level | | psychographics | Motivations, values, attitudes, lifestyle | | behaviors | Usage patterns, feature preferences | | needs_and_goals | Primary, secondary, functional, emotional | | frustrations | Pain points with evidence | | scenarios | Contextual usage stories | | design_implications | Actionable recommendations | | data_points | Sample size, confidence level |
| Question Type | Best Method | Sample Size | |---------------|-------------|-------------| | "What do users do?" | Analytics, observation | 100+ events | | "Why do they do it?" | Interviews | 8-15 users | | "How well can they do it?" | Usability test | 5-8 users | | "What do they prefer?" | Survey, A/B test | 50+ users | | "What do they feel?" | Diary study, interviews | 10-15 users |
| Sample Size | Confidence | Use Case | |-------------|------------|----------| | 5-10 users | Low | Exploratory | | 11-30 users | Medium | Directional | | 31+ users | High | Production |
| Severity | Definition | Action | |----------|------------|--------| | 4 - Critical | Prevents task completion | Fix immediately | | 3 - Major | Significant difficulty | Fix before release | | 2 - Minor | Causes hesitation | Fix when possible | | 1 - Cosmetic | Noticed but not problematic | Low priority |
| Type | Example | Use For | |------|---------|---------| | Context | "Walk me through your typical day" | Understanding environment | | Behavior | "Show me how you do X" | Observing actual actions | | Goals | "What are you trying to achieve?" | Uncovering motivations | | Pain | "What's the hardest part?" | Identifying frustrations | | Reflection | "What would you change?" | Generating ideas |
Detailed reference guides in references/:
| File | Content | |------|---------| | persona-methodology.md | Validity criteria, data collection, analysis framework | | journey-mapping-guide.md | Mapping process, templates, opportunity identification | | example-personas.md | 3 complete persona examples with data | | usability-testing-frameworks.md | Test planning, task design, analysis |
Generates data-driven personas from user research data, classifying users into archetypes with demographics, psychographics, behaviors, goals, frustrations, and design implications.
| Argument | Type | Default | Description | |----------|------|---------|-------------| | format | positional | (none) | Add json for JSON output; omit for human-readable |
Archetypes supported: power_user, casual_user, business_user, mobile_first
Output components: name, archetype, tagline, quote, demographics, psychographics, behaviors, needs_and_goals, frustrations, scenarios, data_points, design_implications
bashpython scripts/persona_generator.py # Human-readable formatted output python scripts/persona_generator.py json # JSON for programmatic use
Data input format (customize in script):
json[{ "user_id": "user_1", "age": 32, "usage_frequency": "daily", "features_used": ["dashboard", "reports", "export"], "primary_device": "desktop", "usage_context": "work", "tech_proficiency": 7, "pain_points": ["slow loading", "confusing UI"] }]
| Problem | Cause | Solution | |---------|-------|----------| | Persona confidence level is "Low" | Fewer than 20 users in sample data | Collect more data points; combine quantitative analytics with qualitative interviews | | All users classified as same archetype | Insufficient variation in input data | Ensure data includes diverse usage frequencies, devices, and contexts | | Frustrations are generic (fallback defaults) | Not enough pain_points in user data | Enrich user data with pain_points from interviews and support tickets | | Design implications too vague | Patterns don't strongly differentiate | Add more behavioral signals (features_used, session duration, task completion) | | Journey map has flat emotion curve | All stages scored similarly | Re-evaluate with actual user data; conduct contextual interviews per stage | | Usability test sample too small | Fewer than 5 participants | 5 participants find ~85% of usability issues; recruit to minimum 5 | | Research synthesis has no clear patterns | Data not coded consistently | Use consistent tagging scheme (GOAL, PAIN, BEHAVIOR, CONTEXT, QUOTE) |
| Criterion | Target | How to Measure | |-----------|--------|----------------| | Persona validity | Validated by 3+ real users ("sounds like me") | Post-creation validation interviews | | Persona coverage | All key segments represented | Count of personas vs identified user segments | | Data confidence level | "High" (31+ users) | persona_generator data_points.confidence_level | | Research cadence | 5-8 interviews per segment per quarter | Count of completed research sessions | | Insight-to-action rate | >70% of findings result in design changes | Track findings through to implementation | | Usability issue resolution | All critical/major issues fixed before release | Issue severity tracking | | Journey map freshness | Updated at least quarterly | Last-updated date on each journey map |
In scope:
Out of scope:
| Tool / Platform | Integration Method | Use Case | |-----------------|-------------------|----------| | Dovetail / Condens | Export research data, import persona JSON | Centralize research insights | | Figma / Miro | Paste persona output as design artifact | Reference personas during design work | | Notion / Confluence | Human-readable output | Document and share personas with team | | product-manager-toolkit | Persona pain points inform RICE scoring | Connect user needs to feature prioritization | | agile-product-owner | Persona data informs user story personas | Write stories grounded in research | | product-designer | Persona feeds into journey mapping and usability test recruitment | End-to-end design research workflow |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 40,742 | 19,957 | -51% | 1 | 1 | 0% | 6,208 | 8,223 | +32% | 0 | 0 | — |
case-02 | fail→fail | 21,492 | 19,821 | -8% | 1 | 1 | 0% | 3,284 | 8,081 | +146% | 0 | 0 | — |
case-03 | fail→pass | 19,651 | 19,908 | +1% | 1 | 1 | 0% | 3,193 | 7,987 | +150% | 0 | 0 | — |
case-04 | pass→pass | 11,297 | 8,305 | -26% | 1 | 1 | 0% | 1,664 | 6,247 | +275% | 0 | 0 | — |
case-05 | fail→pass | 12,768 | 5,790 | -55% | 1 | 1 | 0% | 1,987 | 5,929 | +198% | 0 | 0 | — |
case-06 | fail→pass | 14,533 | 11,462 | -21% | 1 | 1 | 0% | 2,197 | 6,537 | +198% | 0 | 0 | — |
case-07 | fail→pass | 19,374 | 13,032 | -33% | 1 | 1 | 0% | 3,206 | 7,064 | +120% | 0 | 0 | — |
case-08 | pass→pass | 14,388 | 17,906 | +24% | 1 | 1 | 0% | 2,132 | 7,824 | +267% | 0 | 0 | — |
case-09 | pass→pass | 6,871 | 8,608 | +25% | 1 | 1 | 0% | 1,075 | 6,345 | +490% | 0 | 0 | — |
case-10 | pass→pass | 12,392 | 9,484 | -23% | 1 | 1 | 0% | 1,815 | 6,434 | +254% | 0 | 0 | — |
case-11 | pass→pass | 7,441 | 6,789 | -9% | 1 | 1 | 0% | 1,080 | 5,495 | +409% | 0 | 0 | — |
case-12 | pass→pass | 12,284 | 14,490 | +18% | 1 | 1 | 0% | 1,780 | 7,064 | +297% | 0 | 0 | — |
case-13 | fail→pass | 7,985 | 2,622 | -67% | 1 | 1 | 0% | 1,166 | 5,345 | +358% | 0 | 0 | — |
case-14 | pass→pass | 5,461 | 4,960 | -9% | 1 | 1 | 0% | 970 | 5,747 | +492% | 0 | 0 | — |
case-19 | fail→fail | 6,699 | 9,388 | +40% | 1 | 1 | 0% | 967 | 6,525 | +575% | 0 | 0 | — |
case-15 | fail→pass | 10,291 | 3,773 | -63% | 1 | 1 | 0% | 1,600 | 5,584 | +249% | 0 | 0 | — |
case-16 | fail→pass | 9,644 | 5,957 | -38% | 1 | 1 | 0% | 1,488 | 5,851 | +293% | 0 | 0 | — |
case-17 | fail→pass | 14,635 | 9,082 | -38% | 1 | 1 | 0% | 2,234 | 6,301 | +182% | 0 | 0 | — |
case-18 | pass→fail | 11,936 | 7,246 | -39% | 1 | 1 | 0% | 1,798 | 5,951 | +231% | 0 | 0 | — |
case-20 | fail→fail | 10,291 | 12,482 | +21% | 1 | 1 | 0% | 1,797 | 6,888 | +283% | 0 | 0 | — |
case-21 | fail→fail | 24,040 | 19,122 | -20% | 1 | 1 | 0% | 4,831 | 8,629 | +79% | 0 | 0 | — |
case-22 | fail→pass | 15,490 | 14,956 | -3% | 1 | 1 | 0% | 2,561 | 7,179 | +180% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +36 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.