Brainstorming
Spec ステージ前の必須ヒアリング起点 skill。曖昧な要件を質問の往復で深掘りし、 Spec を書ける状態まで解像度を上げる。出力は specs/<spec-name>.brainstorm.md。 「要件まとめたい」「Spec書きたい」「機能追加したい」「新しい仕事を始めたい」「やりたいことがある」等で起動。 本ワークフロー (docs/workflow.md) では Spec ステージの前提条件として固定化されている。 ヒアリングを省略していきなり Spec を書くと後続ステージすべてが手戻りするため、本 skill は起点として必須。 スコープが単一 Spec として大きすぎると判定した場合は、分割軸 (機能 / Release Phase / データ / 層) を提示して複数 Spec への分割を提案する機能も含む。 起動直後に既存コードベースを精査 (ディレクトリ構造 / メタ情報 / 関連モジュール / 既存テスト等) し、ユーザーへの質問を絞り込む機能も含む。From its SKILL.md
npx -y skills add gassn/my-workflows --skill brainstormingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
18.6 KB, ~6.5k tokens by cl100k_base, as published. Nobody here has run it
Brainstorming Skill
本プロジェクトの開発ワークフロー (docs/workflow.md) における起点ステージです。ユーザーの曖昧な要望を質問の往復で深掘りし、次の Spec ステージで仕様を書ける状態まで解像度を上げることが役割です。
用語: 「Project Phase」「Workflow Stage (ステージ)」「Release Phase」「Spec」の定義は docs/glossary.md を参照してください。本 skill 内では Workflow Stage を「ステージ」、ユーザープロジェクトのリリース段階 (MVP / Phase 2 等) を「Release Phase」と表記します。
1. 役割と位置づけ
本 skill はワークフローの最上流に位置します。後続のすべてのステージ (Spec → Spec Review → Isolate → Plan → Implement → Verify → Code Review → ship → Learn) は、本ステージの出力である Brainstorming ノートを起点として進みます。
設計原則: ヒアリングを飛ばして Spec ステージに直接進むことは禁止です。曖昧な要件のまま Spec を書くと、Plan / Implement / Code Review すべてが手戻りするため、本 skill を起点として固定化します (docs/workflow.md 設計原則 6 参照)。
2. 起動トリガー
以下のような自然言語のフレーズで自動的に起動してください。
- 「要件をまとめたい」
- 「Spec を書きたい」
- 「機能を追加したい」
- 「新しい仕事を始めたい」
- 「やりたいことがある」
- 「〜について相談したい」
- 「〜を作りたい」
ユーザーが上記のような着手意図を示した時点で、本 skill を起動し、ヒアリングを開始します。すでに Spec ファイル (specs/<spec-name>.md) が存在する場合は本 skill をスキップし、Spec Review ステージに進んでください。
3. 禁則事項 (Anti-Pattern)
本 skill 起動中に以下を行ってはいけません。
- ❌ ヒアリングを省略していきなり Spec ファイルを作成する
- ❌ ユーザーの最初の発話だけで Spec の解像度が十分と判断する
- ❌ 質問なしに実装提案を始める
- ❌ ユーザーの承認なしに次の Spec ステージへ自動遷移する
- ❌ Brainstorming ノートを worktree 内に作成する (worktree はまだ存在しない)
特に「これは簡単だから設計不要」という判断は、後続ステージで必ず手戻りを起こすため明確に禁止します。
4. ヒアリング手順 (チェックリスト)
以下の順序でユーザーと対話してください。各項目で十分な解像度が得られるまで、追加質問を続けます。
- 目的の確認: なぜこの作業をしたいのか、解決したい問題は何か
- 利用者の特定: 誰がこの成果物を使うのか (自分のみ / チーム / 外部ユーザー等)
- 成功条件の明確化: どうなれば完了と判断できるのか (受け入れ基準)
- 制約の洗い出し: 既存システムへの影響、技術的制約、時間的制約
- スコープの確定: 何を含み、何を含まないか
- 代替案の検討: 他のアプローチはないか、なぜこのアプローチを選ぶのか
- リスクの予測: 何がうまくいかない可能性があるか
- 次ステージへの移行確認: ユーザーが Spec ステージへ進む準備ができたか明示的に承認
各項目を機械的に質問するのではなく、ユーザーの発話から明らかになった項目はスキップし、未解明の項目を優先的に質問してください。
5. 質問カテゴリ
ヒアリングの軸として以下のカテゴリを参照してください。
| カテゴリ | 代表的な質問例 |
|---|---|
| 目的 | 「この機能で何を実現したいですか」「現状の何が不便ですか」 |
| 利用者 | 「誰が使いますか」「使う頻度はどれくらいですか」 |
| 成功条件 | 「完成したと判断する基準は何ですか」「動作確認はどう行いますか」 |
| 制約 | 「既存のどの部分に影響しますか」「期日はありますか」「使える技術スタックの制限はありますか」 |
| スコープ | 「今回含めない機能はありますか」「将来的に拡張予定の機能は何ですか」 |
| 代替案 | 「他に思いついたアプローチはありますか」「既存ライブラリで代替できませんか」 |
| リスク | 「何が起きると困りますか」「失敗パターンを想定していますか」 |
6. 出力フォーマット
ヒアリングが完了したら、以下のフォーマットで specs/<spec-name>.brainstorm.md を作成してください。<spec-name> はユーザーと相談して決定したケバブケースの名前 (例: add-user-login, fix-payment-bug) を使います。
---
name: <spec-name>
created: YYYY-MM-DD
status: brainstorming-complete
---
# Brainstorming: <spec-name>
## 目的
<なぜこの作業をするのか、解決する問題>
## 利用者
<誰が使うのか>
## 成功条件 (受け入れ基準)
- <条件 1>
- <条件 2>
## 制約
- <技術的制約>
- <時間的制約>
- <既存システムへの影響>
## スコープ
### 含むもの
- <項目 1>
### 含まないもの (明示的に除外)
- <項目 1>
## 代替案の検討
- <検討した代替案 1 と却下理由>
- <検討した代替案 2 と却下理由>
## リスク
- <想定されるリスク 1 と対策方針>
## 未解決事項
- <Spec ステージで決定する事項>
## ヒアリングログ (任意)
<重要なやり取りの抜粋>
ファイル配置先は specs/<spec-name>.brainstorm.md です。specs/ ディレクトリが存在しない場合は新規作成してください。worktree 内ではなく、main ブランチ側に配置します。
7. 完了判定基準
以下を すべて 満たした時点で本 skill を完了とします。
- 上記チェックリストの「次ステージへの移行確認」を除く全項目に十分な情報が得られている
- Brainstorming ノートが上記フォーマットで作成され、
specs/<spec-name>.brainstorm.mdに保存されている - ユーザーが Spec ステージへの移行を 明示的に 承認している (例: 「これで Spec 書いて良いです」「次に進んで」)
ユーザー承認なしに自動で次のステージへ遷移してはいけません。承認を得るための問いかけは「以上の内容で Spec ステージに進めますがよろしいですか」のように明確に行ってください。
8. 次ステージへの引き継ぎ
完了判定を満たしたら、以下の引き継ぎを行います。
- ユーザーに
writing-specskill (Phase 3 で実装予定) を起動する旨を伝える - 引き継ぎ情報として、作成した Brainstorming ノートのパスを明示する
- 未解決事項として残した項目を Spec ステージで議論することを伝える
writing-spec skill 未実装の Phase 3 着手段階では、引き継ぎは口頭での合意で代替し、Brainstorming ノートのパスをユーザーに提示するに留めます。
9. 失敗時の対応
ヒアリング中にユーザーが要件を確定できない、あるいは前提条件を見直す必要が生じた場合、無理に Brainstorming ノートを作成せず、以下のいずれかを提案してください。
- 一時保留 (要件が固まるまでセッションを終了する)
- スコープ縮小 (確定済みの部分のみで Spec ステージへ進む)
- 前提調査 (技術検証や類似事例の調査を別 Spec として切り出す)
ユーザーの判断を待ち、無断で進行しないでください。
10. Spec 分割提案 (スコープ肥大時)
ヒアリングを進めるうちに、要件が単一 Spec として扱うには大きすぎると判明する場合があります。そのまま 1 つの Spec として進めると Plan / Implement ステージで破綻するため、分割を積極的に提案 してください。
10.1 分割推奨の判定基準
以下のうち 2 つ以上 に該当した時点で、ユーザーに分割を提案してください。
- 成功条件 (受け入れ基準) が 5 個以上 挙がっている
- 独立性の高い機能領域が 2 つ以上 含まれる (例: 認証 + 決済 + 管理画面)
- スコープの「含むもの」が 5 項目以上 ある
- ユーザーが述べた「目的」が 複数 存在する
- 実装期間の見積もりが数週間以上に及ぶ
- 既存モジュール/テーブル/サービスの変更箇所が 3 箇所以上 ある
判定は硬直的に行わず、上記基準を「分割すべきかの思考補助」として使ってください。ユーザーが「これは絶対に 1 Spec で進めたい」と主張する場合は理由を確認した上で尊重します。
10.2 分割軸の提示
分割を提案する際は、以下の軸から 2〜3 個の候補 を提示し、ユーザーと選定してください。
| 軸 | 分割例 | 向いているケース |
|---|---|---|
| 機能単位 | auth, payment, admin-dashboard | 独立性の高い複数機能を同時に作るケース |
| Release Phase 単位 | mvp, phase2-polish, phase3-scale | MVP → 拡張の段階的開発 (docs/glossary.md の Release Phase 定義参照) |
| データ単位 | user-schema, product-schema, order-schema | データモデル中心の作業 |
| 層 (垂直/水平) | ui-layer, api-layer, data-layer | フルスタック機能で層ごとに責務を分けたいケース |
複数軸を組み合わせる必要がある場合 (例: 機能単位 × Release Phase 単位) はその旨も提示してください。
10.3 分割承認フロー
以下の順序で必ずユーザー承認を得てから複数ノート生成に進んでください。
- 分割推奨の理由を具体的に提示 (「成功条件が 7 個 / 機能領域が 3 つに跨っている」等、判定基準を明示)
- 分割軸の候補を 2〜3 個提示
- ユーザーが軸を選択 (または別の軸を逆提案)
- 分割後の各 Spec 名と担う責務を一覧で提示
- 依存関係の有無を確認 (Spec 間の前後関係 / 並行実行可否)
- ユーザーが分割案を明示的に承認 (例: 「この分割で進めて」)
- 複数の Brainstorming ノートを生成
ユーザーの明示的な承認なしに複数ノートの生成を開始してはいけません。
10.4 複数 Brainstorming ノートのファイル命名規則
分割後の Brainstorming ノートは、共通接頭辞を使って関連性を示します。
- 機能単位:
specs/<project>-<feature>.brainstorm.md- 例:
specs/ecsite-auth.brainstorm.md,specs/ecsite-payment.brainstorm.md,specs/ecsite-admin.brainstorm.md
- 例:
- Release Phase 単位:
specs/<project>-<release-phase>.brainstorm.md- 例:
specs/ecsite-mvp.brainstorm.md,specs/ecsite-phase2.brainstorm.md
- 例:
- 依存関係を明示したい場合: 各ノートの frontmatter に
depends_onフィールドを追加- 例:
depends_on: [ecsite-auth]
- 例:
10.5 分割後の各ノートに含める追加項目
単一 Spec 時のテンプレート (セクション 6 参照) に加え、分割時は以下を必ず含めてください。
- 関連 Spec: 同時に分割された他の Spec の一覧と、この Spec との関係 (並行 / 前提 / 後続)
- 切り出した理由: この Spec を独立させた根拠 (「認証は決済より先に必要」等)
- Spec 間で共有する資産: 共通スキーマ / 共通ライブラリ / 環境変数等
10.6 Phase 5 (orchestrator) への橋渡し
本プロジェクトのワークフロー (docs/workflow.md) では、複数 Spec の並列実行は Phase 5 で実装される orchestrator skill が担当します。Phase 3 の時点では分割後の各 Spec を順次手動で進めることになりますが、Brainstorming ノート段階で依存関係 (depends_on) を明記しておくことで、Phase 5 の orchestrator がそのまま DAG 解決に利用できます。
未来の自動化を意識し、依存関係は必ず記述してください。
11. コードベース精査
ヒアリング項目の中には、ユーザーへの質問だけでは引き出せない情報や、ユーザーが忘れている / 知らない情報があります。AI が能動的にコードベースを読めば数秒で判明する事項を、何往復もして質問するのは非効率かつ不正確です。本 skill では コードベース精査を 2 段階で行う ことを必須とします。
11.1 段階 1: 起動直後の軽スキャン (必須)
skill 起動直後、ヒアリングを開始する前に、以下を必ず実施してください。
- ディレクトリ構造の把握 (ルート直下の
lsまたはGlobでトップレベルのファイル / ディレクトリを取得) - メタ情報の読み込み (存在する場合のみ)
CLAUDE.md(プロジェクトルール)README.mdpackage.json/pyproject.toml/Cargo.toml/go.mod等のマニフェストdocs/配下の主要ドキュメント
- 既存の
specs/ディレクトリ確認 (関連する過去の Brainstorming ノート / Spec の存在確認)
これにより、技術スタック・プロジェクトの種類・既存のルール・関連する過去の作業を把握します。把握した情報はヒアリング質問の精度向上に使い、「Node.js プロジェクトと判明したので React か Vue かのみ確認」のように 質問を絞り込んでください。
11.2 段階 2: ヒアリング中の深スキャン (要件次第)
ヒアリングが進み、要件のキーワード (例: 「認証」「在庫」「メール送信」) が見えてきた段階で、関連コードを能動的に検索してください。
- 関連キーワードでコード検索 (
Grep)- 例: 「認証」要件 →
Grepでauth,login,session,JWT等を検索 - 例: 「在庫」要件 →
Grepでinventory,stock,quantity等を検索
- 例: 「認証」要件 →
- 関連ファイルの読み込み (
Read)- 既存実装の有無
- 関連モジュールの I/F
- 命名規約・コードスタイル
- データモデル / スキーマ定義
- 既存テストパターンの確認
- テストフレームワーク
- テストの粒度 (unit / integration / e2e)
- 既存テストヘルパー / fixture
- 関連 commit 履歴 (
git log)- 過去に同じ領域に変更があったか
- 変更時の commit メッセージから設計意図を推測
精査結果を踏まえ、ヒアリング項目を更新します。コードから判明した事項は ユーザーに質問せず、推測内容を提示して確認を求める形にしてください (例: 「既存の MailSender クラスを再利用する想定で良いですか」)。
11.3 精査結果の Brainstorming ノートへの反映
精査結果は Brainstorming ノートの該当セクションに反映してください。
- 制約: 既存技術スタック / 既存命名規約 / 既存ライブラリ依存 を「制約」セクションに記述
- 既存システムへの影響: 関連モジュール / 関連テーブル / 関連エンドポイント を具体的に列挙
- 未解決事項からの除外: 精査で判明した事項は「未解決事項」から除外 (Spec ステージへ先送りしない)
- リスク: 既存実装のバグ / 古い設計 / テスト不足 等のリスクを「リスク」セクションに追加
- ヒアリングログ (任意): 精査結果のサマリと参照したファイルパスを記載
11.4 新規プロジェクト時の扱い
リポジトリが空、または README.md のみ存在する場合、深スキャンはスキップしてください。軽スキャンのみ実施し、Brainstorming ノートに「新規プロジェクトのため精査対象なし」と明記します。
11.5 大規模リポジトリでの注意
以下の場合は精査範囲を絞ってください。コンテキスト枯渇と精査時間の浪費を避けるためです。
- ファイル数が 1,000 を超える場合: ディレクトリ構造の概観のみで深掘りしない
- 関連キーワードでのヒット数が 50 を超える場合: ファイル名のみリストアップしてユーザーと相談 (どのファイルを読むかをユーザー判断に委ねる)
- 過去 commit が数百以上ある場合: 直近 1 ヶ月程度に範囲を限定
11.6 Phase 5 への橋渡し (investigator agent)
Phase 5 で investigator agent の役割を「Plan ステージ専用」から「Brainstorming + Plan 両ステージで使用」へ拡張する予定です。Phase 3 の時点では本 skill 内で精査を完結させますが、将来は重い精査を investigator agent に委譲することで、本 skill の責務を「ヒアリング進行」に集中させる設計に移行します。
そのため、Phase 3 の精査実装も「将来 investigator に委譲できる粒度」を意識してください。具体的には、精査ステップを「軽スキャン」「キーワード検索」「ファイル読み込み」「テストパターン確認」「commit 履歴確認」のように独立した手順として記述し、agent に切り出しやすい構造にします。
What ships with it: 1 file
5.5 KB alongside SKILL.md
evals/
- evals.json5.5 KB