screen-transition-diagram
SKILL.md
Screen Transition Diagram Skill
このSkillは、Web/アプリの「画面(ページ)」をノード、ユーザー操作や条件を矢印として、実装/QAに耐える画面遷移図を作るための手順です。
Output Contract(必ずこの形で返す)
- スコープ/粒度宣言(A/B/Cのどれか + ユースケース範囲 + レベル)
- 前提(Assumptions)(不明点は仮置きして明示)
- 画面カタログ(表):
ScreenID / 画面名 / 役割 / 状態(空・エラー等) / 入口or出口 / ルート(任意) - 遷移カタログ(表):
From / To / トリガー / 条件 / 結果(成功・失敗) / 備考 - Mermaid(flowchart):図(必要ならL0/L1/L2で複数)
- レビュー用チェックリスト(resources/checklist_review.md をベースに)
- 未確定事項(Questions):次に埋めるべき確認事項
粒度の選び方(最初に決める)
- A. 情報設計寄り:画面名+遷移が中心(注釈最小)
- B. 仕様寄り:ログイン状態/権限/バリデーション/エラー/空状態まで記載
- C. デザイン寄り(Wireflow):画面の簡易ワイヤー相当の注釈(Figma Frame参照など)を追加
ユーザーから粒度指定がない場合は、**まずB(仕様寄り)**で作り、過剰ならAに落とす。
手順(再現可能な作り方)
0) 最小インプットの確保
ユーザー入力が足りない場合は resources/template_minimum_input.md をそのまま貼って埋めてもらう。 ただし「今すぐ作って」が強い場合は、仮置き前提で作成→未確定事項に回す(質問だけで止めない)。
1) ユースケースで分割(スパゲッティ回避)
- まず L0: 全体(入口→主要ハブ→出口)
- 次に L1: 機能/フロー別(例:ログイン、作成、購入、設定)
- 必要なら L2: 詳細(例外/分岐/状態) 図が読めない密度になったら、迷わず分割する。
2) 画面の洗い出し → 画面ID採番
- 画面IDは
S-010のように 10刻み(あとで差し込みやすい) - 同じ画面の「別状態」は増殖させすぎない
- 例:一覧の空状態は
状態列と注釈で表す(必要なら分ける)
- 例:一覧の空状態は
3) 主経路(Happy Path)を先に繋ぐ
入口(Entry)→ゴール(Goal)を最短で繋いだ図をまず完成させる。
4) 例外系・戻り導線を追加(必須)
最低限これを入れる:
- ログイン失敗
- 権限不足
- バリデーションNG
- 通信失敗/タイムアウト
- 空状態(データなし)
- 戻る/キャンセル/閉じる
5) 矢印ラベルを埋める(解釈割れ防止)
矢印ラベルは原則この形式:
操作 / 条件 / 結果例:保存 / バリデーションOK / 詳細へ保存 / NG(必須未入力) / エラー表示して同画面
6) Mermaid化(表→図の順が崩れにくい)
まず「画面カタログ」「遷移カタログ」を作り、そこからMermaidへ落とす。
Mermaid表記ルール(推奨)
- ノード表示:
S-010: 画面名 - 分岐:
{}(例:確認ダイアログ、権限分岐) - ループ:失敗時は同画面に戻す矢印を明示
- 役割が複数:
subgraphでスイムレーン風に分ける(必要時のみ)
Mermaidテンプレ(単一フロー)
flowchart LR
S010[S-010: Entry] -->|操作 / 条件 / 結果| S020[S-020: Next]
S020 -->|失敗: 理由| S020
S020 -->|成功| S030[S-030: Goal]
Mermaidテンプレ(役割別レーン)
flowchart LR
subgraph User["Role: User"]
U010[S-010: ...]
end
subgraph Admin["Role: Admin"]
A010[S-110: ...]
end
U010 -->|申請| A010
既存仕様の更新(差分最小)
ユーザーが「修正して」「追加して」と言ったら:
- 変更点の要約(箇条書き)
- 画面/遷移カタログの差分
- Mermaidの差分(該当部分のみ再掲) の順で出す。
Examples(発動例)
Example 1: ゼロから作る
User: 「投稿フローの画面遷移図を作って。未ログインはログインへ。下書き保存あり。」 Assistant (you):
- 粒度Bで宣言 → 画面カタログ/遷移カタログ → Mermaid(Happy→例外→戻り)→未確定事項
Example 2: 複雑なので分割
User: 「購入・配送・返品まで全部の遷移を1枚で」 Assistant (you):
- L0全体 + L1(購入/配送/返品)に分割してMermaidを複数出す(スパゲッティ回避)
Example 3: 既存Mermaidの更新
User: 「このMermaidに『権限不足』を追加して」 Assistant (you):
- 差分方針 → 追加ノード/矢印 → 変更箇所だけのMermaid再掲
Linked Resources(必要時だけ読む:progressive disclosure)
Weekly Installs
4
Repository
superstone-han/dotfilesFirst Seen
Jan 30, 2026
Security Audits
Installed on
cline4
gemini-cli4
codebuddy4
github-copilot4
codex4
continue4