UX Skills (20)
Part of Role Skills Catalog | Phase 4 + Phase 6
Chains: Research → Synthesize → Persona | Journey → Edge Cases → Flow | IA: Sitemap → Taxonomy | Wireframe → Review → UI → Handoff | Copy → Errors | A11y → ARIA | Onboarding → Tooltips
Userflow Schema
flowchart TD
jaan-to-ux-research-plan["ux-research-plan<br>Research Plan<br>Questions + method + participants"] --> ux-research-synthesize["ux-research-synthesize<br>Research Synthesize<br>Themes + recommendations"]
ux-research-synthesize["ux-research-synthesize<br>Research Synthesize<br>Themes + recommendations"] --> jaan-to-ux-persona-create["ux-persona-create<br>Persona Create<br>Goals + pains + JTBD"]
jaan-to-ux-persona-create["ux-persona-create<br>Persona Create<br>Goals + pains + JTBD"] -.-> jaan-to-pm-jtbd-map["pm-jtbd-map<br>PM: jtbd-map"]
jaan-to-ux-persona-create["ux-persona-create<br>Persona Create<br>Goals + pains + JTBD"] -.-> jaan-to-pm-persona-card["pm-persona-card<br>PM: persona-card"]
jaan-to-ux-competitive-review["ux-competitive-review<br>Competitive Review<br>Flows + patterns + opportunities"] -.-> jaan-to-pm-positioning-brief["pm-positioning-brief<br>PM: positioning-brief"]
jaan-to-ux-journey-map["ux-journey-map<br>Journey Map<br>Steps + pain points + metrics"] --> jaan-to-ux-journey-edge-cases["ux-journey-edge-cases<br>Journey Edge Cases<br>Edge cases + recovery paths"]
jaan-to-ux-journey-edge-cases["ux-journey-edge-cases<br>Journey Edge Cases<br>Edge cases + recovery paths"] --> jaan-to-ux-flow-spec["ux-flow-spec<br>Flow Spec<br>Happy path + all states"]
jaan-to-ux-flow-spec["ux-flow-spec<br>Flow Spec<br>Happy path + all states"] --> ux-microcopy-write["ux-microcopy-write<br>Microcopy Write<br>Labels + errors + toasts + tone"]
jaan-to-ux-flow-spec["ux-flow-spec<br>Flow Spec<br>Happy path + all states"] -.-> jaan-to-dev-fe-state-machine["dev-fe-state-machine<br>DEV: fe-state-machine"]
jaan-to-ux-heuristic-review["ux-heuristic-review<br>Heuristic Review<br>Issues + severity + quick wins"] --> jaan-to-ux-flow-spec["ux-flow-spec<br>Flow Spec<br>Happy path + all states"]
jaan-to-ux-sitemap["ux-sitemap<br>Sitemap<br>Pages + entry points + IA risks"] --> jaan-to-ux-taxonomy["ux-taxonomy<br>Taxonomy<br>Naming rules + attributes"]
jaan-to-ux-taxonomy["ux-taxonomy<br>Taxonomy<br>Naming rules + attributes"] --> jaan-to-ux-wireframe-screens["ux-wireframe-screens<br>Wireframe Screens<br>Screen list + states + interactions"]
jaan-to-ux-wireframe-screens["ux-wireframe-screens<br>Wireframe Screens<br>Screen list + states + interactions"] --> jaan-to-ux-wireframe-review["ux-wireframe-review<br>Wireframe Review<br>Usability checklist + issues"]
jaan-to-ux-wireframe-review["ux-wireframe-review<br>Wireframe Review<br>Usability checklist + issues"] --> jaan-to-ux-ui-spec-states["ux-ui-spec-states<br>UI Spec States<br>State list + triggers + copy"]
jaan-to-ux-ui-spec-states["ux-ui-spec-states<br>UI Spec States<br>State list + triggers + copy"] --> jaan-to-ux-ui-handoff-notes["ux-ui-handoff-notes<br>UI Handoff Notes<br>Components + tokens + animation"]
jaan-to-ux-ui-handoff-notes["ux-ui-handoff-notes<br>UI Handoff Notes<br>Components + tokens + animation"] -.-> dev-fe-task-breakdown["dev-fe-task-breakdown<br>DEV: fe-task-breakdown"]
ux-microcopy-write["ux-microcopy-write<br>Microcopy Write<br>Labels + errors + toasts + tone"] --> jaan-to-ux-error-messages["ux-error-messages<br>Error Messages<br>User-friendly errors + recovery"]
jaan-to-ux-a11y-audit["ux-a11y-audit<br>A11y Audit<br>Issues + fix checklist"] --> jaan-to-ux-a11y-aria-notes["ux-a11y-aria-notes<br>A11y ARIA Notes<br>Roles/labels + focus management"]
jaan-to-ux-a11y-aria-notes["ux-a11y-aria-notes<br>A11y ARIA Notes<br>Roles/labels + focus management"] -.-> dev-fe-task-breakdown["dev-fe-task-breakdown<br>DEV: fe-task-breakdown"]
jaan-to-ux-onboarding-steps["ux-onboarding-steps<br>Onboarding Steps<br>Steps + activation + drop-offs"] --> jaan-to-ux-onboarding-tooltips["ux-onboarding-tooltips<br>Onboarding Tooltips<br>Tooltip copy + skip/done patterns"]
jaan-to-ux-onboarding-tooltips["ux-onboarding-tooltips<br>Onboarding Tooltips<br>Tooltip copy + skip/done patterns"] -.-> jaan-to-data-event-spec["data-event-spec<br>DATA: event-spec"]
style jaan-to-pm-jtbd-map fill:#f0f0f0,stroke:#999
style jaan-to-pm-persona-card fill:#f0f0f0,stroke:#999
style jaan-to-pm-positioning-brief fill:#f0f0f0,stroke:#999
style jaan-to-dev-fe-state-machine fill:#f0f0f0,stroke:#999
style dev-fe-task-breakdown fill:#f0f0f0,stroke:#999
style jaan-to-data-event-spec fill:#f0f0f0,stroke:#999
Legend: Solid = internal | Dashed = cross-role exit | Gray nodes = other roles
/jaan-to:ux-research-plan
- Logical:
ux-research-plan - Description: Research plan: questions, method, participants, script outline, timeline, deliverables
- Quick Win: No - planning artifact
- Key Points:
- Include entry points and handoffs (email/push/search/support)
- Identify moments of doubt and decision points
- Capture emotions + frictions
- → Next:
ux-research-synthesize - MCP Required: Clarity (pain signals), Figma (flow context)
- Input: [initiative]
- Output:
$JAAN_OUTPUTS_DIR/ux/research/{slug}/research-plan.md
✅ /jaan-to:ux-research-synthesize
- Logical:
ux-research-synthesize - Description: Synthesize research findings into themes, executive summary, and recommendations
- Reference: [Building a Production-Ready UX Research Synthesis Skill: Comprehensive Research Foundation/jaan-to/outputs/research/47-ux-research-synthesize.md)
- Quick Win: Yes - pattern recognition, summarization
- AI Score: 5 | Rank: #8
- Key Points:
- Include entry points and handoffs (email/push/search/support)
- Identify moments of doubt and decision points
- Capture emotions + frictions
- → Next:
ux-persona-create - MCP Required: None (raw data input)
- Input: [study_name] [data_sources]
- Output:
$JAAN_OUTPUTS_DIR/ux/research/{slug}/synthesis.md - Failure Modes: Too long reports; no actionable recommendations
- Quality Gates: Stakeholder feedback positive; action items tracked
/jaan-to:ux-persona-create
- Logical:
ux-persona-create - Description: User personas with goals, pain points, behaviors, and Jobs-to-be-Done
- Quick Win: Yes - synthesize data, identify patterns
- AI Score: 5 | Rank: #16
- Key Points:
- Include entry points and handoffs (email/push/search/support)
- Identify moments of doubt and decision points
- Capture emotions + frictions
- → Next:
pm-jtbd-map,pm-persona-card - MCP Required: None (research data input), Clarity (optional)
- Input: [research_data] [segment]
- Output:
$JAAN_OUTPUTS_DIR/ux/personas/{slug}/persona.md - Failure Modes: Based on assumptions; not validated; too many personas
- Quality Gates: Validation interviews; periodic reviews; design decisions reference personas
/jaan-to:ux-competitive-review
- Logical:
ux-competitive-review - Description: Competitive teardown: step-by-step flows, patterns, strengths/weaknesses, opportunities
- Quick Win: No - needs Figma MCP
- Key Points:
- Include entry points and handoffs (email/push/search/support)
- Identify moments of doubt and decision points
- Capture emotions + frictions
- → Next:
pm-positioning-brief - MCP Required: Figma (optional), GA4/Clarity (validate assumptions)
- Input: [initiative]
- Output:
$JAAN_OUTPUTS_DIR/ux/benchmark/{slug}/competitive-review.md
/jaan-to:ux-journey-map
- Logical:
ux-journey-map - Description: Step-by-step journey map, pain points + opportunities, metrics to watch per step
- Quick Win: Yes
- Key Points:
- Include entry points and handoffs (email/push/search/support)
- Identify moments of doubt and decision points
- Capture emotions + frictions
- → Next:
ux-journey-edge-cases - MCP Required: None
- Input: [persona] [task]
- Output:
$JAAN_OUTPUTS_DIR/ux/journey/{slug}/journey-map.md
/jaan-to:ux-journey-edge-cases
- Logical:
ux-journey-edge-cases - Description: Edge-case list, recovery paths + UI requirements, "must not happen" failures
- Quick Win: Yes
- Key Points:
- Include entry points and handoffs (email/push/search/support)
- Identify moments of doubt and decision points
- Capture emotions + frictions
- → Next:
ux-flow-spec - MCP Required: None
- Input: [flow]
- Output:
$JAAN_OUTPUTS_DIR/ux/journey/{slug}/edge-cases.md
/jaan-to:ux-sitemap
- Logical:
ux-sitemap - Description: Sitemap + page responsibilities, entry points + cross-links, IA risks (deep nesting, duplicates)
- Quick Win: Yes
- Key Points:
- Group by user intent, not internal org
- Define page responsibilities
- Create naming rules to avoid drift
- → Next:
ux-taxonomy - MCP Required: None
- Input: [feature]
- Output:
$JAAN_OUTPUTS_DIR/ux/ia/{slug}/sitemap.md
/jaan-to:ux-taxonomy
- Logical:
ux-taxonomy - Description: Naming + grouping rules, attribute set (what metadata matters), examples + anti-examples
- Quick Win: Yes
- Key Points:
- Group by user intent, not internal org
- Define page responsibilities
- Create naming rules to avoid drift
- → Next:
ux-wireframe-screens - MCP Required: None
- Input: [content-types]
- Output:
$JAAN_OUTPUTS_DIR/ux/ia/{slug}/taxonomy.md
/jaan-to:ux-wireframe-screens
- Logical:
ux-wireframe-screens - Description: Screen list by step, required states per screen, interaction notes
- Quick Win: Yes
- Key Points:
- Specify key states early (empty/error/loading)
- Validate primary task completion
- Include content hierarchy (what matters first)
- → Next:
ux-wireframe-review - MCP Required: None
- Input: [journey]
- Output:
$JAAN_OUTPUTS_DIR/ux/wireframe/{slug}/screens.md
/jaan-to:ux-wireframe-review
- Logical:
ux-wireframe-review - Description: Usability checklist, heuristic issues to look for, missing-state detector
- Quick Win: Yes
- Key Points:
- Specify key states early (empty/error/loading)
- Validate primary task completion
- Include content hierarchy (what matters first)
- → Next:
ux-ui-spec-states - MCP Required: None
- Input: [wireframes]
- Output:
$JAAN_OUTPUTS_DIR/ux/wireframe/{slug}/review-checklist.md
/jaan-to:ux-flow-spec
- Logical:
ux-flow-spec - Description: Flow spec: happy path + empty/loading/error states + edge cases + implementation notes
- Quick Win: Yes - flow documentation
- Key Points:
- Specify key states early (empty/error/loading)
- Validate primary task completion
- Include content hierarchy (what matters first)
- → Next:
ux-microcopy-write,dev-fe-state-machine - MCP Required: Figma (flow/state extraction)
- Input: [initiative]
- Output:
$JAAN_OUTPUTS_DIR/ux/flows/{slug}/flow-spec.md
/jaan-to:ux-heuristic-review
- Logical:
ux-heuristic-review - Description: Heuristic review: issues, severity, recommended fixes, quick wins, usability principles
- Quick Win: No - structured review
- Key Points:
- Specify key states early (empty/error/loading)
- Validate primary task completion
- Include content hierarchy (what matters first)
- → Next:
ux-flow-spec - MCP Required: Clarity (behavior evidence), Figma (screens)
- Input: [initiative]
- Output:
$JAAN_OUTPUTS_DIR/ux/review/{slug}/heuristic-review.md
/jaan-to:ux-ui-spec-states
- Logical:
ux-ui-spec-states - Description: State list + triggers, copy requirements per state, visual priority guidance
- Quick Win: No - needs Figma
- Key Points:
- Ensure state coverage: success/error/empty/loading
- Document component usage to reduce custom builds
- Align spacing/typography with system tokens
- → Next:
ux-ui-handoff-notes - MCP Required: Figma (screens/states)
- Input: [screen]
- Output:
$JAAN_OUTPUTS_DIR/ux/ui/{slug}/spec-states.md
/jaan-to:ux-ui-handoff-notes
- Logical:
ux-ui-handoff-notes - Description: Dev handoff notes, components + tokens used, interaction + animation guidance
- Quick Win: No - needs Figma
- Key Points:
- Ensure state coverage: success/error/empty/loading
- Document component usage to reduce custom builds
- Align spacing/typography with system tokens
- → Next:
dev-fe-task-breakdown - MCP Required: Figma (design specs)
- Input: [design]
- Output:
$JAAN_OUTPUTS_DIR/ux/ui/{slug}/handoff-notes.md
✅ /jaan-to:ux-microcopy-write
- Logical:
ux-microcopy-write - Description: Microcopy pack: labels, helper text, errors, toasts, confirmations, empty states, tone rules
- Reference: UX Microcopy Writing Skill: Comprehensive Research Document
- Quick Win: Yes - simple content
- Key Points:
- Use verbs, be specific, avoid blame
- Error messages: what happened + what to do next
- Maintain tone rules and consistency
- → Next:
ux-error-messages - MCP Required: Figma (components + strings)
- Input: [initiative]
- Output:
$JAAN_OUTPUTS_DIR/ux/content/{slug}/microcopy.md
/jaan-to:ux-error-messages
- Logical:
ux-error-messages - Description: User-friendly errors, next steps + recovery actions, logging hints (error codes mapping)
- Quick Win: Yes
- Key Points:
- Use verbs, be specific, avoid blame
- Error messages: what happened + what to do next
- Maintain tone rules and consistency
- → Next: —
- MCP Required: None
- Input: [errors]
- Output:
$JAAN_OUTPUTS_DIR/ux/content/{slug}/error-messages.md
/jaan-to:ux-a11y-audit
- Logical:
ux-a11y-audit - Description: Issues + severity, fix checklist, quick wins vs structural changes
- Quick Win: Yes
- Key Points:
- Contrast, focus order, keyboard operability
- Labels for inputs, meaningful headings
- Don't rely on color alone
- → Next:
ux-a11y-aria-notes - MCP Required: None
- Input: [screens]
- Output:
$JAAN_OUTPUTS_DIR/ux/a11y/{slug}/audit.md
/jaan-to:ux-a11y-aria-notes
- Logical:
ux-a11y-aria-notes - Description: ARIA roles/labels guidance, focus management notes, accessible patterns reminders
- Quick Win: Yes
- Key Points:
- Contrast, focus order, keyboard operability
- Labels for inputs, meaningful headings
- Don't rely on color alone
- → Next:
dev-fe-task-breakdown - MCP Required: None
- Input: [components]
- Output:
$JAAN_OUTPUTS_DIR/ux/a11y/{slug}/aria-notes.md
/jaan-to:ux-onboarding-steps
- Logical:
ux-onboarding-steps - Description: Onboarding steps + activation event, drop-off risks, measurement plan pointers
- Quick Win: Yes
- Key Points:
- Define activation event clearly
- Use progressive disclosure (don't teach everything)
- Tooltips must be contextual and skippable
- → Next:
ux-onboarding-tooltips - MCP Required: None
- Input: [product]
- Output:
$JAAN_OUTPUTS_DIR/ux/onboarding/{slug}/steps.md
/jaan-to:ux-onboarding-tooltips
- Logical:
ux-onboarding-tooltips - Description: Tooltip copy set, tone rules + character limits, "skip/done" patterns
- Quick Win: Yes
- Key Points:
- Define activation event clearly
- Use progressive disclosure (don't teach everything)
- Tooltips must be contextual and skippable
- → Next:
data-event-spec - MCP Required: None
- Input: [steps]
- Output:
$JAAN_OUTPUTS_DIR/ux/onboarding/{slug}/tooltips.md