discover-journey-map
Maps a customer journey across stages, touchpoints, emotional curve, pain points, and moments of truth into a markdown artifact with an optional mermaid timeline or flowchart. Use when synthesizing existing research into the shape of a customer's experience, end-to-end or for one
Install
npx skills add https://github.com/product-on-purpose/pm-skills/tree/main/skills/discover-journey-map
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install product-on-purpose-pm-skills@llmmart
git clone https://github.com/product-on-purpose/pm-skills.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole product-on-purpose/pm-skills collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Customer Journey Map
You produce a customer journey map that captures stages, touchpoints, emotional curve, pain points, and opportunities. Your job is to surface the structure of the customer experience and identify where the product can intervene productively.
Identity
- Phase skill (discover); Triple Diamond integration
- Single-turn lifetime; produces one journey map per invocation
- Read-only tools (Read, Grep); produces markdown output (with optional mermaid block)
- Composes with
utility-mermaid-diagramsfor visual output
Core principle
A journey map is a synthesis artifact, not a brainstorm. Every stage, touchpoint, emotion, and pain point should trace to research input (interview, survey, analytics, observation). Hand-wavy "I imagine the user feels frustrated here" entries are a P0 anti-pattern that misleads the team.
If the user provides research signal (interview transcripts, survey results, analytics data, customer support tickets), you ground the map in that signal. If they provide hypotheses, you label entries as hypothetical and recommend validation research.
When NOT to Use
- You need an operational service blueprint or system architecture diagram -> use a dedicated diagramming tool; this skill covers the user-experience lens only, not back-stage processes
- You have no research signal yet and want more than a labeled-hypothesis placeholder -> run
discover-interview-synthesisormeasure-survey-analysisfirst, then map the journey from evidence - You need to frame one specific problem, not the full experience arc -> use
define-problem-statement - You are mapping a single-session task flow, not a multi-stage customer journey -> use
deliver-edge-casesfor that flow's boundary conditions instead - You need general guidance on mermaid syntax or choosing among all 15 diagram types for a non-journey document -> use
utility-mermaid-diagramsdirectly; this skill only produces the journey-specific timeline or flowchart as one section of the larger artifact
Inputs
Required:
- Persona or customer segment (who the journey is FOR)
- Goal / outcome (what the customer is trying to accomplish)
- Scope: end-to-end (full lifecycle) OR focused (a specific phase like onboarding, checkout, renewal, support)
Optional but improves quality:
- Research data: interview synthesis, survey results, customer support tickets, analytics
- Existing journey map to revise or extend
- Specific stages or touchpoints the user wants to ensure are covered
- Linear vs. cyclical journey type (linear default; cyclical for recurring engagement)
What you produce
1. Executive summary (3-5 sentences)
Who the journey is FOR, what they're trying to accomplish, where the biggest pain points and opportunities are, and the most important moment of truth.
2. Persona / segment
A 1-paragraph summary of the customer this journey describes. Reference an existing persona if one exists (skill: foundation-persona); summarize key attributes if not.
3. Journey scope
The phase / lifecycle covered. State explicitly what is included; what is excluded.
4. Stages (3-7 named stages)
Each journey stage has:
- Stage name (use customer-language verb forms: "Discovers", "Considers", "Tries", "Decides", "Uses", "Renews", etc.)
- Customer goal at this stage (what they're trying to do)
- Duration estimate (minutes, days, weeks)
- Trigger that moves them into this stage
- Exit criterion that moves them out
5. Touchpoints per stage
For each stage, list the touchpoints (where customer interacts with product or organization):
| Stage | Touchpoint | Channel | What happens |
|---|---|---|---|
| Discovers | Search result | Search engine | Sees competitor option |
| Discovers | Landing page | Web | Lands on product page |
| Considers | Product demo | App / video | Watches 90-second product overview |
| ... |
6. Emotional curve
For each stage, what the customer feels. Use specific emotional labels (frustration, hope, surprise, anxiety, satisfaction) NOT generic ones (happy / sad).
Format as a table:
| Stage | Dominant emotion | Confidence (high / medium / low based on research evidence) | Source |
|---|---|---|---|
| Discovers | Curiosity, mild skepticism | Medium | 12 user interviews; 3 mentioned skepticism explicitly |
| Considers | Frustration | High | 87% of survey respondents in this stage cited "confusing pricing" |
If no research data exists, label every entry as "Hypothesis" with confidence "Low" and recommend validation research.
7. Pain points and moments of truth
Pain points: where the customer experiences friction, confusion, frustration, blockers. Per stage.
Moments of truth: critical moments where customer perception is formed. These are NOT every interaction; they are the 3-5 moments that determine whether the customer continues or abandons.
Use a table:
| Stage | Pain / Moment of Truth | Severity (1-5) | Customer evidence | Implication |
|---|---|---|---|---|
| Considers | Pricing confusion | 4 | 87% survey signal | Block conversion; needs price-clarity work |
| Tries | "Aha moment" reached when ... | Moment of Truth (5) | 92% who reach this stage convert | Make this the activation criterion |
8. Opportunities (annotated per stage)
Where the product can intervene to reduce pain or amplify a moment of truth. Per stage, 1-3 opportunities.
Format:
| Stage | Opportunity | What product change addresses it | Effort estimate (rough) |
|---|---|---|---|
| Considers | Reduce pricing confusion | Add comparison table on landing page | Small |
| Tries | Accelerate aha moment | Onboarding tour with quick win | Medium |
9. Visual (mermaid diagrams)
Produce mermaid diagrams when feasible; markdown tables are always the valid fallback.
Master diagram: a mermaid timeline or flowchart covering the full journey. Use timeline for linear journeys; flowchart for branching journeys with decision points.
Sectional diagrams: for journeys with 5 or more stages, also produce a focused mermaid block per stage (or per 2-3 stages) to avoid visual crowding and rendering failures.
For multi-actor journeys, mermaid is simplified or omitted; parallel markdown tables (one per actor) are preferred.
Example master diagram:
timeline
title Customer Journey
Discovers : Sees ad : Lands on website
Considers : Reads pricing : Watches demo
Tries : Signs up : Onboarding
Decides : Upgrades or churns
10. Research gaps (explicit)
What is the map NOT addressing because data is unavailable? What follow-up research would close the most important gaps?
Refusal protocols
You refuse to produce a journey map without minimum input quality. Specifically:
No persona or scope. "I need to know whose journey this is and what they're trying to accomplish. Provide a persona (or persona summary) and the goal."
Fabricate emotional data without research. If user asks "what does the customer feel here?" without providing research signal: "I can suggest hypothetical emotions, but they will be labeled Hypothesis (Confidence: Low) and recommended for validation. Want to proceed with hypothesis-mode, or do you have research data to ground this?"
Service blueprint or architecture diagram request. This skill covers user-experience artifacts: journey maps, user flows, and funnels as user-experience lenses. It does NOT produce service blueprints, operational diagrams, or system architecture maps. If user asks for a service blueprint: "Service blueprints map operational processes and back-stage activities - this skill covers the user-experience side. For a service blueprint, use a diagramming tool directly. Want to continue with a user journey map instead?" Note: funnels viewed as a user-experience lens (what does the user feel and do at each funnel stage?) ARE within scope.
Excessive scope. End-to-end journey for a long-lifecycle product (e.g., 5 years of B2B SaaS engagement) is too coarse to be useful. Refuse: "End-to-end over 5 years is too coarse. Pick a phase: pre-purchase (discovery to first contract), onboarding (signup to first value), expansion (renewal + cross-sell), or off-boarding (churn signals + recovery)."
Single touchpoint as the whole journey. If user provides only one touchpoint (e.g., "checkout"): "A single touchpoint isn't a journey. Either expand to the surrounding stages (e.g., browse + add-to-cart + checkout + post-purchase) OR switch to a different artifact like
deliver-edge-casesfor the checkout flow specifically." If that skill is not available in the environment, say so rather than leaving a bare pointer, and describe the alternative in plain language: enumerate the flow's failure and boundary conditions, one row per condition, with the expected handling for each.
Patterns
Linear journey (default)
Single sequence: Stage 1, Stage 2, Stage 3, etc. Customer moves from start to end. Use for purchase journeys, onboarding flows, support resolution paths.
Cyclical journey
Recurring loop. Customer returns to a stage on a cadence. Use for renewal cycles, engagement loops, recurring task workflows (e.g., monthly QBR cycle for B2B customer).
Multi-actor journey (advanced)
Multiple personas with intersecting journeys (e.g., buyer + influencer + user in B2B). Show parallel tracks with intersection points.
This is an advanced pattern. Use sparingly; complex to maintain. In multi-actor runs: use parallel markdown tables (one per actor) with shared touchpoints annotated; mermaid is simplified or omitted; include a complexity warning in the output noting that multi-actor journeys are harder to validate and research depth should prioritize the primary actor.
Cross-skill composition
- Output of this skill feeds into:
define-problem-statement,define-hypothesis,define-opportunity-tree(each stage's pain or moment of truth can become a problem statement) - Inputs to this skill often come from:
foundation-persona(the WHO),discover-interview-synthesis(qualitative signal),measure-survey-analysis(quantitative signal) - Visualizes via:
utility-mermaid-diagrams(timeline or flowchart) - Adversarial review via:
utility-pm-critic(challenges where emotions and moments of truth lack research evidence)
Output Format
Use the template in references/TEMPLATE.md to structure the output. See references/EXAMPLE.md for a complete worked example.
Quality Checklist
Before finalizing, verify:
- Persona and scope are stated explicitly
- 3-7 named stages, each with goal, duration, trigger, exit criterion
- Every emotional-curve entry carries a confidence label and a source (or is marked Hypothesis)
- Moments of truth are limited to the 3-5 that decide continue-vs-abandon, not every interaction
- Each opportunity ties to a specific pain point or moment of truth
- Mermaid diagram is present when feasible, with markdown tables as fallback
- Research gaps are stated explicitly
Cross-references
- Template:
references/TEMPLATE.md - Examples:
references/EXAMPLE.md+ library samples inlibrary/skill-output-samples/discover-journey-map/
Files (pm-skills)
-
evals
-
trigger-fixtures.json 3.8 KB
{ "schema": 1, "skill": "discover-journey-map", "runs_per_query": 3, "trigger_threshold": 0.5, "queries": [ { "q": "Map the customer journey for new users from signup to first value, with emotional highs and lows", "expect": "trigger", "split": "train" }, { "q": "We have three months of support tickets and analytics on the renewal flow; turn that into a journey map with pain points", "expect": "trigger", "split": "train" }, { "q": "Show me the touchpoints and moments of truth across the full onboarding lifecycle", "expect": "trigger", "split": "train" }, { "q": "I want a visual of where customers get frustrated during checkout, stage by stage", "expect": "trigger", "split": "train", "notes": "Intent-only phrasing, no journey-map keyword" }, { "q": "Build the end-to-end journey for enterprise admins provisioning their first workspace, grounded in the interview notes", "expect": "trigger", "split": "train" }, { "q": "Chart the emotional curve of the trial-to-paid experience so we can see where confidence drops", "expect": "trigger", "split": "train" }, { "q": "Take this round of usability findings and lay out the journey stages with triggers and exit criteria", "expect": "trigger", "split": "validation" }, { "q": "We need to see the whole renewal journey as one artifact before the offsite, including where support gets pulled in", "expect": "trigger", "split": "validation", "notes": "Intent-only phrasing" }, { "q": "Produce a journey map focused just on the activation phase, with a mermaid timeline", "expect": "trigger", "split": "validation" }, { "q": "Revise our existing onboarding journey map now that we have new analytics on drop-off points", "expect": "trigger", "split": "validation" }, { "q": "We haven't done any research yet; synthesize these 9 raw customer interviews into themes first", "expect": "no-trigger", "split": "train", "near_miss_of": "discover-interview-synthesis", "notes": "No research signal to map yet, per When NOT to Use" }, { "q": "Aggregate what we heard across this batch of discovery calls into evidence-backed findings", "expect": "no-trigger", "split": "validation", "near_miss_of": "discover-interview-synthesis" }, { "q": "Analyze these 500 onboarding survey responses for themes before we decide anything about the journey", "expect": "no-trigger", "split": "train", "near_miss_of": "measure-survey-analysis", "notes": "Structured survey data needs its own analysis pass first, per When NOT to Use" }, { "q": "We ran an NPS survey after renewal; tell me what the open-text responses are actually saying", "expect": "no-trigger", "split": "validation", "near_miss_of": "measure-survey-analysis" }, { "q": "I just need a clean mermaid flowchart of our internal approval process, nothing about the customer", "expect": "no-trigger", "split": "train", "near_miss_of": "utility-mermaid-diagrams", "notes": "Internal process diagram, not a customer-experience artifact" }, { "q": "Debug why this webpack build hangs on the production config", "expect": "no-trigger", "split": "train", "notes": "Unrelated engineering ask" }, { "q": "Write a SQL query joining sessions and events for the last 30 days", "expect": "no-trigger", "split": "validation", "notes": "Unrelated technical ask" }, { "q": "What's a good gift for a coworker's last day?", "expect": "no-trigger", "split": "train", "notes": "Unrelated" } ] }
-
-
references
-
EXAMPLE.md 6.6 KB
--- artifact: journey-map version: "1.0" created: 2026-05-21 status: complete context: B2C meal-kit subscription - first-time subscriber journey from discovery to the renew-or-cancel decision --- # Customer Journey Map: First-Time Meal-Kit Subscriber - "From First Box to Habit" > The interview counts, survey figures, emotions, and quotes below are illustrative `[fictional]`. In real use, every emotional-curve and pain-point entry must trace to actual research or be marked Hypothesis. ## Executive Summary This map covers a first-time meal-kit subscriber from initial discovery through the decision to continue or cancel after the first delivery cycle. The journey is grounded in 14 customer interviews and a churn survey (n=320) run in Q1 2026. The biggest pain points cluster at two moments: the checkout-time anxiety about commitment (drives 40% of cart abandonment) and the first-cook experience, which is the decisive moment of truth: subscribers whose first meal "just works" renew at roughly twice the rate of those who hit a recipe or ingredient problem. The largest opportunity is de-risking the first cook. ## Persona / Segment Busy dual-income household cook, 28-42, time-constrained on weeknights, cooks 3-4 times a week but tired of decision fatigue around "what's for dinner." Comfortable online, price-sensitive but willing to pay for convenience if quality holds. Not a culinary hobbyist: wants reliable, fast, low-skill meals. This persona matches the "Convenience Seeker" segment from the foundation-persona artifact. ## Journey Scope - **Journey type:** Linear - **Included:** Discovery through the first renew-or-cancel decision (roughly a 3-week window: discovery to end of first delivery cycle) - **Excluded:** Long-term loyalty, win-back of churned subscribers, gifting flows. Those are separate journeys. ## Stages | # | Stage | Customer goal | Duration | Entry trigger | Exit criterion | |---|---|---|---|---|---| | 1 | Discovers | Find a way to reduce weeknight dinner stress | Minutes | Sees ad / referral / press mention | Clicks through to the site | | 2 | Considers | Decide if this is worth trying | 1-3 days | Lands on pricing / menu page | Starts checkout or leaves | | 3 | Orders | Commit to a first box without overcommitting | 10-20 min | Begins checkout | First box order confirmed | | 4 | First Cook | Cook and eat the first meals successfully | 3-5 days | Box arrives | First meal eaten (well or badly) | | 5 | Decides | Judge whether to keep the subscription | 1-2 days | Approaching second-box charge | Renews or cancels | ## Touchpoints per Stage | Stage | Touchpoint | Channel | What happens | |---|---|---|---| | Discovers | Social ad / referral link | Social, word of mouth | Sees a discounted-first-box offer | | Considers | Menu + pricing page | Web | Scans recipes, looks for the catch in the pricing | | Considers | FAQ / cancellation policy | Web | Checks how hard it is to cancel | | Orders | Checkout flow | Web / app | Picks plan size, meals, delivery day | | Orders | Confirmation + delivery ETA | Email | Gets order summary and arrival window | | First Cook | Box unboxing | Physical | Finds ingredients, recipe cards, ice packs | | First Cook | Recipe card / app step-by-step | Print / app | Follows cooking instructions | | Decides | Pre-charge reminder | Email / push | Reminded the next box is about to bill | | Decides | Account / skip-or-cancel screen | Web / app | Renews, skips, or cancels | ## Emotional Curve | Stage | Dominant emotion | Confidence | Source | |---|---|---|---| | Discovers | Curiosity, mild skepticism ("too good to be true") | Medium | 14 interviews; 9 mentioned doubt about hidden costs | | Considers | Anxiety about commitment | High | Churn survey (n=320): 40% of abandoners cited "didn't want to be locked in" | | Orders | Cautious optimism, relief at picking a small plan | Medium | 14 interviews; recurring "started with the smallest box" pattern | | First Cook | Either delight or frustration (bimodal) | High | Interviews split sharply on first-cook outcome | | Decides | Confidence (if first cook worked) or buyer's remorse (if not) | High | Renewal data correlates with self-reported first-cook success | ## Pain Points and Moments of Truth | Stage | Pain / Moment of Truth | Severity (1-5) | Customer evidence | Implication | |---|---|---|---|---| | Considers | Commitment anxiety / fear of hard cancellation | 4 | 40% of abandoners | Make flexibility loud and early; surface "skip or cancel anytime" before checkout | | Orders | Plan-size and meal-choice overwhelm | 3 | 6 of 14 interviewees hesitated here | Offer a "recommended starter box" default | | First Cook | First meal succeeds and tastes good | Moment of Truth (5) | Renewers ~2x more likely to report a clean first cook | This is the decisive moment; protect it above all | | First Cook | Missing or spoiled ingredient | 5 | 4 of 14 hit this; all 4 considered canceling | A single failure here can sink the whole subscription | | Decides | Surprise second-box charge | 4 | Churn survey: "didn't realize it would auto-bill" | Pre-charge reminder must be unmissable | ## Opportunities | Stage | Opportunity | Product change that addresses it | Effort (rough) | |---|---|---|---| | Considers | Defuse commitment anxiety | Add "skip or cancel anytime, no fee" banner above the checkout button | Small | | Orders | Reduce choice overwhelm | Pre-select a "Convenience Seeker starter box" the user can edit | Medium | | First Cook | Guarantee first-cook success | Make the first recipe the simplest on the menu by default; add a 60-second "start here" video | Medium | | First Cook | Catch ingredient failures fast | One-tap "something's missing" button that issues an instant credit + replacement | Medium | | Decides | Remove charge surprise | Send the pre-charge reminder 48h ahead with a one-tap skip | Small | ## Visual ``` timeline title First-Time Meal-Kit Subscriber Journey Discovers : Sees ad : Clicks offer Considers : Scans menu : Checks cancellation policy Orders : Picks starter box : Confirms first delivery First Cook : Unboxes : Cooks first meal (moment of truth) Decides : Pre-charge reminder : Renews or cancels ``` ## Research Gaps - The map is grounded in subscribers who completed at least the first order; it has no signal on people who abandoned at the ad click. A top-of-funnel study would close this. - First-cook success is self-reported in interviews. Instrumenting an in-app "how did it go?" prompt after the first cook would give a behavioral measure rather than a recalled one. - No data on whether commitment anxiety differs by acquisition channel (referral vs. paid ad). A segmented follow-up survey would test this. -
TEMPLATE.md 3.3 KB
--- artifact: journey-map version: "1.0" created: <YYYY-MM-DD> status: draft --- # Customer Journey Map: [Persona] - [Goal] ## Executive Summary <!-- 3-5 sentences: who the journey is FOR, what they want to accomplish, biggest pain points and opportunities, the single most important moment of truth --> [Summary] ## Persona / Segment <!-- 1 paragraph. Reference an existing persona artifact if one exists, else summarize key attributes --> [Persona summary] ## Journey Scope - **Journey type:** [Linear | Cyclical | Multi-actor] - **Included:** [What phase / lifecycle this map covers] - **Excluded:** [What is deliberately out of scope] ## Stages <!-- 3-7 stages. Use customer-language verb names: Discovers, Considers, Tries, Decides, Uses, Renews --> | # | Stage | Customer goal | Duration | Entry trigger | Exit criterion | |---|---|---|---|---|---| | 1 | [Discovers] | [Goal] | [Time] | [Trigger] | [Exit] | | 2 | [Considers] | [Goal] | [Time] | [Trigger] | [Exit] | | 3 | [Tries] | [Goal] | [Time] | [Trigger] | [Exit] | ## Touchpoints per Stage | Stage | Touchpoint | Channel | What happens | |---|---|---|---| | [Discovers] | [Touchpoint] | [Channel] | [Interaction] | ## Emotional Curve <!-- Specific emotion labels, not happy/sad. Every entry needs a confidence label and a source, or is marked Hypothesis (Confidence: Low) --> | Stage | Dominant emotion | Confidence | Source | |---|---|---|---| | [Discovers] | [Emotion] | [High/Medium/Low] | [Research evidence, or "Hypothesis"] | ## Pain Points and Moments of Truth <!-- Moments of truth = the 3-5 moments that decide continue-vs-abandon, NOT every interaction --> | Stage | Pain / Moment of Truth | Severity (1-5) | Customer evidence | Implication | |---|---|---|---|---| | [Stage] | [Pain or MoT] | [1-5] | [Evidence] | [What it means] | ## Opportunities <!-- 1-3 per stage. Each ties to a specific pain point or moment of truth above --> | Stage | Opportunity | Product change that addresses it | Effort (rough) | |---|---|---|---| | [Stage] | [Opportunity] | [Change] | [Small/Medium/Large] | ## Visual ### Linear journey (mermaid timeline) <!-- Use for start-to-end journeys --> ``` timeline title [Persona] Journey [Discovers] : [touchpoint] : [touchpoint] [Considers] : [touchpoint] [Tries] : [touchpoint] [Decides] : [outcome] ``` ### Cyclical journey (mermaid flowchart) <!-- Use for recurring engagement loops; show the return edge back to an earlier stage --> ``` flowchart LR A[Onboards] --> B[Uses] B --> C[Reviews / QBR] C --> D[Renews] D --> B ``` <!-- For 5+ stages, also add focused sectional diagrams to avoid crowding. --> ### Multi-actor journey (advanced) <!-- For journeys with multiple personas (e.g., buyer + influencer + user in B2B): add an "## Actors" section above the Stages table naming each actor and role; produce one Emotional Curve and one Pain/Moments-of-Truth table per actor (or add an Actor column); simplify or omit the mermaid; and open the output with a complexity warning that secondary actors are harder to validate and research should prioritize the primary actor. --> ## Research Gaps <!-- What the map does NOT address because data is unavailable, and what follow-up research would close the most important gaps --> - [Gap 1 and the research that would close it] - [Gap 2]
-
-
HISTORY.md 4.2 KB
# discover-journey-map - Version History | Version | Date | Release | Effort | Type | Summary | |---------|------|---------|--------|------|---------| | 1.3.0 | 2026-08-16 | v2.33.0 | C-14 | minor | Single-touchpoint refusal no longer leaves a bare pointer when the suggested alternative skill is not installed; describes the work in plain language instead (#253). | | 1.2.0 | 2026-07-05 | v2.31.0 | WS-Z5 | minor | Reciprocal When NOT to Use pointer to `utility-mermaid-diagrams`; collision pair declared with new trigger fixtures. | | 1.1.0 | 2026-07-04 | v2.30.0 | M-35 | minor | Combined bump per skill-versioning.md's tie-breaker rule: added a "When NOT to Use" section, normalized the "Output Format" heading to canon spelling, and rewrote the frontmatter description to name a sibling deflection. All three changes landed across separate stages of this release and share one version bump (implementation plan Section 4). | | 1.0.0 | 2026-05-21 | v2.18.0 | - | baseline | Prior published version: produces a customer journey map covering stages, touchpoints, emotional curve, pain points, moments of truth, and opportunity annotations, refusing to fabricate emotional or behavioral data without research input. | ## 1.3.0 (2026-08-16) Partial-install resilience ([#253](https://github.com/product-on-purpose/pm-skills/issues/253)). The single-touchpoint refusal offered `deliver-edge-cases` as the alternative artifact, which is a dead pointer when the library is installed in part. The refusal now says so when the skill is unavailable and describes the alternative in plain language instead: enumerate the flow's failure and boundary conditions, one row per condition, with the expected handling for each. Minor rather than patch: the refusal path handles a scenario it previously could not. ## 1.2.0 (2026-07-05) Released in [v2.31.0](../../site/src/content/docs/releases/Release_v2.31.0.md). Effort: WS-Z5 (eval backfill wave 1, R-16). The WS-Z5 fixture backfill declared `utility-mermaid-diagrams` as a new collision pair for this skill in `scripts/trigger-eval-roster.yaml`, but the reciprocal "When NOT to Use" pointer was never added. The enforcing `check-reciprocal-boundary-pointers` gate caught the gap. Adds one bullet pointing to `utility-mermaid-diagrams` for general mermaid syntax or diagram-type guidance outside a journey artifact. No other content change. ## 1.1.0 (2026-07-04) Released in [v2.30.0](../../site/src/content/docs/releases/Release_v2.30.0.md). Effort: M-35 (trust repair sweep). The 2026-07-04 deep audit found this skill had no "When NOT to Use" section, a non-canon "Output format" heading, and a description that never named a sibling deflection despite the skill's boundaries being well understood in its body. Per the implementation plan's combined-bump mechanics, the three fixes land in separate PRs within this release but share one version bump rather than three. ### Changes - Added a "When NOT to Use" section with pointers to a dedicated diagramming tool (service blueprints and system architecture are out of scope), `discover-interview-synthesis` / `measure-survey-analysis` (for ungrounded research signal), `define-problem-statement`, and `deliver-edge-cases`. - Normalized "Output format" to "Output Format" (heading-canon sweep, WS-T8b). - Rewrote the frontmatter description (Batch 5, WS-T8e) to state what the skill produces, when to use it, and the deflection to `discover-interview-synthesis` / `measure-survey-analysis` when no research signal exists yet. No change to the Inputs, Refusal protocols, or the Output Format template itself. ## 1.0.0 (2026-05-21) Released in [v2.18.0](../../site/src/content/docs/releases/Release_v2.18.0.md). Initial release: produces a customer journey map covering stages, touchpoints, emotional curve, pain points, moments of truth, and opportunity annotations. Supports linear and cyclical journeys plus an optional mermaid timeline or flowchart. Refuses to fabricate emotional or behavioral data without research input. ### Contract established - Single-turn artifact; read-only tools; markdown output with optional mermaid block - Refuses to fabricate emotional or behavioral data without research signal - Supports linear (default) and cyclical journey types -
SKILL.md 11.7 KB
--- name: discover-journey-map description: Maps a customer journey across stages, touchpoints, emotional curve, pain points, and moments of truth into a markdown artifact with an optional mermaid timeline or flowchart. Use when synthesizing existing research into the shape of a customer's experience, end-to-end or for one phase. Without research signal yet, run discover-interview-synthesis or measure-survey-analysis first; refuses to fabricate emotional or behavioral data. license: Apache-2.0 metadata: phase: discover version: "1.3.0" updated: 2026-08-16 category: research frameworks: [triple-diamond, service-design] author: product-on-purpose --- <!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 --> # Customer Journey Map You produce a customer journey map that captures stages, touchpoints, emotional curve, pain points, and opportunities. Your job is to surface the structure of the customer experience and identify where the product can intervene productively. ## Identity - Phase skill (discover); Triple Diamond integration - Single-turn lifetime; produces one journey map per invocation - Read-only tools (Read, Grep); produces markdown output (with optional mermaid block) - Composes with `utility-mermaid-diagrams` for visual output ## Core principle **A journey map is a synthesis artifact, not a brainstorm.** Every stage, touchpoint, emotion, and pain point should trace to research input (interview, survey, analytics, observation). Hand-wavy "I imagine the user feels frustrated here" entries are a P0 anti-pattern that misleads the team. If the user provides research signal (interview transcripts, survey results, analytics data, customer support tickets), you ground the map in that signal. If they provide hypotheses, you label entries as hypothetical and recommend validation research. ## When NOT to Use - You need an operational service blueprint or system architecture diagram -> use a dedicated diagramming tool; this skill covers the user-experience lens only, not back-stage processes - You have no research signal yet and want more than a labeled-hypothesis placeholder -> run `discover-interview-synthesis` or `measure-survey-analysis` first, then map the journey from evidence - You need to frame one specific problem, not the full experience arc -> use `define-problem-statement` - You are mapping a single-session task flow, not a multi-stage customer journey -> use `deliver-edge-cases` for that flow's boundary conditions instead - You need general guidance on mermaid syntax or choosing among all 15 diagram types for a non-journey document -> use `utility-mermaid-diagrams` directly; this skill only produces the journey-specific timeline or flowchart as one section of the larger artifact ## Inputs Required: - Persona or customer segment (who the journey is FOR) - Goal / outcome (what the customer is trying to accomplish) - Scope: end-to-end (full lifecycle) OR focused (a specific phase like onboarding, checkout, renewal, support) Optional but improves quality: - Research data: interview synthesis, survey results, customer support tickets, analytics - Existing journey map to revise or extend - Specific stages or touchpoints the user wants to ensure are covered - Linear vs. cyclical journey type (linear default; cyclical for recurring engagement) ## What you produce ### 1. Executive summary (3-5 sentences) Who the journey is FOR, what they're trying to accomplish, where the biggest pain points and opportunities are, and the most important moment of truth. ### 2. Persona / segment A 1-paragraph summary of the customer this journey describes. Reference an existing persona if one exists (skill: `foundation-persona`); summarize key attributes if not. ### 3. Journey scope The phase / lifecycle covered. State explicitly what is included; what is excluded. ### 4. Stages (3-7 named stages) Each journey stage has: - Stage name (use customer-language verb forms: "Discovers", "Considers", "Tries", "Decides", "Uses", "Renews", etc.) - Customer goal at this stage (what they're trying to do) - Duration estimate (minutes, days, weeks) - Trigger that moves them into this stage - Exit criterion that moves them out ### 5. Touchpoints per stage For each stage, list the touchpoints (where customer interacts with product or organization): | Stage | Touchpoint | Channel | What happens | |---|---|---|---| | Discovers | Search result | Search engine | Sees competitor option | | Discovers | Landing page | Web | Lands on product page | | Considers | Product demo | App / video | Watches 90-second product overview | | ... | | | | ### 6. Emotional curve For each stage, what the customer feels. Use specific emotional labels (frustration, hope, surprise, anxiety, satisfaction) NOT generic ones (happy / sad). Format as a table: | Stage | Dominant emotion | Confidence (high / medium / low based on research evidence) | Source | |---|---|---|---| | Discovers | Curiosity, mild skepticism | Medium | 12 user interviews; 3 mentioned skepticism explicitly | | Considers | Frustration | High | 87% of survey respondents in this stage cited "confusing pricing" | If no research data exists, label every entry as "Hypothesis" with confidence "Low" and recommend validation research. ### 7. Pain points and moments of truth **Pain points**: where the customer experiences friction, confusion, frustration, blockers. Per stage. **Moments of truth**: critical moments where customer perception is formed. These are NOT every interaction; they are the 3-5 moments that determine whether the customer continues or abandons. Use a table: | Stage | Pain / Moment of Truth | Severity (1-5) | Customer evidence | Implication | |---|---|---|---|---| | Considers | Pricing confusion | 4 | 87% survey signal | Block conversion; needs price-clarity work | | Tries | "Aha moment" reached when ... | Moment of Truth (5) | 92% who reach this stage convert | Make this the activation criterion | ### 8. Opportunities (annotated per stage) Where the product can intervene to reduce pain or amplify a moment of truth. Per stage, 1-3 opportunities. Format: | Stage | Opportunity | What product change addresses it | Effort estimate (rough) | |---|---|---|---| | Considers | Reduce pricing confusion | Add comparison table on landing page | Small | | Tries | Accelerate aha moment | Onboarding tour with quick win | Medium | ### 9. Visual (mermaid diagrams) Produce mermaid diagrams when feasible; markdown tables are always the valid fallback. **Master diagram:** a mermaid `timeline` or `flowchart` covering the full journey. Use timeline for linear journeys; flowchart for branching journeys with decision points. **Sectional diagrams:** for journeys with 5 or more stages, also produce a focused mermaid block per stage (or per 2-3 stages) to avoid visual crowding and rendering failures. For multi-actor journeys, mermaid is simplified or omitted; parallel markdown tables (one per actor) are preferred. Example master diagram: ``` timeline title Customer Journey Discovers : Sees ad : Lands on website Considers : Reads pricing : Watches demo Tries : Signs up : Onboarding Decides : Upgrades or churns ``` ### 10. Research gaps (explicit) What is the map NOT addressing because data is unavailable? What follow-up research would close the most important gaps? ## Refusal protocols You refuse to produce a journey map without minimum input quality. Specifically: 1. **No persona or scope.** "I need to know whose journey this is and what they're trying to accomplish. Provide a persona (or persona summary) and the goal." 2. **Fabricate emotional data without research.** If user asks "what does the customer feel here?" without providing research signal: "I can suggest hypothetical emotions, but they will be labeled Hypothesis (Confidence: Low) and recommended for validation. Want to proceed with hypothesis-mode, or do you have research data to ground this?" 3. **Service blueprint or architecture diagram request.** This skill covers user-experience artifacts: journey maps, user flows, and funnels as user-experience lenses. It does NOT produce service blueprints, operational diagrams, or system architecture maps. If user asks for a service blueprint: "Service blueprints map operational processes and back-stage activities - this skill covers the user-experience side. For a service blueprint, use a diagramming tool directly. Want to continue with a user journey map instead?" Note: funnels viewed as a user-experience lens (what does the user feel and do at each funnel stage?) ARE within scope. 4. **Excessive scope.** End-to-end journey for a long-lifecycle product (e.g., 5 years of B2B SaaS engagement) is too coarse to be useful. Refuse: "End-to-end over 5 years is too coarse. Pick a phase: pre-purchase (discovery to first contract), onboarding (signup to first value), expansion (renewal + cross-sell), or off-boarding (churn signals + recovery)." 5. **Single touchpoint as the whole journey.** If user provides only one touchpoint (e.g., "checkout"): "A single touchpoint isn't a journey. Either expand to the surrounding stages (e.g., browse + add-to-cart + checkout + post-purchase) OR switch to a different artifact like `deliver-edge-cases` for the checkout flow specifically." If that skill is not available in the environment, say so rather than leaving a bare pointer, and describe the alternative in plain language: enumerate the flow's failure and boundary conditions, one row per condition, with the expected handling for each. ## Patterns ### Linear journey (default) Single sequence: Stage 1, Stage 2, Stage 3, etc. Customer moves from start to end. Use for purchase journeys, onboarding flows, support resolution paths. ### Cyclical journey Recurring loop. Customer returns to a stage on a cadence. Use for renewal cycles, engagement loops, recurring task workflows (e.g., monthly QBR cycle for B2B customer). ### Multi-actor journey (advanced) Multiple personas with intersecting journeys (e.g., buyer + influencer + user in B2B). Show parallel tracks with intersection points. **This is an advanced pattern.** Use sparingly; complex to maintain. In multi-actor runs: use parallel markdown tables (one per actor) with shared touchpoints annotated; mermaid is simplified or omitted; include a complexity warning in the output noting that multi-actor journeys are harder to validate and research depth should prioritize the primary actor. ## Cross-skill composition - Output of this skill feeds into: `define-problem-statement`, `define-hypothesis`, `define-opportunity-tree` (each stage's pain or moment of truth can become a problem statement) - Inputs to this skill often come from: `foundation-persona` (the WHO), `discover-interview-synthesis` (qualitative signal), `measure-survey-analysis` (quantitative signal) - Visualizes via: `utility-mermaid-diagrams` (timeline or flowchart) - Adversarial review via: `utility-pm-critic` (challenges where emotions and moments of truth lack research evidence) ## Output Format Use the template in `references/TEMPLATE.md` to structure the output. See `references/EXAMPLE.md` for a complete worked example. ## Quality Checklist Before finalizing, verify: - [ ] Persona and scope are stated explicitly - [ ] 3-7 named stages, each with goal, duration, trigger, exit criterion - [ ] Every emotional-curve entry carries a confidence label and a source (or is marked Hypothesis) - [ ] Moments of truth are limited to the 3-5 that decide continue-vs-abandon, not every interaction - [ ] Each opportunity ties to a specific pain point or moment of truth - [ ] Mermaid diagram is present when feasible, with markdown tables as fallback - [ ] Research gaps are stated explicitly ## Cross-references - Template: `references/TEMPLATE.md` - Examples: `references/EXAMPLE.md` + library samples in `library/skill-output-samples/discover-journey-map/`
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.