从第一段对话开始。
Journey 是放在 coding agent 里的用户旅程 skill。你描述人的目标和遇到的问题,它帮助整理成一份能持续更新的地图。
01 安装到你的环境
需要 Git,以及能读取对应 skills 目录的 Claude Code 或 Codex。选择你的环境,把命令粘贴到终端执行。
git clone --depth 1 https://github.com/cguodesign/customer-journey-map-skill ~/.claude/skills/journey
安装后,在项目里开始一段关于用户体验的对话。
02 讲清楚一个人的目标
可以从现有访谈、产品说明或一段具体经历开始。无需先挑字段,也不必提前画完整流程。
使用 journey skill,帮我梳理新用户第一次使用产品的旅程。 先问我必要的问题;把已知事实和你的推断区分开。 从用户的目标、行为和感受开始。
没有真实资料时,也可以先建立草稿,但应当把假设保留下来,等后续观察来确认。
03 找到留下来的地图
旅程通常保存在项目的 .journey/ 目录中。检查 agent 回报的路径,确认文件已经写入。
your-project/
└── .journey/
├── onboarding.md # 里程碑、步骤和来源
└── onboarding.log # 通过脚本写入的变更记录它是你拥有的本地文件,可以放进版本控制。后续对话可以继续读取和修改这份旅程。
04 试着修改一次,再换个视角
我们现在允许用户跳过手机号验证。 请更新对应步骤,说明影响了哪些后续行动。 然后把新旅程生成一个适合评审的交互地图。
你可以要求查看修改、检查缺少的依据,或把旅程表达为简报和工程交接。
看看一次实际的示例修改 ↗字段参考
先选你关心的体验维度,再找对应字段。英文名称用于地图文件,右侧解释它记录什么;所有字段直接展开。
情绪与认知
12 个字段这个人怎么想、怎么感受?
| 字段 / 类型 | 记录什么 |
|---|---|
emotionstring | 具体情绪,例如沮丧、愉悦或焦虑。 |
emotionValencenumber | 情绪的正负倾向,取值为 −2 至 +2。 |
emotionIntensityenum | 情绪强度:低、中或高。 |
thinkingstring | 当事人的内心想法或自我对话。 |
cognitiveLoadenum | 理解和处理信息所需的认知负担:高、中或低。 |
motivationstring | 推动当事人继续前进的动机。 |
anxietystring | 具体的担忧、恐惧或疑虑。 |
expectationstring | 当事人预期接下来会发生什么。 |
truststring | 对服务提供者的信任程度。 |
effortstring | 当事人感受到的投入和费力程度。 |
confidencestring | 当事人对自己正在正确行动的信心。 |
informationNeedstring | 继续下一步所需的信息。 |
空间与渠道
7 个字段体验发生在哪里,通过什么接触服务?
| 字段 / 类型 | 记录什么 |
|---|---|
channelstring | 互动渠道,例如网页、手机、电话或门店。 |
touchpointstring | 与品牌或服务发生互动的具体触点。 |
devicestring | 使用的实体设备。 |
placestring | 所处的实际地点。 |
environmentstring | 环境背景,例如嘈杂、私密或移动途中。 |
physicalEvidencestring | 接触到的实体材料,例如收据、标识或单据。 |
channelTransitionstring | 跨渠道转换与交接的情况。 |
时间
6 个字段这一步用了多久,又等了多久?
| 字段 / 类型 | 记录什么 |
|---|---|
durationstring | 完成这一步所需的时间。 |
waitTimestring | 闲置或等待的时间,不包含有效行动时间。 |
frequencystring | 这一步发生的频率,例如首次、每天或每笔交易。 |
triggerstring | 触发这一步的事件或条件。 |
deadlinestring | 这一步的截止时间或时间压力。 |
pacingenum | 感受到的节奏,例如匆忙、从容或停滞。 |
角色与协作
6 个字段谁参与其中,谁负责交接?
| 字段 / 类型 | 记录什么 |
|---|---|
coActorsarray | 在场或参与的其他人。 |
frontlineStaffstring | 直接面对客户的一线员工。 |
backstageStaffstring | 客户看不到的后台支持人员。 |
responsibleTeamstring | 负责这一步的内部团队或部门。 |
thirdPartystring | 参与的外部合作方或供应商。 |
handoffstring | 人与人、团队与团队之间的交接。 |
行动与行为
8 个字段人做了什么,服务提供了什么?
| 字段 / 类型 | 记录什么 |
|---|---|
doingstring | 当事人实际在做什么,通常用动词描述。 |
frontstageActionstring | 客户能看到的员工行动。 |
backstageActionstring | 客户看不到的员工行动。 |
supportProcessstring | 支持这一步的内部流程。 |
inputRequiredstring | 当事人需要提供的信息或材料。 |
outputProducedstring | 这一步产生或交付的结果。 |
workaroundstring | 用户自行采用的非正式替代办法。 |
decisionstring | 当事人需要作出的选择。 |
系统与技术
8 个字段哪些工具、系统和规则在支撑这一步?
| 字段 / 类型 | 记录什么 |
|---|---|
systemsarray | 涉及的后台系统,例如 CRM 或数据库。 |
toolsstring | 员工或客户使用的工具。 |
technologystring | 支撑这一步的具体技术。 |
dataFlowstring | 哪些数据从哪里流向哪里。 |
automationstring | 哪些部分自动完成,哪些需要手动处理。 |
dependenciesarray | 必须满足的技术依赖。 |
notificationstring | 这一步触发的系统通知。 |
policystring | 约束这一步的业务规则。 |
服务设计层
7 个字段客户看得到什么,背后又发生了什么?
| 字段 / 类型 | 记录什么 |
|---|---|
frontstagestring | 客户能看到的服务内容的综合描述。 |
backstagestring | 客户看不到、但直接支持服务的内容的综合描述。 |
supportProcessesstring | 支撑后台服务的组织流程。 |
lineOfVisibilitystring | 这一步中哪些内容对客户可见,哪些不可见。 |
valueExchangestring | 交换的价值,例如金钱、数据、时间或注意力。 |
serviceRecoverystring | 服务失败时采取的补救行动。 |
orchestrationstring | 多个渠道或参与者如何协同。 |
业务与指标
8 个字段如何衡量这一步的表现与价值?
| 字段 / 类型 | 记录什么 |
|---|---|
kpistring | 这一步的关键绩效指标。 |
metricstring | 具体的量化测量结果。 |
conversionRatestring | 这一步的转化或流失情况。 |
coststring | 提供这一步服务的成本。 |
revenueImpactstring | 产生的收入或面临损失的收入。 |
dropoffRatestring | 在这一步放弃的用户比例。 |
volumePerPeriodstring | 一定时间内的交易或处理量。 |
ownerstring | 这一步的业务负责人。 |
设计与机会
7 个字段哪里值得改善,期望达成什么结果?
| 字段 / 类型 | 记录什么 |
|---|---|
painPointstring | 具体的阻碍、摩擦或问题。 |
opportunitystring | 可以改进的设计或业务机会。 |
momentOfTruthstring | 决定体验成败的关键时刻。 |
insightstring | 与这一步相关的研究洞察。 |
desiredOutcomestring | 当事人希望达成的结果,按待完成任务(JTBD)表述。 |
recommendationstring | 建议采取的具体行动。 |
priorityenum | 优先级,例如必须修复、应该修复或有余力再做。 |
失败与风险
8 个字段什么可能出错,出错后怎么办?
| 字段 / 类型 | 记录什么 |
|---|---|
failureModestring | 可能发生的失败或出错方式。 |
failureProbabilityenum | 发生失败的可能性。 |
failureImpactenum | 失败发生后的影响程度。 |
recoveryPathstring | 失败后可以采取的恢复路径。 |
escalationstring | 需要进一步处理时的升级路径。 |
fallbackstring | 主要方案失败后的备用方案。 |
bottleneckstring | 限制处理能力的瓶颈。 |
riskstring | 已识别的风险。 |
路径与分支
7 个字段接下来去哪,什么条件决定路径?
| 字段 / 类型 | 记录什么 |
|---|---|
nextstring | 这一步之后的步骤。 |
previousstring | 这一步之前的步骤。 |
branchConditionstring | 决定进入哪条分支的条件。 |
parallelPathstring | 同时发生的步骤或路径。 |
entryPointboolean | 是否可以从这里进入旅程,取值为布尔值。 |
exitPointboolean | 是否可以从这里离开旅程,取值为布尔值。 |
optionalityenum | 这一步是必选还是可选。 |
沟通与内容
4 个字段向客户说什么,用什么方式说?
| 字段 / 类型 | 记录什么 |
|---|---|
messagestring | 向客户传达的内容。 |
tonestring | 沟通所使用的语气。 |
contentTypestring | 内容形式,例如帮助文章、视频或提示。 |
ctastring | 向客户呈现的行动引导。 |
无障碍与包容
5 个字段哪些人可能遇到障碍或被排除?
| 字段 / 类型 | 记录什么 |
|---|---|
accessibilityBarrierstring | 残障用户可能遇到的障碍。 |
inclusionConsiderationstring | 哪些人可能被当前设计排除。 |
literacyRequirementstring | 所需的阅读能力或数字使用能力。 |
economicBarrierstring | 费用或资源条件造成的障碍。 |
culturalConsiderationstring | 影响这一步的文化习惯与规范。 |
没有匹配的字段。试试其他关键词,或切回“全部”。
释义依据仓库规范;类型来自 skill 的 schema。想看实际用法? 在示例中检查字段与来源 ↗
常见问题
需要先学会服务设计或字段名称吗?
不需要。先讲清楚场景、人的目标和你掌握的信息,字段随需要出现。字段参考用于深入检查和自定义表达。
地图保存在什么地方?
本地项目中的 .journey/ 目录。无法写文件的环境可以在对话里返回内容,由你保存。具体位置应以 agent 的实际回报为准。
能自动证明某个需求是对的吗?
不能。结构校验检查字段与引用,来源记录帮助追溯判断。真实体验仍然需要研究和验证。
可以用 Notion 或 Drive 多人同时编辑吗?
当前产品以个人在项目中持续维护理解为主。共享存储、多输入合并等团队能力仍在规划中。
安装后还需要运行什么服务吗?
Journey 不是独立的托管服务。它包含 skill 指令、模板和 shell 工具;写入、校验等脚本需要相应的 shell 环境,HTML 输出可在浏览器查看。