brainstorm について
brainstormは、テーマを役割別の分析と統合された機能仕様にまとめる、プロダクトチームやデザイナー向けのスキルです。対話型の全工程と、単一の役割による分析に対応します。
主な機能
- 01対話型と自動のモード
- 02役割別の並列分析
- 03用語と範囲の定義
- 04UIプロトタイプの検討
- 05役割横断の仕様統合
活用シーン
- 01プロダクト案から機能仕様を作成
- 02アーキテクチャと製品の視点を集約
- 03ブレインストーミング中にUIプロトタイプを作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ catlog22/ claude-code-workflow --skill brainstormインストール後、Claude Code で/brainstormを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdphases/01-mode-routing.md02-artifacts.md03-role-analysis.md03a-ui-design-exploration.md04-synthesis.mdspecs/terminology-template.json詳細
ブレインストーミング
対話型のフレームワーク生成、複数の役割による並列分析、役割間の統合を、2つの実行モードを備えた単一のエントリーポイントにまとめたブレインストーミングスキルです。
アーキテクチャの概要
┌─────────────────────────────────────────────────────────────┐
│ /brainstorm │
│ Unified Entry Point + Interactive Routing │
└───────────────────────┬─────────────────────────────────────┘
│
┌─────────┴─────────┐
↓ ↓
┌─────────────────┐ ┌──────────────────┐
│ Auto Mode │ │ Single Role Mode │
│ (自动模式) │ │ (单角色分析模式) │
└────────┬────────┘ └────────┬─────────┘
│ │
┌────────┼────────┐ │
↓ ↓ ↓ ↓
Phase 2 Phase 3 Phase 4 Phase 3
Artifacts N×Role Synthesis 1×Role
(7步) Analysis (8步) Analysis
并行 (4步)
データフロー:
Auto Mode:
Phase 2 (artifacts) → guidance-specification.md + selected_roles[]
→ Phase 3 (N × role-analysis) → {role}/analysis*.md (immutable)
→ Phase 4 (synthesis) → feature-specs/ + feature-index.json + synthesis-changelog.md
Single Role Mode:
Phase 3 (1 × role-analysis) → {role}/analysis*.md
主な設計原則
- デュアルモードルーティング:AskUserQuestion による対話型のモード選択と、パラメーターに基づく自動判定
- 段階的なフェーズの読み込み:すべてを一度に読み込まず、
Ref:マーカーを使って必要に応じてフェーズファイルを読み込みます - タスクの関連付けと折りたたみ:フェーズの実行中にサブタスクを関連付け、完了後に折りたたみます
- セッションの継続性:すべてのフェーズで
workflow-session.jsonを通じてセッション状態を共有します - 自動継続実行:フェーズ間にユーザーの介入を必要とせず、フェーズを自動的に連続実行します
- SPEC.md の品質基準との整合:ガイダンス仕様と役割分析は、SPEC.md の基準(概念と用語、非目標、データモデル、状態マシン、RFC 2119 の制約)に従います
- テンプレート駆動の分析:役割ごとのテンプレート(例:system-architect)により、一貫性のある高品質な出力を実現します
- 品質ゲート:品質基準に照らして、ガイダンス仕様と役割分析を自動検証します
自動モード
--yes または -y を指定すると、自動モードを自動選択し、対話型のルーティング質問を省略して、推奨される役割を自動選択し、確認質問をすべて省略して、デフォルトの回答を使用します。
実行フロー
フェーズ 1:モード検出と対話型ルーティング
Ref: phases/01-mode-routing.md
引数を解析し、フラグやパラメーターからモードを判定するか、AskUserQuestion を使ってユーザーに質問します。
モード検出ルール:
--yesまたは-yフラグがある場合 → 自動モード(質問なし)- 最初の引数が既知の役割名と一致する場合 → 単一役割モード(質問なし)
- 役割名なしで
--sessionフラグがある場合 → ユーザーに質問 - それ以外の場合 → AskUserQuestion を使ってユーザーに質問
出力:execution_mode("auto" | "single-role")、解析済みパラメーター
自動モードの実行(execution_mode = "auto")
フェーズ 1.5:用語と境界の定義
- ユーザー入力とフェーズ 1 のコンテキストから、中核となるドメイン用語を 5~10 個抽出します
- 用語集(用語、定義、別名、カテゴリ)を生成します
- AskUserQuestion を使って非目標を収集します(明確に除外する範囲)
session.terminologyとsession.non_goalsに保存します
フェーズ 2:対話型フレームワーク生成
Ref: phases/02-artifacts.md
7 段階の対話型ワークフローです:コンテキストの収集 → トピック分析 → 役割選択 → 役割ごとの質問 → 対立の解決 → 最終確認 → 仕様の生成。
入力:トピックの説明、--count N、--yes フラグ
出力:guidance-specification.md(概念と用語、非目標、RFC 2119 の制約を含む)、workflow-session.json(selected_roles[]、session_id)
TodoWrite:7 つのサブタスク(フェーズ 0~5)を関連付け、順番に実行し、完了後に折りたたみます。
フェーズ 3:役割ごとの並列分析
参照:phases/03-role-analysis.md
選択された各役割について、並列で役割分析を実行します(Phase 3.5 で逐次実行する ui-designer を除きます)。
入力:Phase 2 の selected_roles[]、session_id、guidance-specification.md 出力:各役割の {role}/analysis*.md
並列実行:N 件の role-analysis 呼び出しを同時に起動します(複数の Skill 呼び出しを 1 つのメッセージで実行)。各役割には --skip-questions フラグを指定します。注:ui-designer はこの並列バッチから除外されます。すべてのテキスト役割の分析結果を参照できる Phase 3.5 で実行します。
ui-designer には、指定されている場合、--style-skill {package} を追加します。
テンプレート駆動型分析:
- 役割固有のテンプレートが存在する場合は読み込みます(例:
templates/role-templates/system-architect-template.md) - 必須構成としてテンプレートをエージェントのプロンプトに組み込みます
- system-architect では、Data Model、State Machine、Error Handling、Observability、Configuration Model、Boundary Scenarios を必ず含めます
品質検証:
- 分析の生成後、
role-analysis-reviewer-agentを呼び出してテンプレートとの適合性を検証します - MUST セクション(ブロッキング)、SHOULD セクション(警告)、品質チェック(RFC キーワード、有効な図)を確認します
- スコアと推奨事項を含む検証レポートを出力します
TodoWrite:N 件の並列サブタスクを追加し、同時に実行して、完了時に折りたたみます。
フェーズ 3.5:UI デザインの検討
参照:phases/03a-ui-design-exploration.md
テキスト役割の分析が完了した後に実行する逐次フェーズです。プロジェクトタイプの検出結果に基づいて、実体のある UI 成果物(HTML プロトタイプ、ASCII モックアップ、または API スケッチ)を生成します。
入力:Phase 3 のすべての役割分析(読み取り専用)、guidance-specification.md、style_skill(任意)
出力:feature-index.json を含む html-prototypes/、ascii-mockups/、または api-sketches/ ディレクトリ
スキップ条件:プロジェクトタイプがライブラリ/サービス、選択された selected_roles に ui-designer が含まれない、または --ui-explore を指定せずに --yes モードを使用している場合
任意のレビュー:プロトタイプが 2 つ以上あり、--yes が指定されていない場合は、Ref: ~/.ccw/workflows/brainstorm-visualize.md を読み込み、適切なグループ分けを用いた複数ラウンドの対話型レビューを行います。
TodoWrite:サブタスク(検出 → 生成 → 検証 → レビュー → フィードバック)を含む単一のタスクを追加し、完了時に折りたたみます。
フェーズ 4:統合
参照:phases/04-synthesis.md
6 段階の統合:調査 → ファイルの検出 → 役割横断分析 → ユーザーとの対話 → 仕様生成(単一エージェントで逐次実行)+条件付きレビュー → 最終化。役割分析ファイルは読み取り専用であり、変更されることはありません。仕様は最終的な統合成果物です。
入力:Phase 2 の session_id、Phase 3 のすべての役割分析ファイル(読み取り専用) 出力:feature-specs/、feature-index.json、synthesis-changelog.md
TodoWrite:統合サブタスクを追加し、逐次実行して、完了時に折りたたみます。
単一役割モードの実行(execution_mode = "single-role")
フェーズ 3:単一ロール分析
参照:phases/03-role-analysis.md
指定された 1 つのロールについて、任意の対話形式でのコンテキスト収集を行いながらロール分析を実行します。
入力:role_name、--session、--update、--include-questions、--skip-questions、--style-skill 出力:{role}/analysis*.md
TodoWrite:4 つのサブタスク(検出 → コンテキスト → エージェント → 検証)を紐付け、順に実行します。
フェーズ参照ドキュメント(フェーズの実行時に必要に応じて読み込みます):
| フェーズ | ドキュメント | 目的 | 使用モード |
|---|---|---|---|
| 1 | phases/01-mode-routing.md | パラメーターの解析、モードの検出、対話形式のルーティング | 両方のモード |
| 2 | phases/02-artifacts.md | 対話形式でのフレームワーク生成(7 フェーズ) | 自動モードのみ |
| 3 | phases/03-role-analysis.md | ロール固有の分析の生成 | 両方のモード |
| 3.5 | phases/03a-ui-design-exploration.md | UI プロトタイプの生成とレビュー | 自動モードのみ |
| 4 | phases/04-synthesis.md | ロール横断の統合と機能仕様 | 自動モードのみ |
基本ルール
- モード検出から開始:最初のアクションはフェーズ 1(引数の解析 + モードの検出)です
- 対話形式のルーティング:引数からモードを判定できない場合は、AskUserQuestion を使ってユーザーに確認します
- 事前分析を行わない:フェーズ 2 より前にトピックを分析しないでください。すべての分析は artifacts が行います
- すべての出力を解析:フェーズ 2 の後に workflow-session.json から selected_roles を抽出します
- TodoList による自動継続:TodoList のステータスを確認し、次の保留中のフェーズを自動で実行します
- タスクの紐付けモデル:Skill と Task は、現在のワークフローにサブタスクを紐付けます
- ⚠️ 重要:停止しないこと:自動モードでは複数フェーズのワークフローを継続します。紐付けられたすべてのタスクを実行した後、ただちにそれらを折りたたんで次のフェーズを実行します
- 並列実行:自動モードのフェーズ 3 では、複数のエージェントタスクを同時に紐付け、並行して実行します
- 単一ロールの独立性:単一ロールモードは、artifacts や統合を必要とせず独立して動作します
入力処理
パラメーターの解析
// Parse from user input (argument string)
const args = parseArguments(user_input);
// Flags
const auto_yes = args.includes('--yes') || args.includes('-y');
const count = extractFlag(args, '--count', 3); // default 3, max 9
const session_id = extractFlag(args, '--session', null);
const update_mode = args.includes('--update');
const include_questions = args.includes('--include-questions');
const skip_questions = args.includes('--skip-questions');
const style_skill = extractFlag(args, '--style-skill', null);
// Role detection
const VALID_ROLES = [
'data-architect', 'product-manager', 'product-owner', 'scrum-master',
'subject-matter-expert', 'system-architect', 'test-strategist',
'ui-designer', 'ux-expert'
];
const first_arg = args[0]; // first non-flag argument
const is_role = VALID_ROLES.includes(first_arg);
// Mode detection
if (auto_yes) {
execution_mode = 'auto';
topic = extractTopic(args);
} else if (is_role) {
execution_mode = 'single-role';
role_name = first_arg;
} else {
execution_mode = null; // Ask user
topic = extractTopic(args);
}
使用例
# Auto mode - full pipeline
/brainstorm "Build real-time collaboration platform" --count 3
/brainstorm -y "GOAL: Build platform SCOPE: 100 users" --count 5
/brainstorm "Design payment system" --style-skill material-design
# Single role mode - individual analysis
/brainstorm system-architect --session WFS-xxx
/brainstorm ux-expert --include-questions
/brainstorm ui-designer --session WFS-xxx --update --style-skill material-design
/brainstorm product-manager --skip-questions
# Ambiguous - will ask interactively
/brainstorm --session WFS-xxx
/brainstorm
データフロー
Phase 1 (Mode Routing):
Input: user arguments
Output: execution_mode, parsed_params
↓
┌───────┴───────┐
Auto Single Role
↓ ↓
Phase 2: Phase 3:
Input: topic, count, auto_yes
Output: session_id ─────────────→ Input: role_name, session_id
selected_roles[] skip/include questions
guidance-specification.md style_skill
↓ Output: {role}/analysis*.md
Phase 3:
Input: selected_roles[], session_id
guidance-specification.md
style_skill (for ui-designer)
Output: {role}/analysis*.md (N files, immutable after this point)
↓
Phase 3.5:
Input: all analysis*.md (read-only), guidance-specification.md, style_skill
Output: html-prototypes/ OR ascii-mockups/ OR api-sketches/
feature-index.json, review_decisions (optional)
↓
Phase 4:
Input: session_id, all analysis files (read-only)
Output: feature-specs/F-{id}-{slug}.md
feature-index.json
synthesis-changelog.md
TodoWrite パターン
自動モードのライフサイクル
Initial → Phase 1 Mode Routing (completed)
→ Phase 2 Artifacts (in_progress)
→ 7 sub-tasks ATTACHED (Phase 0-5)
→ Execute sequentially
→ Sub-tasks COLLAPSED
→ Phase 3 Parallel Role Analysis (in_progress)
→ N role sub-tasks ATTACHED simultaneously (excluding ui-designer)
→ Execute concurrently
→ Sub-tasks COLLAPSED
→ Phase 3.5 UI Design Exploration (in_progress)
→ Sub-tasks: Detection → Generate → Validate → Review → Feedback
→ Execute sequentially
→ Sub-tasks COLLAPSED
→ Phase 4 Synthesis (in_progress)
→ 8 sub-tasks ATTACHED
→ Execute sequentially
→ Sub-tasks COLLAPSED
→ All completed
単一ロールモードのライフサイクル
Initial → Phase 1 Mode Routing (completed)
→ Phase 3 Role Analysis (in_progress)
→ 4 sub-tasks ATTACHED (Detection → Context → Agent → Validation)
→ Execute sequentially
→ Sub-tasks COLLAPSED
→ Completed
初期 TodoWrite(自動モード)
[
{"content": "Phase 1: Mode detection and parameter parsing", "status": "in_progress", "activeForm": "Detecting mode"},
{"content": "Phase 2: Interactive Framework Generation", "status": "pending", "activeForm": "Generating framework"},
{"content": "Phase 3: Parallel Role Analysis", "status": "pending", "activeForm": "Executing parallel analysis"},
{"content": "Phase 3.5: UI Design Exploration", "status": "pending", "activeForm": "Generating UI prototypes"},
{"content": "Phase 4: Synthesis Integration", "status": "pending", "activeForm": "Executing synthesis"}
]
初期 TodoWrite(単一ロールモード)
[
{"content": "Phase 1: Mode detection and parameter parsing", "status": "in_progress", "activeForm": "Detecting mode"},
{"content": "Phase 3: Single role analysis for {role_name}", "status": "pending", "activeForm": "Executing role analysis"}
]
セッション管理
⚡ 最初のアクション:既存のセッションがないか .workflow/active/ を確認します
複数セッションのサポート:
- 異なる Claude インスタンスで、それぞれ異なるブレインストーミングセッションを実行できます
- 複数のセッションが見つかった場合は、ユーザーに選択を促します
- セッションが 1 つ見つかった場合は、それを使用します
- セッションが存在しない場合:
- 自動モード:
WFS-[topic-slug]を作成します - 単一ロールモード:セッションがない場合はエラーになります(先に自動モードを実行する必要があります)
- 自動モード:
セッションの継続性:すべてのフェーズで、workflow-session.json を介してセッション状態を共有します
利用可能なロール
| ロール ID | タイトル | 担当領域 |
|---|---|---|
data-architect | データアーキテクト | データモデル、ストレージ戦略、データフロー |
product-manager | プロダクトマネージャー | プロダクト戦略、ロードマップ、優先順位付け |
product-owner | プロダクトオーナー | バックログ管理、ユーザーストーリー、受け入れ基準 |
scrum-master | スクラムマスター | プロセスの進行支援、障害の除去 |
subject-matter-expert | 分野の専門家 | ドメイン知識、ビジネスルール、コンプライアンス |
system-architect | システムアーキテクト | 技術アーキテクチャ、スケーラビリティ、統合 |
test-strategist | テストストラテジスト | テスト戦略、品質保証 |
ui-designer | UI デザイナー | ビジュアルデザイン、モックアップ、デザインシステム |
ux-expert | UX エキスパート | ユーザー調査、情報アーキテクチャ、ユーザージャーニー |
ロールの選択:自動モード → artifacts が処理します(フェーズ 2)。単一ロールモード → ユーザーが直接指定します。
出力構成
.workflow/active/WFS-{topic}/
├── workflow-session.json # Session metadata ONLY
├── .process/
│ └── context-package.json # Phase 0 output (auto mode)
└── .brainstorming/
├── guidance-specification.md # Framework (Phase 2, auto mode)
├── feature-index.json # Feature index (Phase 4, auto mode, feature_mode)
├── synthesis-changelog.md # Synthesis decisions audit trail (Phase 4, auto mode)
├── feature-specs/ # Feature specs (Phase 4, auto mode, feature_mode)
│ ├── F-001-{slug}.md
│ └── F-00N-{slug}.md
├── specs/
│ └── terminology-template.json # Terminology schema
├── templates/
│ └── role-templates/
│ └── system-architect-template.md # System architect analysis template
├── agents/
│ └── role-analysis-reviewer-agent.md # Role analysis validation agent
├── html-prototypes/ # Phase 3.5 (web/mobile/desktop-gui)
│ ├── README.md # Prototype summary
│ ├── feature-index.json # File-to-feature mapping
│ └── {feature-slug}.html # Self-contained prototypes
├── ascii-mockups/ # Phase 3.5 (cli projects)
│ └── {feature-slug}.md
├── api-sketches/ # Phase 3.5 (library/service projects)
│ └── {feature-slug}.md
├── {role}/ # Role analyses (IMMUTABLE after Phase 3)
│ ├── {role}-context.md # Interactive Q&A responses
│ ├── analysis.md # Main/index document
│ ├── analysis-cross-cutting.md # Cross-feature (feature_mode)
│ └── analysis-F-{id}-{slug}.md # Per-feature (feature_mode)
└── synthesis-specification.md # Integration (Phase 4, non-feature_mode only)
エラー処理
| エラー | 復旧方法 | モード |
|---|---|---|
| 無効なロール名 | 有効なロール一覧を表示し、再度入力を求める | 単一ロール |
| アクティブなセッションがない | 自動モード:新規作成。単一ロール:ガイダンスを含むエラー | 両方 |
| ロールの選択に失敗 | product-manager をデフォルトに設定 | 自動 |
| エージェントの実行に失敗 | 依存関係を最小限にして、エージェント固有の再試行を行う | 両方 |
| テンプレートの読み込みに関する問題 | 適切に縮退して動作する | 両方 |
| 統合時の不一致 | 無理に解決せず、意見の相違を明示する | 自動 |
| コンテキストのオーバーフロー(>100KB) | analysis.md のインデックスファイルのみを読み込む | 自動 |
コンテキストのオーバーフロー対策:
- ロールごとの上限:メインは < 3000 語、サブドキュメントは < 2000 語、サブドキュメントは最大 5 件
- 統合の保護:合計が 100KB を超える場合は、
analysis.mdのみを読み込みます(サブドキュメントは読み込みません) - 復旧方法:範囲を縮小する(--count 2)→ --summary-only を使用する → 手動で統合する
コーディネーターのチェックリスト
フェーズ開始前のアクション:
-
Ref:マーカーを使用してフェーズドキュメントを読む - 前提条件を確認する(セッションが存在し、必要なファイルがある)
- TodoWrite でフェーズを
in_progressに設定する - 該当する場合はサブタスクを追加する
フェーズ完了後のアクション:
- フェーズの出力が存在することを確認する
- サブタスクをフェーズの概要にまとめる
- TodoWrite でフェーズを
completedに設定する - 次に保留中のフェーズへ自動的に進む(自動モード)
- 完了を報告する(単一ロールモード)
関連コマンド
前提条件:
/workflow:session:start- 新しいワークフローセッションを開始する(任意。ブレインストーミングで独自のセッションを作成します)
後続の処理(ブレインストーミング完了後):
/workflow-plan --session {sessionId}- 実装計画を生成する/workflow:brainstorm:synthesis --session {sessionId}- 統合を単独で実行する(スキップした場合)
参考情報
テンプレートのソース:~/.ccw/workflows/cli-templates/planning-roles/
スタイル SKILL パッケージ:.claude/skills/style-{package-name}/