claude/skills/requirements-ui-sketch/SKILL.md
画面構成とユーザーフローを整理し、ワイヤーフレームを作成する。ユーザーストーリー作成後、実装前にUIの方向性を固めたい場合に使用。「UIを整理したい」「画面構成を考えたい」「ワイヤーフレームを作りたい」「ユーザーフローを可視化」などのリクエストで起動。
npx skillsauth add skanehira/dotfiles requirements-ui-sketchInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
対話を通じてUIの方向性を整理し、以下を生成する:
対象プロダクトと既存ドキュメントを確認する。
Read({ file_path: "docs/USER_STORIES.md" })
Read({ file_path: "docs/PRODUCT_SPEC.md" })
ファイルが存在する場合:
これらの情報を元に、必要な画面を効率的に洗い出す。
遷移条件: フェーズ2へ
ファイルが存在しない場合: AskUserQuestionで対象プロダクトを確認。
AskUserQuestion({
questions: [
{
question: "どのプロダクト/機能のUIをスケッチしますか?",
header: "対象",
options: [
{ label: "プロダクトを入力", description: "対象のプロダクトや機能領域" }
],
multiSelect: false
}
]
})
遷移条件: コンテキストが把握できたらフェーズ2へ
必要な画面を特定する。
質問パターン:
AskUserQuestion({
questions: [
{
question: "このプロダクトに必要な画面をすべて挙げてください",
header: "画面一覧",
options: [
{ label: "画面を入力", description: "例: ログイン、ダッシュボード、SQL入力、結果表示" }
],
multiSelect: false
}
]
})
| 種類 | 説明 | 例 | |------|------|-----| | 認証系 | ログイン、登録、パスワードリセット | ログイン画面 | | メイン機能 | コア機能を実行する | SQL入力画面 | | 結果表示 | 処理結果を表示 | 改善案一覧 | | 設定系 | ユーザー設定、プロフィール | アカウント設定 | | 管理系 | 管理者向け | ユーザー管理 | | 補助系 | ヘルプ、エラー | 404ページ |
遷移条件: 主要な画面が5-15個出たらフェーズ3へ
画面間の遷移を整理する。
質問パターン:
AskUserQuestion({
questions: [
{
question: "主要なユーザーフロー(画面遷移)を教えてください\n\n例: ログイン → ダッシュボード → SQL入力 → 結果表示",
header: "ユーザーフロー",
options: [
{ label: "フローを入力", description: "画面A → 画面B → 画面C" }
],
multiSelect: false
}
]
})
flowchart TD
A[ログイン] --> B[ダッシュボード]
B --> C[SQL入力]
C --> D{分析実行}
D -->|成功| E[結果表示]
D -->|エラー| F[エラー表示]
E --> G[履歴保存]
F --> C
遷移条件: 主要フローが整理できたらフェーズ4へ
各画面に必要な要素を洗い出す。
AskUserQuestion({
questions: [
{
question: "[画面名]に必要な要素は何ですか?",
header: "画面要素",
options: [
{ label: "要素を入力", description: "例: 入力欄、ボタン、テーブル、グラフ" }
],
multiSelect: false
}
]
})
| 種類 | 説明 | 例 | |------|------|-----| | 入力 | テキスト、セレクト、チェックボックス | SQL入力欄 | | アクション | ボタン、リンク | 「分析」ボタン | | 表示 | テキスト、テーブル、リスト | 改善案リスト | | ナビ | メニュー、タブ、パンくず | サイドバー | | フィードバック | アラート、トースト、モーダル | 成功メッセージ |
遷移条件: 主要画面の要素が整理できたらフェーズ5へ
ASCIIアートでワイヤーフレームを作成する。
┌─────────────────────────────────────────┐
│ ヘッダー [ユーザー名] │
├─────────────────────────────────────────┤
│ │ │
│ サイド │ メインコンテンツ │
│ バー │ │
│ │ ┌─────────────────────────┐ │
│ [項目1]│ │ │ │
│ [項目2]│ │ コンテンツエリア │ │
│ [項目3]│ │ │ │
│ │ └─────────────────────────┘ │
│ │ │
│ │ [アクションボタン] │
│ │ │
├─────────────────────────────────────────┤
│ フッター │
└─────────────────────────────────────────┘
┌─────────────────────────────────────────┐
│ DBTune [user@mail] │
├─────────────────────────────────────────┤
│ │ │
│ 履歴 │ SQL入力 │
│ 設定 │ ┌─────────────────────────┐ │
│ │ │ SELECT * FROM users │ │
│ │ │ WHERE ... │ │
│ │ │ │ │
│ │ └─────────────────────────┘ │
│ │ │
│ │ スキーマ(任意) │
│ │ ┌─────────────────────────┐ │
│ │ │ CREATE TABLE users ... │ │
│ │ └─────────────────────────┘ │
│ │ │
│ │ [分析する] │
│ │ │
└─────────────────────────────────────────┘
遷移条件: 主要画面のワイヤーフレームが作成できたらフェーズ6へ
画面上のインタラクションを定義する。
AskUserQuestion({
questions: [
{
question: "この画面でユーザーが行う主要な操作と、その結果を教えてください",
header: "インタラクション",
options: [
{ label: "操作を入力", description: "例: ボタンクリック → モーダル表示" }
],
multiSelect: false
}
]
})
| トリガー | アクション | 結果 | |----------|-----------|------| | 「分析」ボタンクリック | API呼び出し | ローディング → 結果表示 | | SQL入力欄フォーカスアウト | バリデーション | エラー表示 or 正常 | | 履歴項目クリック | SQLを入力欄にロード | 入力欄が更新される |
遷移条件: 主要なインタラクションが定義できたらフェーズ7へ
# UI/UXスケッチ
## 画面一覧
| 画面名 | 種類 | 説明 |
|--------|------|------|
| ログイン | 認証系 | ユーザー認証 |
| ダッシュボード | メイン | トップページ |
| SQL入力 | メイン機能 | クエリ入力と分析実行 |
| 結果表示 | 結果表示 | 改善案の一覧 |
## ユーザーフロー
### メインフロー
[Mermaid図]
### 代替フロー
...
## ワイヤーフレーム
### ログイン画面
[ASCIIワイヤーフレーム]
**要素**:
- メールアドレス入力欄
- パスワード入力欄
- 「ログイン」ボタン
- 「パスワードを忘れた」リンク
**インタラクション**:
| トリガー | アクション | 結果 |
|----------|-----------|------|
| ログインボタン | 認証API | 成功→ダッシュボード / 失敗→エラー表示 |
### SQL入力画面
[ASCIIワイヤーフレーム]
...
## デザイン方針(メモ)
- シンプルで直感的なUI
- 開発者向けのダークモード対応
- モバイル非対応(デスクトップ優先)
Write({
file_path: "docs/UI_SKETCH.md",
content: uiSketchContent
})
生成したドキュメントのレビューをサブエージェントに委譲する。
Task({
description: "UI/UXスケッチレビュー",
subagent_type: "general-purpose",
prompt: `
以下のUI/UXスケッチドキュメントをレビューし、問題があれば修正してください。
## レビュー対象ファイル
- docs/UI_SKETCH.md
## レビュー観点
1. **画面の網羅性**: 必要な画面がすべてリストアップされているか
2. **フローの完全性**: ユーザーフローに抜け漏れがないか
3. **ワイヤーフレームの明確さ**: 各画面の要素が明確に配置されているか
4. **インタラクションの定義**: 主要な操作と結果が定義されているか
5. **一貫性**: 画面間でUI要素やナビゲーションが一貫しているか
6. **ユーザビリティ**: 直感的で使いやすい設計になっているか
## 出力形式
1. 発見した問題のリスト(問題がない場合は「問題なし」)
2. 各問題の修正内容
3. 修正後のファイル更新(Editツールで修正)
問題がなくなるまでレビューと修正を繰り返すこと。
`
})
tools
ローカルのコミット履歴と差分からDraft PRを作成する。ブランチ未作成・コミット未作成の状態でも、必要に応じてブランチ作成とコミットを行ってからPRを作成する。`.github/` にPRテンプレートがあれば内容を埋めて、なければ作業内容から本文を生成し、`AskUserQuestion`で作成可否を確認してから `gh pr create --draft` を実行する。「PRを出したい」「draft PRを作成」「プルリクを作って」「PR本文を生成」などのリクエストで起動。
tools
複数サブエージェントに異なる立場を与えて議論を反復し、相違が収束するまで議題を検証して結論を提示する。設計妥当性検証・実装方針比較・原因分析のセカンドオピニオン・アイデアの壁打ちに使用。「議論したい」「壁打ちしたい」「セカンドオピニオン」「複数視点で検証したい」などで起動。
tools
変更内容を分析し、Conventional Commit形式でコミットする (pushはユーザが手動)
development
React 19 + Vite+ (`vp`) + TypeScript + Tailwind CSS v4 + React Router v7 (HashRouter) でモバイル向け静的SPAデモサイトをTDDで構築し、Cloudflare Workers (Static Assets) へ自動デプロイするまでの標準ワークフローを提供する。テンプレートリポジトリ `skanehira/demo-site-template` を `gh repo create --template` で clone することで scaffold を省略する。`localStorage` でフロントエンドのみ完結する"フロントのみ完結デモ"に特化。デザインコンセプトの確立には `frontend-design` スキルを呼び出して連携する。起動トリガー:「デモサイトを作りたい」「モバイル向け静的デモ」「SPAを作ってCloudflareにデプロイ」「静的プロトタイプを公開」「localStorage でフロントだけ完結」。ユースケース:(1)クライアント提案用のUI/UXたたき台、(2)新機能のプロトタイプ、(3)モバイル向けランディング。ツールチェーンは Vite+ (`vp`) で統合(内部 PM は pnpm)。