intent-discovery について
intent-discoveryは、実装前にアイデアを検証済みの設計へ導く開発スキルです。プロジェクト調査、質問、複数案の比較、設計承認、文書化を経て、タスク計画へ引き継ぎます。
主な機能
- 01プロジェクトのファイルと履歴を調査
- 02要点を絞った確認質問
- 03複数の設計案とトレードオフを提示
- 04実装前に設計を検証
- 05承認済み設計を記録し計画へ引き継ぎ
活用シーン
- 01新機能のアイデアを具体化
- 02コーディング前のプロジェクトやモジュールの計画
- 03既存システムの動作変更や再設計
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ noobygains/ godmode --skill intent-discoveryインストール後、Claude Code で/intent-discoveryを入力して読み込まれたか確認します。
詳細
アイデアを実行可能な設計に変える
概要
体系的な対話を通じて、漠然としたアイデアを、仕様が明確で検証済みの設計へと導きます。まず既存のプロジェクトの状況を調査し、次に的を絞った質問を重ねて理解を深めます。設計がまとまったら、承認を得るために提示します。
最優先の指針
NO IMPLEMENTATION WITHOUT A VALIDATED DESIGN FIRST
例外はありません。回避策もありません。近道もありません。
使用する場面
必須:
- 新しい機能やコンポーネントを作成する
- 既存のシステムの機能を拡張する
- 既存のコードの動作を変更する
- 新しいプロジェクトやモジュールを立ち上げる
- 既存のシステムを再構築または再設計する
省略する場合:
- 誤字やスペルミスを修正する
- ユーザーが指定したとおりにインポートを更新する
- ユーザーが逐語的に指定した設定変更
- ユーザーが明示的に指定したファイルを削除する
- ユーザーが正確に指定したコマンドを実行する
認知上の落とし穴
| 正当化の理由 | 実際のところ |
|---|---|
| 「これは設計するほどのことではありません」 | 単純なプロジェクトほど、検証されていない前提が潜みがちです。メモアプリでさえ、データモデル、ストレージ、操作方法を決める必要があります。 |
| 「ユーザーから正確な仕様が提示されています」 | ユーザーが示すのは目標であって、設計ではありません。意図の発見を通じて、ユーザーの希望と実現方法の隔たりを埋めます。 |
| 「最適なアプローチはすでにわかっています」 | わかっているのは、あくまで一つのアプローチです。代替案を提示すれば、トレードオフが明らかになり、見落としにも気づけます。 |
| 「設計に時間をかけると遅くなります」 | 間違ったものを作るほうが時間がかかります。5 分間の設計で、2 時間のやり直しを防げます。 |
| 「ちょっとした変更にすぎません」 | 方向を誤った小さな変更も、積み重なれば大きな問題になります。先へ進む前に方向性を確認してください。 |
| 「ユーザーはすぐに始めたがっているようです」 | ユーザーが望んでいるのは成果であって、急ぐことではありません。簡潔な設計の確認が信頼につながります。 |
すべてのプロジェクトで、このプロセスを実施します。ToDo リスト、ユーティリティ関数、設定の微調整も例外ではありません。「単純な」プロジェクトこそ、検証されていない前提が大きな無駄を生みます。設計は簡潔でもかまいません(本当に単純な作業なら数文程度でも構いません)が、必ず提示して承認を得てください。
チェックリスト
以下の各項目について、必ずタスクを作成し、順番に完了させてください。
- プロジェクトの状況を調査する -- ファイル、ドキュメント、最近のコミットを確認する
- 参考資料を見つける -- 適切な参照システムに振り分けるため、reference-engine スキルを呼び出す(外部のリポジトリやライブラリには github-search、内部のパターンには codebase-research、ビジュアルテーマには design-research、UI には ux-patterns、API/スキーマ/テスト/インフラには組み込みライブラリを使用)
- 確認の質問をする -- 1 回のメッセージにつき 1 つ質問し、目的/制約/成功基準を把握する
- 2~3 つのアプローチを提示する -- トレードオフを添えたラベル付きの選択肢(A/B/C)として提示し、推奨案には星印を付ける
- 設計を提示する -- 複雑さに応じたセクションに分け、各セクションの後にユーザーの確認を得る(YoloMode の場合は、提示してそのまま進める)
- 設計ドキュメントを記録する --
docs/plans/YYYY-MM-DD-<topic>-design.mdに保存してコミットする - 実装に引き継ぐ -- 実装計画を作成するため、task-planning スキルを呼び出す
ワークフロー図
digraph intent_discovery {
"Survey project landscape" [shape=box];
"Ask clarifying questions" [shape=box];
"Present 2-3 approaches" [shape=box];
"Present design sections" [shape=box];
"User confirms design?" [shape=diamond];
"Record design document" [shape=box];
"Invoke task-planning" [shape=doublecircle];
"Survey project landscape" -> "Ask clarifying questions";
"Ask clarifying questions" -> "Present 2-3 approaches";
"Present 2-3 approaches" -> "Present design sections";
"Present design sections" -> "User confirms design?";
"User confirms design?" -> "Present design sections" [label="no, revise"];
"User confirms design?" -> "Record design document" [label="yes"];
"Record design document" -> "Invoke task-planning";
}
最終段階は task-planning の呼び出しです。 ui-engineering やその他の実装スキルを呼び出してはいけません。意図の発見の後に呼び出すスキルは、task-planning のみです。
詳細なプロセス
アイデアの検討:
- まず、現在のプロジェクトの状態(ファイル、ドキュメント、最近のコミット)を確認します
- 理解を深めるため、質問は一度に1つずつ行います
- 可能であれば選択式の質問を優先しますが、自由回答式の質問でもかまいません
- 各メッセージの質問は1つに制限します。あるトピックをさらに深く検討する必要がある場合は、複数のメッセージに分けます
- 目的、制約、成功基準に重点を置きます
既存のソリューションの調査:
- 必須のサブスキル: godmode:reference-engine を使用して、適切なリファレンスシステムに振り分けます
- reference-engine スキルは、github-search(外部リポジトリやライブラリ)、codebase-research(内部のコードベースパターン)、design-research(ビジュアルテーマ)、ux-patterns(UI)、または組み込みライブラリ(API、スキーマ、テスト、CI/CD、インフラ)に振り分けます
- 調査結果を要約します:「[参照元]から参照情報が見つかりました:[関連する内容]」
- 提案に調査結果を反映します。どのリファレンスを基にするか、活用するか、調査するかを示します
アプローチの評価:
- トレードオフを添えて、異なるアプローチを2~3案、A、B、Cの選択肢として提示します
- 推奨案には星印(⭐)を付けます
- 推奨案を最初に示し、その理由を説明します
- 調査結果を引用します:「アプローチAは github.com/x/y(スター5k、MITライセンス)に着想を得ています」
- YoloMode が有効な場合: すべての選択肢を提示したうえで、ユーザーの選択を待ちます。アプローチを自動選択することはありません。
設計の提示:
- 設計が明確になったと判断したら、設計を提示します
- 各セクションの分量は複雑さに応じて調整します。単純な内容は数文、微妙な点を含む内容は200~300語程度にします
- 各セクションの後に、ここまでの内容に問題がないか確認します
- アーキテクチャ、コンポーネント、データフロー、エラー処理、テスト戦略を扱います
- 不明点があれば、再検討して明確にする準備をしておきます
- YoloMode が有効な場合: 設計全体を一度に提示し、セクションごとの確認を挟まずに記録へ進みます。ユーザーは推奨案を信頼しています。
設計の承認後
ドキュメント作成:
- 検証済みの設計を
docs/plans/YYYY-MM-DD-<topic>-design.mdに記述します - 設計ドキュメントをバージョン管理にコミットします
実装:
- task-planning スキルを呼び出し、詳細な実装計画を作成します
- 他のスキルは呼び出さないでください。次のステップは task-planning です。
ガードレール
決して行わないこと:
- 「簡単な」作業だからと設計を省略しません。単純な作業ほど、前提が隠れています
- 依頼を受けてすぐにコーディングに進みません
- 1つのアプローチだけを提示しません。必ずトレードオフを添えて2~3案を示します
- ユーザーの承認を形式的な確認として扱いません。フィードバックを実際に反映します
- 設計ドキュメントを作成してコミットする前に、実装を始めません
必ず行うこと:
- トレードオフと明確な推奨案を添えて、2~3案を提示します
- 次に進む前に、設計の各セクションについてユーザーから明示的な承認を得ます
- 設計ドキュメントを
docs/plans/に作成し、コミットします - 次のステップとして task-planning を呼び出します(実装スキルは呼び出しません)
- 設計の深さは複雑さに応じて調整します。単純な場合は簡潔に、複雑な場合は綿密にします
基本原則
- 質問は一度に1つ - 複数の質問でユーザーを圧倒しないようにします
- 選択式を優先 - 可能な場合、自由回答式よりも回答しやすい形式を選びます
- YAGNI を徹底する - 設計から不要な機能を取り除きます
- 代替案を検討する - 決定する前に、必ず2~3案を提示します
- 段階的に検証する - 設計を提示し、次に進む前に承認を得ます
- 柔軟に対応する - 筋が通らない点は再検討し、明確にします
接続
このスキルは、より広範な GodMode ワークフローの一部です。
- task-planning -- intent-discovery の後に進む唯一の次のステップです。検証済みの設計を、実行可能な実装計画に変換します。
- reference-engine -- 設計に関連するリファレンス実装、テーマ、UX パターン、組み込みライブラリを見つけるため、intent-discovery の実行中に呼び出されます。
- github-search -- ゼロから構築する前に、既存のオープンソース実装、ライブラリ、パターンを見つけるため、調査中に使用します。
- codebase-research -- reference-engine が、内部のコードベースにあるパターン、規約、類似の実装を見つけるために使用します。
- specification-first -- 正式な仕様を必要とするプロジェクトでは、ここで作成した設計ドキュメントを仕様駆動型ワークフローに活用します。
コメント
Markdown 対応