Product design skills

journey-mapper

Scans a codebase and generates a self-contained HTML service-design journey map — NN/g combined customer journey + service blueprint format. Use when the user wants to map user journeys, create journey maps, build service blueprints, or understand user flows from code. Prompts for codebase path if not supplied. Works with any tech stack.

Category
User research
Status
Recommended
Use when
  • map the user journey for this codebase
  • generate a service blueprint from our code
  • build a customer journey map
  • journey mapper
  • understand our user flows from the code
Works on
  • a codebase to scan (path or subdirectory)
  • optional product name and extra context (design docs, research, README)
Produces
  • a single self-contained journey-map.html file
  • actor, category, and journey counts with coverage-gap notes
  • 2-3 standout pain points inferred from error states and friction-heavy flows
Works with
Claude Code, Codex, Cursor, OpenCode, Amp, Gemini CLI, GitHub Copilot, VS Code
Tags
journey-mapping, service-blueprint, user-research, assumption-mapping
Source
joeyvansommeren/journey-mapper by Joey van Sommeren · Apache-2.0 · adapted for this repository
Related skills
customer-journey-mapperservice-blueprintux-research-workflow

Instructions from SKILL.md

Journey Mapper

Reads a codebase, thinks like a service designer, and writes a single browser-ready HTML file with all inferred user journeys and service blueprints.

See REFERENCE.md in this skill's base directory for the JSON schema, NN/g methodology notes, and emotional arc heuristics.

Quick start

If the codebase is not already in scope, ask:

"Which directory should I scan? And where should I save the output HTML?"

Workflow

1. Gather context — ask for anything not already in scope:

InputDefault
Codebase pathRequired — ask if missing
Output pathjourney-map.html in codebase root
Product nameUsed in the HTML title and rail heading
Extra contextDesign docs, research, README, API specs
ScopeFull scan, or specific subdirectory for large codebases

2. Scan the codebase — dispatch Explore, or use Grep + Read for targeted sweeps. Extract:

  • Routes, screens, page components, entry points
  • Auth roles, user types, permission models, tenant structures
  • Onboarding flows, auth gates, redirect chains, feature flags
  • API endpoints, background jobs, third-party integrations
  • Email templates, push notifications, in-app alerts, webhook payloads
  • Error states, empty states, loading patterns, blocked or warning states

For large codebases: routes first → components → API layer → notifications.

3. Organise into NN/g structure — think as a service designer:

  • 2–5 actors — who uses the system (infer from auth roles, user types, API consumers)
  • 3–6 categories — thematic groups (Onboarding, Core workflow, Admin, Recovery, Alternative paths…)
  • 4–12 journeys — one per meaningful end-to-end scenario; cover golden paths first, then error/recovery
  • Each journey → 2–5 stages2–4 moments per stage

Per-moment fields to fill — every inferred value gets [Assumption] prefix:

FieldNotes
doingWhat the user physically does. Factual. No [Assumption].
frontstageWhat they see: UI, email, native prompt. Factual.
backstageWhat the code does behind the scenes. Factual.
supportWhich system, service, or API underpins this. Factual.
thinking[Assumption] — inferred user thought at this moment.
feelingInteger 1–5 (1 = very frustrated, 5 = delighted). Use 2–3 for friction-heavy moments.
pain[Assumption] — inferred friction point.
opportunity[Assumption] — inferred improvement idea.
evidenceLeave blank "" — the human fills this from user research.

See REFERENCE.md for emotional arc heuristics and a worked example.

4. Generate the HTML:

  1. Read TEMPLATE.html from this skill's base directory (shown above when skill loads).
  2. Replace <title>Journey Maps</title> with <title>[Product name] — Journey Maps</title>.
  3. Replace the .rail h1 text Journey Maps with the product name.
  4. Replace only the <script type="application/json" id="journeys-data">…</script> block with your generated JSON.
  5. Write the complete file to the output path. Do not modify anything else in the template.

5. Report back:

  • Path the file was saved to
  • Journey count · moment count · category count
  • Coverage gaps: flows or actor types with thin codebase evidence
  • 2–3 standout pain points inferred from error states, friction-heavy flows, or complex conditionals

Supporting files

3 more files in this skill's folder. Markdown opens as a page, other text files open as source, and anything else downloads as it is.

Next to SKILL.md3

On this page