$npx -y skills add aleksander-dytko/ai-pm-workspace --skill user-journeyBuild a persona-grounded user journey map for a product flow
| 1 | # User Journey |
| 2 | |
| 3 | You help map a user journey for a specific task or flow. The output is a markdown journey artifact that names the persona, walks through stages, and highlights friction, emotion, and opportunities. |
| 4 | |
| 5 | ## Input |
| 6 | |
| 7 | The user provides via `$ARGUMENTS`: |
| 8 | - A short description of the task or flow (e.g., "first-time API integration", "renewing a subscription", "handling a support escalation") |
| 9 | |
| 10 | ## Workflow |
| 11 | |
| 12 | ### 1. Pick the persona |
| 13 | |
| 14 | Read `research/personas/` to see what personas exist. |
| 15 | |
| 16 | **If one persona clearly matches**: confirm with the user - "I'll ground this journey in [[persona]]. OK?" |
| 17 | |
| 18 | **If multiple could match or none exists**: ask the user which persona to use via `AskUserQuestion`, offering personas from `research/personas/` plus an "Other - I'll describe it" option. |
| 19 | |
| 20 | **If no personas exist yet**: prompt the user to run `/personalize --deep` or describe the persona in a short paragraph. Build the journey with an inline persona description at the top. |
| 21 | |
| 22 | ### 2. Define the task and its boundaries |
| 23 | |
| 24 | Clarify in ONE `AskUserQuestion` round (skip any that are already answered): |
| 25 | |
| 26 | - **Starting point**: what triggers the user to begin this journey? (A specific event, not "they want to use the product".) |
| 27 | - **End state**: what does "done" look like? (A specific measurable outcome.) |
| 28 | - **Context**: time pressure, skill level, tools available. |
| 29 | - **Happy path or full path**: do we map the ideal flow or include edge cases? |
| 30 | |
| 31 | ### 3. Map the journey |
| 32 | |
| 33 | Produce a table-and-prose journey map with these columns: |
| 34 | |
| 35 | | Stage | What the user does | What the user thinks | What the user feels | Friction / opportunity | |
| 36 | |-------|--------------------|-----------------------|----------------------|-------------------------| |
| 37 | |
| 38 | Keep stages at the right level of granularity - for most journeys, 5-8 stages is the sweet spot. Fewer misses detail; more turns into a task list. |
| 39 | |
| 40 | For each stage: |
| 41 | - **What the user does**: concrete action. |
| 42 | - **What the user thinks**: internal voice, first-person. |
| 43 | - **What the user feels**: emotion in one or two words. |
| 44 | - **Friction / opportunity**: what's slow, confusing, or a moment of truth - and what could be improved. |
| 45 | |
| 46 | Use specific, first-person voice ("I paste my API key and...") over generic ("The user enters credentials..."). |
| 47 | |
| 48 | ### 4. Highlight the 2-3 biggest moments of truth |
| 49 | |
| 50 | A "moment of truth" is a stage where the user's experience makes or breaks their trust in the product. Below the table, call out the 2-3 most critical: |
| 51 | |
| 52 | ``` |
| 53 | ### Moments of truth |
| 54 | |
| 55 | 1. **[Stage name]**: Why it's critical, what good looks like, what bad looks like. |
| 56 | 2. ... |
| 57 | ``` |
| 58 | |
| 59 | ### 5. Propose opportunities and experiments |
| 60 | |
| 61 | In the last section, list 3-5 concrete things to improve the journey. For each: |
| 62 | - What the opportunity is. |
| 63 | - What experiment would validate the fix. |
| 64 | - Rough effort (small / medium / large). |
| 65 | |
| 66 | These feed into `/opportunity-solution-tree` or a follow-up epic. |
| 67 | |
| 68 | ### 6. File location and naming |
| 69 | |
| 70 | - **Folder**: `research/journeys/`. Create if it doesn't exist. |
| 71 | - **Filename**: `YYYY-MM-DD - [Persona] - [Flow].md`. Example: `2026-04-20 - Dana (Backend Dev) - First API Integration.md`. |
| 72 | - **Frontmatter**: `tags: Journey`, `persona: [[persona file]]`, `created: YYYY-MM-DD`. |
| 73 | |
| 74 | ### 7. Link the journey |
| 75 | |
| 76 | - **Daily journal**: under `## Notes`. |
| 77 | - **Related epic**: if this journey was built for a specific epic, add a link in that epic's `## Breakdown > Scope` section. |
| 78 | - **Persona file**: append a reference to the journey at the bottom of the persona's Research Sources section. |
| 79 | |
| 80 | ### 8. Output summary |
| 81 | |
| 82 | ``` |
| 83 | ✅ Journey mapped: [[YYYY-MM-DD - Persona - Flow]] |
| 84 | ✅ Linked in today's journal |
| 85 | [if epic] ✅ Linked in [[Epic]] |
| 86 | |
| 87 | Persona: [[persona]] |
| 88 | Stages: [N] |
| 89 | |
| 90 | 🎯 Moments of truth: |
| 91 | 1. [Stage name] |
| 92 | 2. [Stage name] |
| 93 | |
| 94 | 💡 Top opportunity: [One-line summary] |
| 95 | |
| 96 | Next step: run `/opportunity-solution-tree` to explore solutions for the top opportunity. |
| 97 | ``` |
| 98 | |
| 99 | ## Notes |
| 100 | |
| 101 | - **First-person voice beats third-person.** Readers feel the journey more when it's "I" instead of "the user". |
| 102 | - **Emotion matters.** A journey map without emotion is just a flowchart. |
| 103 | - **One persona per journey.** If a journey serves multiple personas, the stages and friction are usually different - build a separate map per persona and compare. |
| 104 | - **Not a full feature spec.** The journey highlights where the problems are; the epic describes what to build about them. |