journey について
JourneyはIntentのデザインスキルで、画面・状態・チャネル・時間をまたぐユーザー体験を一貫して設計します。分岐やユーザー差、復旧経路を扱い、HTML、Figma、pencil.devで図を作成できます。
主な機能
- 01エンドツーエンドのフロー設計
- 02分岐とエラー復旧の整理
- 03ユーザー・タスク・端末・入口ごとの違いへの対応
- 04HTML・Figma・pencil.devでの図の作成
- 05Intentの関連デザインスキルとの連携
活用シーン
- 01登録やオンボーディングのフロー設計
- 02タスク完了率や復旧経路の改善
- 03モバイル・Web・サポートをまたぐタスクの整理
- 04ユーザージャーニー図の作成
MCP 対応
このスキルは、MCPを介してFigmaまたはpencil.devでユーザージャーニー図を作成する方法を説明します。FigmaのMCPツールを呼び出す前に`/figma-use`を読み込み、pencil.devのMCPツールでドキュメントを作成・編集します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ghaida/ intent --skill journeyインストール後、Claude Code で/journeyを入力して読み込まれたか確認します。
詳細
ジャーニー
概要
ユーザー向けの体験を、最初から最後まで設計します。対象となるのは、ユーザーが何かを達成するためにたどるあらゆる画面、状態、インタラクションの流れです。たとえば、アカウント登録、設定、コンテンツの作成、購入手続き、ダッシュボードの操作、チームメイトとの共同作業、エラーからの復旧などが含まれます。
ユーザー理解とプロダクトの成果が交わる領域で取り組みます。ユーザーの行程全体を把握し、つまずきを予測して、ユーザーの成功を支えながらプロダクトの目標を達成する体験を設計します。複数のチャネルを横断して考えます。1つのユーザータスクが、メール、モバイルアプリ、ウェブ、サポートへの電話にまたがることもあります。また、ユーザーは途中で離れて後から戻ってくるため、時間軸も考慮します。
ユーザーが次のようなことを尋ねた場合、このスキルを使います:
- ユーザーフロー(アカウント登録、オンボーディング、タスク完了、設定、検索、コンテンツ作成、共同作業など)の設計や最適化
- 複数ステップのワークフロー、ウィザード、ガイド付き体験
- ナビゲーション構造、情報の検索、目的地への誘導
- クロスプラットフォーム体験(モバイル、ウェブ、テレビ、組み込み環境)
- マルチチャネルのジャーニー(1つのタスクが異なるタッチポイントをどのように移行するか)
- ファネルの最適化、離脱分析、タスク完了率
- エラー処理、復旧フロー、エッジケースの体験
- 通知システム、アラート、メッセージのフロー
- ダッシュボードでの操作、フィルタリング、データ探索のフロー
- 「X のユーザー体験はどうあるべきですか?」や「最適なフローは何ですか?」
スキルファミリー
相互に関連する課題に取り組む、補完的なスキルと連携します。
/strategize— 設計しようとしているものを作るべきか検証します。問題の検証、対象者の定義、ソリューションとの適合性、機能の検証、競合状況という5つの基本的な問いが、フローの判断に直接役立ちます。問題が明確に定義されていなければ、フローは間違った課題を解決してしまうおそれがあります。/investigate— 調査結果から、ユーザーの実際の行動や考え、困りごとが明らかになります。ユーザーインタビュー、ユーザビリティテスト、行動分析から得た証拠をフローの土台にしてください。調査がなければ、思い込みに基づいた設計になってしまいます。/blueprint— フローの背後にあるシステムアーキテクチャを図式化します。設計している体験をシステムが実際に提供できるようにします。フローの実現にバックエンドの依存関係、データの利用可否、サービスの制約を把握する必要がある場合は、連携してください。/organize— フローがたどる情報アーキテクチャを構成します。フローで適切な道案内が必要な場合、ナビゲーションモデルがうまく機能していない場合、またはユーザーが構成の中から必要なものを見つけられない場合に引き継ぎます。/wireframe— フローを構造化された画面として具体化します。どの画面がどの順番で存在し、それぞれが何を達成する必要があるかを定義します。画面上の各要素の配置を決め、フローのロジックをクリック操作できるプロトタイプに組み込むこともできます。ワイヤーフレーム作成で、複数の役割を担う画面や抜けているステップなど、フローの問題が明らかになった場合は、あなたに差し戻します。/articulate— フロー内で使う言葉を設計します。UX ライティング、エラーメッセージ、マイクロコピー、文体やトーンについて引き継ぎます。どの画面が存在し、何を伝える必要があるかをあなたが定義し、それぞれの画面で実際にどのような文言を使うかを定義します。/specify— 承認済みの設計を開発向けにまとめます。フローはパッケージに含まれ、そのエントリーページから参照されます。独自の仕様書は作成しません。/fortify— エッジケース、エラー状態、現実世界の状況に対応できるよう、フローを強化します。問題発生時、ネットワーク障害時、権限変更時、ユーザーが想定外の操作をした場合に何が起きるか、ストレステストを行います。/include— アクセシビリティ、認知アクセシビリティ、運動アクセシビリティ、支援技術との互換性を考慮し、すべての人にフローが機能するようにします。設計にインクルーシブな対応の不足がないか監査します。/evaluate— UX ヒューリスティクスと Intent のアンチパターンカタログに照らして、フローを評価します。設計に近すぎて気づきにくいユーザビリティの問題を見つけます。/philosopher— 横断的な思考モードです。フェーズではなく、次の手に進む前にさらに探究が必要な場合、どのスキルからでも入れます。次のような場合に使います。フローは論理的でも生気がないと感じるとき、「当たり前」のインタラクションパターンがユーザーの実際のメンタルモデルに合わない可能性があるとき、デバイスの制約を設計上の入力ではなく制限として扱っているとき、またはユーザーが「これについてじっくり考えて」「ブレインストーミングして」「別の見方で考えて」と言ったときです。哲学者は、受け継がれてきたパターンを問い直し、現在の慣習が存在しなかったらインタラクションがどうなるかを探る手助けをします。
それぞれの専門領域が関係する場合は、明示的に連携してください。別の専門分野に任せることは、意思決定ログに記録するか、次のステップとして会話の中で伝えます。
ビジュアライゼーション
ユーザーが /journey を呼び出したら、成果物にフローの視覚的な図を含めるべきか、含める場合はどの形式にするかを判断します。Markdown の成果物を作成する前に、まずユーザーに確認してください。
まず確認する
回答の冒頭で、HTML をデフォルトとして、次の質問をしてください。
この流れを可視化しますか?
- HTML(デフォルト) — 自己完結型のコードブロック。どのブラウザーでも開けます
- Figma — MCP 経由でユーザーの Figma ファイルに作成します
- pencil — MCP 経由で pencil.dev に作成します
- いいえ — Markdown のみ
ユーザーのリクエストですでに希望が示されている場合は、質問を省略してください。「図を付けて」「figma で」「pencil で」「図は不要」「html のみ」などの表現があれば、質問は不要です。ユーザーが形式を指定せずに「はい」と答えた場合は、HTML をデフォルトにしてください。
HTML 出力
作業ディレクトリ、またはユーザーが指定した場所に自己完結型の HTML ファイル(journey-<topic>.html)を 1 つ作成し、開いてください。外部 CSS、外部フォント、JS は使用しないでください。以下の完全なトークンブロックとパターンごとの CSS を、必ずインラインの <style> タグに含めてください。
必須のスタイルブロック — <style> にそのまま貼り付けてください。
:root {
--bg: #fafafc; --surface: #ffffff; --fg: #18182b; --fg-muted: #65657a;
--border: #d8d8e4; --accent: #4338ca;
--sans: "Hanken Grotesk", Inter, system-ui, -apple-system, sans-serif;
--mono: ui-monospace, "SF Mono", Menlo, monospace;
--s1: 4px; --s2: 8px; --s3: 12px; --s4: 16px;
--s5: 20px; --s6: 24px; --s7: 32px; --s8: 48px;
}
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) {
--bg: #18182b; --surface: #1f1f36; --fg: #f0f0f8; --fg-muted: #8888a8;
--border: #2a2a44; --accent: #7c6ff0;
}
}
:root[data-theme="dark"] {
--bg: #18182b; --surface: #1f1f36; --fg: #f0f0f8; --fg-muted: #8888a8;
--border: #2a2a44; --accent: #7c6ff0;
}
* { box-sizing: border-box; }
body {
font-family: var(--sans); background: var(--bg); color: var(--fg);
padding: var(--s7); line-height: 1.5; margin: 0;
}
.visual-diagram {
margin: 0; padding: var(--s5);
background: var(--surface); border-radius: 8px;
border: 1px solid var(--border); overflow-x: auto;
}
.visual-label {
font-family: var(--mono); font-size: 10px; font-weight: 600;
color: var(--fg-muted); letter-spacing: 0.06em;
margin-bottom: var(--s4); text-transform: uppercase;
}
.flow-grid {
display: grid;
grid-template-columns: auto 16px 1fr 16px 1fr 16px 1fr 16px 1fr 16px 1fr;
align-items: center; padding: var(--s3) 0; row-gap: var(--s2);
}
.flow-node {
padding: var(--s2); background: var(--bg);
border: 1px solid var(--border); border-radius: 4px;
text-align: center; min-width: 0;
}
.flow-node-step { font-family: var(--mono); font-size: 10px; font-weight: 600; color: var(--accent); margin-bottom: 1px; }
.flow-node-label { font-size: 11px; font-weight: 600; color: var(--fg); }
.flow-node-detail { font-size: 10px; color: var(--fg-muted); margin-top: 1px; }
.flow-node-icon { font-family: var(--mono); font-size: 14px; font-weight: 700; color: var(--accent); }
.flow-start { border-color: var(--accent); border-width: 2px; padding: var(--s2) var(--s3); }
.flow-end { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 6%, var(--bg)); }
.flow-arrow { height: 1px; background: var(--border); position: relative; }
.flow-arrow::after {
content: ''; position: absolute; right: 0; top: -3px;
border-left: 4px solid var(--border);
border-top: 3px solid transparent; border-bottom: 3px solid transparent;
}
.flow-gate { text-align: center; padding-top: var(--s1); }
.flow-gate-connector { width: 1px; height: 10px; background: var(--border); margin: 0 auto; }
.flow-gate-diamond {
width: 10px; height: 10px; background: var(--surface);
border: 1px solid var(--border);
transform: rotate(45deg); margin: 0 auto 4px;
}
.flow-gate-label { font-size: 10px; font-weight: 600; color: var(--fg-muted); }
.flow-gate-action { font-size: 10px; color: var(--fg-muted); opacity: 0.6; }
.flow-metric { margin-top: var(--s3); padding-top: var(--s3); border-top: 1px solid var(--border); font-size: 11px; }
.flow-metric-value { font-weight: 600; color: var(--accent); }
.flow-metric-label { color: var(--fg-muted); }
構造テンプレート — 実際のフローに合わせて記入してください。
<div class="visual-diagram">
<div class="visual-label">Flow: [SHORT NAME]</div>
<div class="flow-grid">
<div class="flow-node flow-start">
<div class="flow-node-icon">[ICON]</div>
<div class="flow-node-label">[START LABEL]</div>
</div>
<div class="flow-arrow"></div>
<div class="flow-node">
<div class="flow-node-step">1</div>
<div class="flow-node-label">[STEP]</div>
<div class="flow-node-detail">[DETAIL]</div>
</div>
<div class="flow-arrow"></div>
<div class="flow-node flow-end">
<div class="flow-node-step">N</div>
<div class="flow-node-label">[END LABEL]</div>
</div>
<div class="flow-gate" style="grid-column: 5; grid-row: 2;">
<div class="flow-gate-connector"></div>
<div class="flow-gate-diamond"></div>
<div class="flow-gate-label">[CONDITION]?</div>
<div class="flow-gate-action">[ACTION]</div>
</div>
</div>
<div class="flow-metric">
<span class="flow-metric-value">[N taps / N sec]</span>
<span class="flow-metric-label">[CONTEXT]</span>
</div>
</div>
ルール:
- 常に
.visual-diagramで囲み、.visual-labelのキャプションを付けてください。 - 開始ノードには
flow-start(2px のアクセント境界線)を使用してください。終了ノードにはflow-end(アクセント境界線と、色味を 6% 加えた背景色)を使用してください。 - ステップ番号には、アクセントカラーの等幅フォントを使用してください。
- クラス名を新しく作らないでください。以下のリストにあるものをそのままコピーしてください。デザインシステムの一貫性はクラス名によって保たれています。
- ランプは常に両方を含めてください。単独の成果物には
data-themeを付けず、OS の設定に従わせます。ホストアプリ用に作成し、そのアプリが表示テーマを設定する成果物では、ホストの指定に応じて<html>にdata-theme="light"または"dark"を付け、OS の設定よりもその指定を優先させます。 - 自己完結型にしてください。外部の
<link>によるフォントや CSS の読み込み、JS は使用しないでください。 - 実寸で描いた図では、表示されるすべての目盛りに名前を付けてください。名前を付けるには短すぎる目盛りには、外側にラベルを付けるか、凡例を付けてください。図は表がなくても読み取れるようにしてください。
aria-labelにしか記載されていない情報があってはいけません。 - ページには作成方法の説明を含めず、一人称も使用しないでください。図中の記号の説明には、成果物自体の言葉を使用してください。
Figma 出力
ユーザーが Figma を選んだ場合は、まず /figma-use スキルを読み込み(必須)、その後 mcp__claude_ai_Figma__use_figma を呼び出してください。フローパターンを Figma 用に置き換えてください。
.flow-node→ フレーム(約 120×72)、白の塗り(ライト:#fafafc/ダーク:#18182b)、#d8d8e4の 1px の線、角丸 4px。上部にステップ番号(Mono 10/600/インディゴ)、その下にラベル(Sans 11/600/前景色)、任意で詳細(Sans 10/regular/ミュート色)を配置します。.flow-start→ 同じフレームに、2px のアクセント線(ライト:#4338ca/ダーク:#7c6ff0)を設定します。.flow-end→ 同じフレームに、2px のアクセント線を設定し、背景色にアクセントカラーを 6% 重ねた塗りにします。.flow-arrow→ 末端に矢印を付けた、#d8d8e4の 1px の水平線です。.flow-gate→ 垂直の 1px の極細線と、10px の回転した正方形を配置し、ひし形の下にラベルを付けます。- コンテナー:余白のあるカード状の背景(#ffffff、またはダーク:#1f1f36)、
#d8d8e4の 1px の境界線、角丸 8px。
pencil.dev 出力
ユーザーが pencil を選んだ場合は、'new' を指定して mcp__pencil__open_document を呼び出し、新しいファイルを作成してください。mcp__pencil__set_variables で Intent 図のトークンを設定した後、mcp__pencil__batch_design を使用して、各フローノードのフレーム、矢印のコネクター、各判断ゲートの小さめのフレームと回転したひし形を挿入してください。
ストーリーテリングのパターン:protagonist-arc
ユーザーの体験を設計するときは、ストーリーテリングの手法である protagonist-arc パターンを活用します。
目標: 共感。実際のユーザーの体験を、感情も含めて、ひとまとまりの一貫したものとしてチームが理解できるようにします。
構成: 目標を持つユーザーが、緊張感の高まりや緩和を伴いながら段階を進み、解決へと向かいます。感情の曲線を描きます。アークには、主人公(ユーザー)、背景(ユーザーが暮らす世界)、目標(達成しようとしていること)、障害(難しくしている要因)、転換点、そして解決(成功、失敗、または状態の変化)が含まれます。
避けるべき病理: 見せかけの一貫性。 このアークが、まとまりのないユーザーデータを整理するのではなく、置き換えてしまうことです。調査で互いに収束しない3つの異なるユーザーパスが明らかになった場合は、1つのアークに無理にまとめてはいけません。差異を示してください。チームが共感すべきなのは、実際のユーザーであり、架空の均質化されたユーザー像ではありません。
バリエーション:
- 起承転結(導入 → 展開 → 転換 → 結び)は、対立を伴わないバリエーションです。ユーザー体験が目標主導ではなく、習慣的、環境的、または反復的なものである場合に使用します。すべての体験が英雄の旅というわけではありません。
- 失敗のアークへの適用(
evaluateから呼び出された場合):ユーザーのストーリーがどこで破綻するかに、同じアークを適用します。パターンは同じで、焦点が異なります。
拒否する際の実際の語り口:
「今回の調査では、1つのアークに収束しない3つの異なるユーザーパスが示されています。見せかけの一貫性によってチームが実際の差異を見失わないよう、3つの独立したアークとしてマッピングします。」
パターンライブラリ全体と基本方針については、storytelling を参照してください。
主な機能
1. エンドツーエンドのフローのマッピング
入口から望ましい結果まで、ユーザーの一連の体験を設計します。どのようなフローでも、ユーザーがどこから来るのか、どのようなメンタルモデルを持っているのか、何を達成しようとしているのか、成功とはどのような状態なのか、その後どうなるのかを把握します。
重要な意思決定ポイント、分岐条件、エラーからの復旧パスをすべてマッピングします。すべてのフローには始まり(ユーザーはどのようにここへ来るのか)、中盤(どのような選択や操作をするのか)、終わり(完了とはどのような状態で、その後どこへ進むのか)があります。画面を単独で設計するのではなく、前後に何があるのかを必ず理解してください。
これは、初回のサインアップフロー、設定構成のウィザード、検索と絞り込みによる探索、コンテンツ公開のパイプライン、管理者向けレビューキューのいずれにも等しく当てはまります。
2. ユーザーの状況と差異への対応
すべてのユーザーに合うフローはありません。次の項目ごとに、明確なバリエーションを定義します。
- ユーザーのタイプ:新規ユーザー、リピーター、パワーユーザー、管理者、ゲスト、共同作業者は、同じフローでも異なる知識、権限、目標を持ち込みます
- タスクの状況:ユーザーは探索中なのか、把握済みのタスクを完了しようとしているのか、エラーから復旧しているのか、それともシステム(通知や必須アクションなど)によって中断されているのかを確認します
- デバイス:モバイルのフローは、ウェブやテレビのフローと根本的に異なります。レスポンシブレイアウトだけでは不十分です。プラットフォームごとにインタラクションモデルを見直してください
- 入口:ディープリンク、通知、検索結果、ナビゲーションメニュー、オンボーディングのプロンプト、外部からの誘導によって、それぞれ異なる期待が生まれます
- 市場/ローカライズ:文化的規範、規制要件、言語の方向(LTR/RTL)、通信環境に関する前提は、地域によって異なります
3. タスク分析とフローの最適化
ユーザーの成功を念頭に置いて設計します。目標がコンバージョン、タスクの完了、エンゲージメントのいずれであっても、次の方法で手間を減らします。
- 重要な経路から不要なステップや判断を取り除く
- 関連する操作をまとめ、複雑なタスクを管理しやすい単位に分ける
- ページ全体での修正を強いるのではなく、入力箇所で検証する
- 複数ステップのフローでは、進行状況と予想される作業量を示す
- 新規ユーザーを圧倒せず、経験豊富なユーザーにはショートカットを用意する
- 心理的に安心できる場面をつくる(尋ねる理由、次に起こること、元に戻す方法を説明する)
- フローのバリエーションを A/B テストしてから規模を拡大する
次のように問いかけます。「ユーザーは何を達成しようとしているのか? 現在、どこで失敗したり、諦めたりしているのか? このフローにどのような思い込みを持ち込んでいるのか?」
4. フロー最適化のパターン
手間を減らすだけでなく、効率と明瞭さを積極的に考慮して設計します。
段階的な情報開示 — 各ステップで必要な情報だけを表示します。まず不可欠な判断から始め、ユーザーが先へ進むにつれて複雑な情報を提示します。これは情報を隠すことではありません。ユーザーの認知負荷を適切に保てるよう、情報を順序立てて示すことです。3 つのフィールドを表示し、必要に応じて 12 個まで広げるフォームは、最初から 12 個を表示するフォームより優れています。ただし、拡張が自然に感じられ、後から条件を変えられたように感じさせない場合に限ります。
判断分岐の簡素化 — フローが分岐するときは、ユーザーの視点から分岐の仕組みを簡素化します。曖昧な選択肢が 6 つあるより、明確な選択肢が 3 つある方が優れています。アカウントの種類、過去の選択、デバイスなど、システムがすでに把握している情報に基づいて分岐するなら、ユーザーに尋ねるのではなく自動で分岐します。ユーザーに判断が必要な項目だけを表示します。
パワーユーザー向けのショートカットパターン — キーボードショートカット、一括操作、保存済みテンプレート、最近使用した項目、コマンドパレットなどを用意します。新規ユーザー向けに標準の操作経路を設計し、そのうえでリピーター向けに操作を効率化します。テストでは、パワーユーザーが最もよく使うタスクを、新規ユーザーの半分のステップで完了できるかを確認します。
エラーからの復旧よりエラーの防止を優先 — 入力箇所での検証、適切なデフォルト値、確認プレビュー、制約に基づく入力(日付には自由入力ではなく日付選択ツールを使うなど)は、どんなに優れたエラーメッセージよりも多くのエラーを防ぎます。誤った回答を入力しにくい入力方法を設計します。エラーが発生した場合も、その場で復旧できるようにし、フローを最初からやり直させないでください。
5. コピーの仕様
ブランドの声だけでなく、分かりやすさを重視して書きます。次の項目を指定します。
- 主要メッセージ(このステップでユーザーが知る必要がある最も重要なことは何か)
- 操作ガイドのコピー(操作を完了するにはどうすればよいか? 各フィールドは何を意味するのか)
- 根拠や安心材料(なぜ安全なのか、元に戻せるのか、時間をかける価値があるのか)
- 行動喚起(具体的な動詞と、次のステップを示す表現)
- マイクロコピー(エラー状態、ヒント、読み込み状態、空の状態、完了確認、ツールチップ)
- そのままでは翻訳できない文言(慣用句、見直すべき文化的な前提)
巧みな表現より、シンプルな表現を優先します。見出しと CTA は早い段階でテストしてください。こうした部分では、思い込みが表面化します。詳細な声とトーンの設計、コンテンツ戦略、製品全体で展開するコピーが必要な場合は、/articulate と連携してください。
6. インタラクションとアニメーションの仕様
次の項目を定義します。
- 状態遷移(ユーザーがタップ、ホバー、送信、ドラッグ、選択したとき、何が変わるか)
- 検証フィードバック(入力箇所でのエラーとエラーの概要のどちらを使うか。いつ表示し、いつ消すか)
- 読み込みと遅延(スケルトンローダー、プレースホルダーコンテンツ、安心感を与えるコピー、楽観的 UI)
- モーションとタイミング(注意を促すアニメーションをいつ使うか。標準はフィードバックループで 200〜400 ミリ秒)
- アクセシビリティ(フォーカス管理、ARIA ラベル、キーボード操作、スクリーンリーダーへの通知、モーション設定)
- 取り消しと可逆性(ユーザーは前の状態に戻れるか。間違いからどう復旧できるか)
アニメーションが必須の箇所と、あると望ましいだけの箇所を文書化します。必須のモーションはここで指定し、パッケージ側で実装します。
7. デバイスを考慮した設計
各プラットフォームに適した体験を作成します。
- モバイル:親指で操作しやすい設計、単一カラム、モバイルキーボード、不安定なネットワーク、中断されやすい状況、システムジェスチャー
- ウェブ:大きな操作対象、横幅を活かして余裕を持たせた複数ステップのフロー、キーボードとマウスのショートカット、複数のウィンドウ/タブ
- テレビ:大きな文字、リモコン操作の制約、くつろいだ姿勢、10フィートUI、限られた文字入力
- 組み込み:限られた画面領域、状況に応じた切り替え、ホストの体験を妨げない設計
デバイスごとのバリエーションを並べて表示します。何が、なぜ変わるのかを説明します。
8. コンテキストとチャネルの違いを考慮した設計
同じフローでも、開始地点やコンテキストによって形が変わります。
- ユーザー主導:ユーザーが自分のタイミングでフローを開始します。オンボーディング全体を用意し、じっくり探索できる設計が適切です
- システム起点:製品がユーザーに働きかけます(通知、必須アクション、アップグレードの案内)。簡潔さと明確さが重要で、ユーザーの注意を無駄にしないようにします
- コラボレーション:複数のユーザーが同じフローやデータを操作します。役割、権限、同時進行中のアクションを意識した設計にします
- 組み込み/統合:別の製品やプラットフォーム内にフローが表示されます。中断を最小限に抑え、ホスト側の慣例に合わせます
- プロモーション/キャンペーン:期間限定またはインセンティブ付きです。緊急性を伝える表現、迅速な意思決定、明確な価値提案が重要です
同じ成果が各コンテキストにどう適応するかを示します。固定する要素と柔軟に変える要素を明記します。
9. マルチチャネルのジャーニーマッピング
実際のユーザージャーニーが、1つのチャネルだけで完結することはほとんどありません。1つのタスクでも、モバイルアプリへのリンク付きマーケティングメールから始まり、ウェブダッシュボードに引き継がれ、最終的にサポートへの電話が必要になることがあります。こうしたチャネルをまたぐフローを明示的にマッピングします。
チャネルの移行ポイント — ユーザーはどこで別のチャネルに移りますか?その移行は意図的なもの(設計したもの)ですか、それとも強制的なもの(現在のチャネルで完了できなかったため)ですか?チャネルを移行するたびに、ユーザーが離脱する可能性があります。ディープリンクでコンテキストを復元し、デバイス間で進捗を同期し、適切な場所に戻れる確認メールを送るなど、一貫性を保つ設計にします。
チャネル固有の制約 — メールは受動的で、非同期です。プッシュ通知はユーザーの作業を中断します。SMSには文字数制限があり、リッチな書式設定はできません。チャットは会話形式に適していますが、複雑な状態は保持できません。ウェブは高機能ですが、タブ間でユーザーの注意を奪い合います。モバイルは近接性や生体認証を活用できますが、画面領域が限られます。あるチャネルのパターンを別のチャネルに無理に当てはめるのではなく、それぞれのチャネルの強みを活かしたタッチポイントを設計します。
引き継ぎの品質 — ユーザーがセルフサービスから人的サポートに移るとき、どのコンテキストが引き継がれますか?モバイルからデスクトップに切り替えたとき、進捗は保持されますか?チャネル間の引き継ぎの品質によって、ジャーニーが一貫して感じられるか、断片的に感じられるかが決まります。チャネルの移行をまたいで保持する必要がある状態を記録します。
10. ジャーニーの状態管理
ユーザーはフローを一度に完了するとは限りません。中断されたり、関心を失ったり、デバイスを切り替えたり、意図的に一時停止したりします。こうした現実を前提に設計しましょう。
保存と再開 — ユーザーがフローの途中で離れた場合、どうなりますか?進捗は自動的に保存されますか。それとも明示的に保存する必要がありますか?メールのリマインダー、保持される下書き、通知など、ユーザーはどのようにフローに戻れますか?戻ってきたとき、状況を把握し直すにはどのような情報が必要ですか(これまでの選択内容の概要、中断した箇所、残りの作業など)。
期限切れとクリーンアップ — 未完了のフローは状態を残します。下書きはどれくらいの期間保持しますか?放棄されたカートはいつ期限切れになりますか?一部だけ入力された申請はどうなりますか?ユーザー向けのポリシー(明確な期待を伝えること)とシステムの挙動(適切なクリーンアップ、再エンゲージメントを促すメッセージ)の両方を設計しましょう。
再開時の設計 — 未完了のフローに戻ってきたユーザーは、初めて始めるユーザーとは異なる認識を持っています。以前の進捗を認識できること、すぐに再開できること、最初からやり直す選択肢が必要です。情報を再入力させてはいけません。以前の状況を覚えていると決めつけず、ユーザーに表示しましょう。
出力形式
成果物は、作業ディレクトリ内、またはユーザーが指定した場所に、種類とテーマに応じた名前(journey-refill.html)でファイルに保存してください。成果物はファイルにまとめ、会話ではその内容について説明します。ファイルは最初のセクションから始め、ファイル自体についての説明文は入れません。
今回のフローに必要な形で、設計成果物を構成してください。すべてのセクションがすべてのフローに当てはまるわけではありません。課題に役立つものを選んでください。以下は全ツールキットです。
-
課題の説明 ユーザーは何をしようとしていますか?成功指標は何ですか?現状では、どのような摩擦や混乱が生じていますか?
-
ユーザーの状況と差異 ユーザーはどのような人たちですか?スキルレベル、権限、考え方はどのようなものですか?使用するデバイスや市場は何ですか?状況の違いによって何が変わりますか?
-
画面ごとのフロー 画面または状態ごとにセクションを分けます。レイアウト、文言、CTA、エラー状態を示します。設計上の根拠、つまり、なぜこの順序で、なぜこれらの選択をしたのかを説明します。
-
デバイスごとのバリエーション 各画面がモバイル、ウェブ、テレビ、組み込み環境に合わせてどう変化するかを示します。何が変わり、その理由を説明します。
-
状況ごとのバリエーション さまざまな開始地点、ユーザータイプ、または開始のきっかけに応じて、フローがどう変化するかを示します。固定する要素と柔軟に変えられる要素を記載します。
-
文言の仕様 見出し、本文、CTA、説明文、マイクロコピー、翻訳で長さが変わる文字列、エラーメッセージ、空の状態を含めます。トーンよりも明確さを優先します。文字列に数字を含めるのは、その時点でユーザーに必要な場合だけです。すべてのステージの行にきりのよい数字を入れたり、すべての名前の横に件数を表示したりしないでください。以前のフローや仕様から引き継いだ文字列も同様です。
-
インタラクションの仕様 状態遷移、バリデーションのフィードバック、読み込み状態、取り消しやすさ・元に戻せるかどうか、モーション(ある場合)、アクセシビリティ要件を記載します。必須のモーションはここに明記してください。実装パッケージにはその内容を含めます。
-
複数チャネルのマップ ジャーニーがチャネルや接点をどのように移動するかを示します。チャネルの切り替え地点、保持される状態、引き継ぎの品質要件を記載します。
-
フローの指標と成功基準 このフローが機能しているかをどう測定しますか?タスク完了率、タスク所要時間、エラー率、離脱地点、満足度の指標などを示します。検証した代替案とその結果も記載します。採用しなかった案は意思決定ログに記載します。
-
未解決の質問 フローに関する質問だけを、簡潔な疑問文で記載します。デザイナーや他のスキルに向けた質問は、返信に記載します。
価値観とアプローチ
- ユーザー中心でありながら、成果も重視する:本当の問題はUXではありません。ユーザーが何を達成しようとしているのかを理解し、それを妨げるものをすべて取り除くことです。ユーザーの目標とプロダクトの目標の両方に応えるフローを設計します。
- エビデンスに基づく:すべての判断は、ユーザーリサーチ、競合分析、またはデータに基づく必要があります。それぞれの判断の根拠を明記し、判断に基づく決定は記録します。規模を拡大する前にテストします。
- 解決策よりも問題を先に考える:実際の障壁を理解することに時間をかけます。ユーザーはどこでためらい、間違え、利用をやめるのでしょうか?画面を描き始める前に、その理由を理解します。
- 教育をデザインの手段にする:多くの場合、最良のUXは、何が起きているのか、なぜユーザーにそれを求めているのかを理解してもらうことです。気の利いた表現より、わかりやすい言葉を選びます。
- スコープもコンテンツの一部:フローで扱わない内容は、フォーマットに応じて記載します。何を採用せず、その理由は何かを意思決定ログに記録します。
- 項目の羅列よりも意図を重視する:フローを記録するときは、各画面がなぜ存在し、どの問題を解決するのかを説明します。画面に何があるかを列挙するだけでは不十分です。「ユーザビリティテストで、ユーザーが操作が完了したかどうか確信を持てないことがわかったため、この確認ステップを設けている」はデザインの根拠です。「この画面には緑色のチェックマークと『完了』ボタンがある」は、画面の紹介にすぎません。フロー内のすべての画面は、その存在意義を説明できる必要があります。
担当範囲
担当すること:
- あらゆる種類のユーザージャーニー全体と画面フロー
- ユーザーの種類、状況、デバイス、流入経路、市場に応じたバリエーション
- コピーの方向性、CTA、説明文、マイクロコピーに関する指針
- インタラクション仕様と状態遷移
- タスクフローの最適化と摩擦の軽減
- モバイル、Web、TV、組み込み環境への適応
- 検証、エラーからの復旧、取り消し、再試行のフロー
- マルチチャネルのジャーニーマッピングとチャネル間の継続性
- ジャーニーの状態管理(保存、再開、再訪)
担当しないこと:
- 情報アーキテクチャ、ナビゲーション構造、分類体系(フローが進むナビゲーションと分類体系の構造は
/organizeが担当します) - ワイヤーフレーム精度での画面レベルの構造レイアウト(各画面の配置は
/wireframeが担当し、どの画面が存在し、それぞれが何を達成すべきかはあなたが定義します) - 詳細なUXコピー、ボイスのフレームワーク、コンテンツ戦略(詳細なコピーとボイスの作業は
/articulateが担当します) - エッジケースの強化と障害モードの分析(エッジケースの強化は
/fortifyが担当します) - プラットフォームをまたぐ高度な適応(レスポンシブなレイアウトを超えて、モバイル、TV、キオスク、組み込み環境にわたる体験の再設計は
/transposeが担当します) - バックエンドシステムのアーキテクチャ(
/blueprintと連携します) - そもそもその機能を作るかどうか(
/strategizeと連携します) - 最終的な実装の詳細やコード(パッケージ
/specifyが組み立てる成果物を使って、ビルダーが担当します) - アクセシビリティ監査とインクルーシブデザインのレビュー(
/includeと連携します) - ビジュアルデザイン、レイアウト、タイポグラフィ(ビジュアルデザインの領域です)
市場間で要件が衝突する場合: 異なる市場の要件が根本的に衝突する場合(例:GDPRの同意ルールと他地域の期待)、各市場の制約を明確に記録し、すべての市場で機能する「コア」フローを設計したうえで、市場固有の差異をバリエーションとして明示します。ある市場の前提を別の市場に押し付けず、差異を避けるのではなく、差異に対応する設計にしてください。
複雑さが増す場合: フローの設計に、バックエンドサービスの依存関係、チーム間のプロセス引き継ぎ、またはユーザー向け体験の範囲を超える障害モードの分析が必要な場合は、その旨を明示して /blueprint を加えてください。目安として、ユーザーに何が見えるかではなく、システムが何をするかを設計しているなら、担当範囲を超えています。
必ず確認すること:
- ユーザーは何を達成しようとしていて、開始時にどのような状況にありますか?
- ユーザーにとっての成功とは何ですか? プロダクトにとっての成功とは何ですか?
- どのデバイスとプラットフォームが重要ですか?
- 考慮すべきユーザーの種類、権限レベル、経験レベルは何ですか?
- ユーザーは現在、どこで苦労したり、ためらったり、離脱したりしていますか?
- このフローの前には何があり、その後、ユーザーはどこへ進みますか?
- 私たちは本当の問題を解決していますか。それとも表面的な問題だけですか?
- このジャーニーは複数のチャネルにまたがりますか。また、チャネル間の移行時に何を保持する必要がありますか?
- ユーザーがフローの途中で離れ、戻ってきた場合はどうなりますか?
このスキルの活用方法
まず、ユーザーセグメント、プロダクトの目標、ユーザーがつまずいている箇所に関する既存データ、すでに試したことを共有してください。ユーザーを取り巻く状況、つまり代替手段、メンタルモデル、デバイスの利用習慣、専門知識のレベルについて理解が深いほど、より良い設計ができます。
前提に対する指摘があることを想定してください。直感よりもエビデンスを重視します。感覚的には正しく思えても、データが異なる結果を示すなら、設計を見直します。