cursor-sdd 1.0.11 → 1.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,65 @@
1
+ <meta>
2
+ description: 詳細なプロジェクト説明で新しい仕様を初期化
3
+ argument-hint: <project-description>
4
+ </meta>
5
+
6
+ # Spec 初期化
7
+
8
+ <background_information>
9
+ - **ミッション**: 新しい仕様のディレクトリ構造とメタデータを作成し、spec駆動開発の最初のフェーズを初期化
10
+ - **成功基準**:
11
+ - ワークスペースのルートフォルダ名をプロジェクト名として使用
12
+ - `.cursor/[ルートフォルダ名]/` にspec構造を作成
13
+ - 次のフェーズ(要件生成)への明確なパスを提供
14
+ </background_information>
15
+
16
+ <instructions>
17
+ ## コアタスク
18
+ ワークスペースのルートフォルダ名をプロジェクト名として使用し、仕様構造を初期化する。
19
+
20
+ ## 実行ステップ
21
+ 1. **プロジェクト名の取得**: ワークスペースのルートフォルダ名をプロジェクト名として使用
22
+ 2. **ディレクトリ作成**: `.cursor/[ルートフォルダ名]/`
23
+ 3. **テンプレートを使用してファイルを初期化**:
24
+ - `.cursor/templates/specs/init.json` を読み込み
25
+ - `.cursor/templates/specs/requirements-init.md` を読み込み
26
+ - プレースホルダーを置換:
27
+ - `{{FEATURE_NAME}}` → ルートフォルダ名(プロジェクト名)
28
+ - `{{TIMESTAMP}}` → 現在の ISO 8601 タイムスタンプ
29
+ - `{{PROJECT_DESCRIPTION}}` → $ARGUMENTS
30
+ - `spec.json` と `requirements.md` を `.cursor/[ルートフォルダ名]/` に書き込み
31
+
32
+ ## 重要な制約
33
+ - この段階で requirements/design/tasks を生成しない
34
+ - ステージごとの開発原則に従う
35
+ - 厳格なフェーズ分離を維持
36
+ - このフェーズでは初期化のみを実行
37
+ </instructions>
38
+
39
+ ## ツールガイダンス
40
+ - **Glob** を使用して `.cursor/[ルートフォルダ名]/` が既に存在するか確認
41
+ - **Read** を使用してテンプレートを取得: `init.json` と `requirements-init.md`
42
+ - **Write** を使用してプレースホルダー置換後に spec.json と requirements.md を作成
43
+ - ファイル書き込み操作前に検証を実行
44
+
45
+ ## 出力説明
46
+ `spec.json` で指定された言語で以下の構造で出力:
47
+
48
+ 1. **プロジェクト名**: ルートフォルダ名から取得したプロジェクト名
49
+ 2. **プロジェクトサマリー**: 簡潔なサマリー(1文)
50
+ 3. **作成されたファイル**: フルパス付きの箇条書きリスト
51
+ 4. **次のステップ**: `/requirements` を示すコマンドブロック
52
+ 5. **注記**: 初期化のみが実行された理由の説明(フェーズ分離について2-3文)
53
+
54
+ **フォーマット要件**:
55
+ - Markdown見出しを使用(##、###)
56
+ - コマンドはコードブロックで囲む
57
+ - 総出力は簡潔に(250語以内)
58
+ - `spec.json.language` に従った明確でプロフェッショナルな言語を使用
59
+
60
+ ## 安全性とフォールバック
61
+ - **テンプレートが見つからない**: `.cursor/templates/specs/` にテンプレートファイルが存在しない場合、具体的な不足ファイルパスでエラーを報告し、リポジトリセットアップの確認を提案
62
+ - **ディレクトリ既存**: `.cursor/[ルートフォルダ名]/` が既に存在する場合、上書きするか確認をユーザーに求める
63
+ - **書き込み失敗**: 具体的なパスでエラーを報告し、権限またはディスク容量の確認を提案
64
+
65
+ </output>
@@ -0,0 +1,91 @@
1
+ <meta>
2
+ description: 仕様の包括的な要件を生成
3
+ argument-hint: <feature-name:$1>
4
+ </meta>
5
+
6
+ # 要件生成
7
+
8
+ <background_information>
9
+ - **ミッション**: spec初期化からのプロジェクト説明に基づいて、EARSフォーマットで包括的でテスト可能な要件を生成
10
+ - **成功基準**:
11
+ - 完全な要件ドキュメントを作成
12
+ - すべての受け入れ基準にプロジェクトのEARSパターンと制約を適用
13
+ - 実装詳細なしでコア機能にフォーカス
14
+ - メタデータを更新して生成状況を追跡
15
+ </background_information>
16
+
17
+ <instructions>
18
+ ## コアタスク
19
+ requirements.md のプロジェクト説明に基づいて、機能 **$1** の完全な要件を生成する。
20
+
21
+ ## 実行ステップ
22
+
23
+ 1. **コンテキストの読み込み**:
24
+ - `.cursor/$1/spec.json` から言語とメタデータを読み込み
25
+ - `.cursor/$1/requirements.md` からプロジェクト説明を読み込み
26
+
27
+ 2. **ガイドラインの読み込み**:
28
+ - `.cursor/rules/ears-format.md` から EARS 構文ルールを読み込み
29
+ - `.cursor/templates/specs/requirements.md` からドキュメント構造を読み込み
30
+
31
+ 3. **要件の生成**:
32
+ - プロジェクト説明に基づいて初期要件を作成
33
+ - 関連機能を論理的な要件領域にグループ化
34
+ - すべての受け入れ基準に EARS フォーマットを適用
35
+ - spec.json で指定された言語を使用
36
+
37
+ 4. **メタデータの更新**:
38
+ - `phase: "requirements-generated"` を設定
39
+ - `approvals.requirements.generated: true` を設定
40
+ - `updated_at` タイムスタンプを更新
41
+
42
+ ## 重要な制約
43
+ - 何を(WHAT)にフォーカスし、どのように(HOW)は含めない(実装詳細なし)
44
+ - 要件はテスト可能で検証可能でなければならない
45
+ - EARS文の適切な主語を選択(ソフトウェアにはシステム/サービス名)
46
+ - 最初に初期バージョンを生成し、その後ユーザーフィードバックで反復(事前の連続質問なし)
47
+ - requirements.md の要件見出しには先頭に数値IDのみを含めること(例: "Requirement 1"、"1."、"2 Feature ...")、"Requirement A" のようなアルファベットIDは使用しない
48
+ </instructions>
49
+
50
+ ## ツールガイダンス
51
+ - **最初に読み込み**: 生成前にすべてのコンテキスト(spec、rules、templates)を読み込み
52
+ - **最後に書き込み**: 完全な生成後にのみ requirements.md を更新
53
+ - 外部ドメイン知識が必要な場合のみ **WebSearch/WebFetch** を使用
54
+
55
+ ## 出力説明
56
+ spec.json で指定された言語で以下を出力:
57
+
58
+ 1. **生成された要件サマリー**: 主要な要件領域の簡潔な概要(3-5項目)
59
+ 2. **ドキュメントステータス**: requirements.md の更新と spec.json メタデータの更新を確認
60
+ 3. **次のステップ**: 進め方をガイド(承認して続行、または修正)
61
+
62
+ **フォーマット要件**:
63
+ - 明確さのためMarkdown見出しを使用
64
+ - ファイルパスはコードブロックに含める
65
+ - サマリーは簡潔に(300語以内)
66
+
67
+ ## 安全性とフォールバック
68
+
69
+ ### エラーシナリオ
70
+ - **プロジェクト説明が見つからない**: requirements.md にプロジェクト説明がない場合、ユーザーに機能詳細を確認
71
+ - **曖昧な要件**: 多くの事前質問ではなく、初期バージョンを提案してユーザーと反復
72
+ - **テンプレートが見つからない**: テンプレートファイルが存在しない場合、警告付きでインラインフォールバック構造を使用
73
+ - **言語が未定義**: spec.json で言語が指定されていない場合、日本語(`ja`)をデフォルトに
74
+ - **不完全な要件**: 生成後、要件が期待されるすべての機能をカバーしているか明示的にユーザーに確認
75
+ - **非数値の要件見出し**: 既存の見出しに先頭の数値IDがない場合(例: "Requirement A")、数値IDに正規化し、マッピングの一貫性を維持(数値とアルファベットのラベルを混在させない)
76
+
77
+ ### 次のフェーズ: 設計生成
78
+
79
+ **要件が承認された場合**:
80
+ - `.cursor/$1/requirements.md` で生成された要件をレビュー
81
+ - **オプションのギャップ分析**(既存コードベース用):
82
+ - `/validate-gap $1` を実行して現在のコードとの実装ギャップを分析
83
+ - 既存コンポーネント、統合ポイント、実装戦略を特定
84
+ - ブラウンフィールドプロジェクトには推奨、グリーンフィールドにはスキップ
85
+ - その後 `/design $1 -y` で設計フェーズに進む
86
+
87
+ **修正が必要な場合**:
88
+ - フィードバックを提供し `/requirements $1` を再実行
89
+
90
+ **注記**: 設計フェーズに進む前に承認が必須。
91
+ </output>
@@ -0,0 +1,86 @@
1
+ <meta>
2
+ description: 仕様のステータスと進捗を表示
3
+ argument-hint: <feature-name:$1>
4
+ </meta>
5
+
6
+ # 仕様ステータス
7
+
8
+ <background_information>
9
+ - **ミッション**: 仕様の包括的なステータスと進捗を表示
10
+ - **成功基準**:
11
+ - 現在のフェーズと完了状況を表示
12
+ - 次のアクションとブロッカーを特定
13
+ - 進捗の明確な可視性を提供
14
+ </background_information>
15
+
16
+ <instructions>
17
+ ## コアタスク
18
+ 機能 **$1** のステータスレポートを生成し、すべてのフェーズの進捗を表示する。
19
+
20
+ ## 実行ステップ
21
+
22
+ ### ステップ1: Specコンテキストの読み込み
23
+ - `.cursor/$1/spec.json` からメタデータとフェーズステータスを読み込み
24
+ - 既存ファイルを読み込み: `requirements.md`、`design.md`、`tasks.md`(存在する場合)
25
+ - `.cursor/$1/` ディレクトリで利用可能なファイルを確認
26
+
27
+ ### ステップ2: ステータスの分析
28
+
29
+ **各フェーズを解析**:
30
+ - **Requirements**: 要件と受け入れ基準の数をカウント
31
+ - **Design**: アーキテクチャ、コンポーネント、ダイアグラムを確認
32
+ - **Tasks**: 完了タスク vs 全タスクをカウント(`- [x]` vs `- [ ]` を解析)
33
+ - **Approvals**: spec.json で承認状況を確認
34
+
35
+ ### ステップ3: レポートの生成
36
+
37
+ spec.json で指定された言語でレポートを作成し、以下をカバー:
38
+ 1. **現在のフェーズと進捗**: ワークフローにおけるspecの位置
39
+ 2. **完了状況**: 各フェーズの完了率
40
+ 3. **タスク内訳**: タスクが存在する場合、完了/残りの数を表示
41
+ 4. **次のアクション**: 次に何をすべきか
42
+ 5. **ブロッカー**: 進捗を妨げる問題
43
+
44
+ ## 重要な制約
45
+ - spec.json の言語を使用
46
+ - 正確な完了率を計算
47
+ - 具体的な次のアクションコマンドを特定
48
+ </instructions>
49
+
50
+ ## ツールガイダンス
51
+ - **Read**: 最初に spec.json を読み込み、次に必要に応じて他のspecファイルを読み込み
52
+ - **慎重に解析**: tasks.md のチェックボックスから完了データを抽出
53
+ - **Glob** を使用してどのspecファイルが存在するか確認
54
+
55
+ ## 出力説明
56
+
57
+ spec.json で指定された言語でステータスレポートを提供:
58
+
59
+ **レポート構造**:
60
+ 1. **機能概要**: 名前、フェーズ、最終更新
61
+ 2. **フェーズステータス**: Requirements、Design、Tasks と完了率
62
+ 3. **タスク進捗**: タスクが存在する場合、X/Y 完了を表示
63
+ 4. **次のアクション**: 次に実行する具体的なコマンド
64
+ 5. **問題**: ブロッカーや不足要素
65
+
66
+ **フォーマット**: ステータス用の絵文字(✅/⏳/❌)で明確でスキャンしやすいフォーマット
67
+
68
+ ## 安全性とフォールバック
69
+
70
+ ### エラーシナリオ
71
+
72
+ **Specが見つからない**:
73
+ - **メッセージ**: "`$1` のspecが見つかりません。`.cursor/` で利用可能なspecを確認してください"
74
+ - **アクション**: `.cursor/` 内の利用可能な機能ディレクトリをリスト
75
+
76
+ **不完全なSpec**:
77
+ - **警告**: どのファイルが不足しているか特定
78
+ - **提案アクション**: 次のフェーズコマンドを指示
79
+
80
+ ### すべてのSpecをリスト
81
+
82
+ すべての利用可能なspecを見るには:
83
+ - 引数なしで実行またはワイルドカードを使用
84
+ - `.cursor/` 内のすべてのspecをステータスとともに表示
85
+
86
+ </output>
@@ -0,0 +1,155 @@
1
+ <meta>
2
+ description: 仕様の実装タスクを生成
3
+ argument-hint: <feature-name:$1> [-y:$2] [--sequential:$3]
4
+ </meta>
5
+
6
+ # 実装タスクジェネレーター
7
+
8
+ <background_information>
9
+ - **ミッション**: 技術設計を実行可能な作業項目に変換する、詳細で実行可能な実装タスクを生成
10
+ - **成功基準**:
11
+ - すべての要件が特定のタスクにマッピング
12
+ - タスクが適切なサイズ(各1-3時間)
13
+ - 適切な階層で明確なタスク進行
14
+ - 機能に焦点を当てた自然言語の説明
15
+ </background_information>
16
+
17
+ <instructions>
18
+ ## コアタスク
19
+ 承認済み要件と設計に基づいて、機能 **$1** の実装タスクを生成する。
20
+
21
+ ## 実行ステップ
22
+
23
+ ### ステップ1: コンテキストの読み込み
24
+
25
+ **必要なすべてのコンテキストを読み込み**:
26
+ - `.cursor/$1/spec.json`、`requirements.md`、`design.md`
27
+ - `.cursor/$1/tasks.md`(存在する場合、マージモード用)
28
+ - `.cursor/rules/frontend.md`(フロントエンド実装制約)
29
+
30
+ **承認の検証**:
31
+ - `-y` フラグが提供された場合($2 == "-y"): spec.json で要件と設計を自動承認
32
+ - それ以外: 両方が承認されていることを確認(されていない場合は停止、安全性とフォールバック参照)
33
+ - シーケンシャルモードの判定: `sequential = ($3 == "--sequential")`
34
+
35
+ 機能: $1
36
+ 機能ディレクトリ: .cursor/$1/
37
+ 自動承認: {$2 == "-y" なら true、それ以外 false}
38
+ シーケンシャルモード: {sequential なら true、それ以外 false}
39
+
40
+ 読み込むファイルパターン:
41
+ - .cursor/$1/*.{json,md}
42
+ - .cursor/rules/tasks-generation.md
43
+ - .cursor/rules/tasks-parallel-analysis.md(シーケンシャルモードが false の場合のみ含める)
44
+ - .cursor/templates/specs/tasks.md
45
+
46
+ モード: {tasks.md の存在に基づいて generate または merge}
47
+ 命令ハイライト:
48
+ - すべての要件をタスクにマップし、要件IDのみをリスト(カンマ区切り)、追加の説明なし
49
+ - 単一の実行可能なサブタスクはメジャータスクに昇格させ、コンテナのサマリーは簡潔に
50
+ - 並列基準を満たす場合のみ `(P)` マーカーを適用(シーケンシャルモードでは省略)
51
+ - 延期可能なMVP後の受け入れ基準フォーカスのテストカバレッジサブタスクには `- [ ]*` でマーク
52
+
53
+ ### ステップ2: 実装タスクの生成
54
+
55
+ **生成ルールとテンプレートの読み込み**:
56
+ - `.cursor/rules/tasks-generation.md` から原則を読み込み
57
+ - `sequential == false` の場合: `.cursor/rules/tasks-parallel-analysis.md` から並列判定基準を読み込み
58
+ - `.cursor/templates/specs/tasks.md` からフォーマットを読み込み(`(P)` マーカーをサポート)
59
+
60
+ **すべてのルールに従ってタスクリストを生成**:
61
+ - spec.json で指定された言語を使用
62
+ - すべての要件をタスクにマップ
63
+ - 要件カバレッジを文書化する際は、数値の要件IDのみをリスト(カンマ区切り)、説明的な接尾辞、括弧、翻訳、自由形式のラベルなし
64
+ - すべての設計コンポーネントが含まれていることを確認
65
+ - タスク進行が論理的で段階的であることを検証
66
+ - 単一サブタスク構造はメジャータスクに昇格させて折りたたみ、コンテナのみのメジャータスクで詳細を重複させない(テンプレートパターンに従う)
67
+ - 並列基準を満たすタスクに `(P)` マーカーを適用(`sequential == true` の場合はマーカーをスキップ)
68
+ - 延期可能なMVP後の受け入れ基準フォーカスのテストカバレッジサブタスクには `- [ ]*` でマーク
69
+ - 既存の tasks.md が見つかった場合、新しいコンテンツとマージ
70
+
71
+ ### ステップ3: 最終化
72
+
73
+ **書き込みと更新**:
74
+ - `.cursor/$1/tasks.md` を作成/更新
75
+ - spec.json メタデータを更新:
76
+ - `phase: "tasks-generated"` を設定
77
+ - `approvals.tasks.generated: true, approved: false` を設定
78
+ - `approvals.requirements.approved: true` を設定
79
+ - `approvals.design.approved: true` を設定
80
+ - `updated_at` タイムスタンプを更新
81
+
82
+ ## 重要な制約
83
+ - **ルールを厳密に遵守**: tasks-generation.md のすべての原則は必須
84
+ - **自然言語**: コード構造の詳細ではなく、何をするかを説明
85
+ - **完全なカバレッジ**: すべての要件がタスクにマップされなければならない
86
+ - **最大2レベル**: メジャータスクとサブタスクのみ(より深いネストなし)
87
+ - **連番**: メジャータスクは増分(1, 2, 3...)、重複なし
88
+ - **タスク統合**: すべてのタスクがシステムに接続(孤立した作業なし)
89
+ </instructions>
90
+
91
+ ## ツールガイダンス
92
+ - **最初に読み込み**: 生成前にすべてのコンテキスト、ルール、テンプレートを読み込み
93
+ - **最後に書き込み**: 完全な分析と検証後にのみ tasks.md を生成
94
+
95
+ ## 出力説明
96
+
97
+ spec.json で指定された言語で簡潔なサマリーを提供:
98
+
99
+ 1. **ステータス**: `.cursor/$1/tasks.md` にタスク生成完了を確認
100
+ 2. **タスクサマリー**:
101
+ - 合計: メジャータスク X 個、サブタスク Y 個
102
+ - Z 個のすべての要件をカバー
103
+ - 平均タスクサイズ: サブタスクあたり1-3時間
104
+ 3. **品質検証**:
105
+ - ✅ すべての要件がタスクにマップ
106
+ - ✅ タスク依存関係を検証済み
107
+ - ✅ テストタスクを含む
108
+ 4. **次のアクション**: タスクをレビューし、準備ができたら進行
109
+
110
+ **フォーマット**: 簡潔(200語以内)
111
+
112
+ ## 安全性とフォールバック
113
+
114
+ ### エラーシナリオ
115
+
116
+ **要件または設計が未承認**:
117
+ - **実行停止**: 承認済みの要件と設計なしでは続行不可
118
+ - **ユーザーメッセージ**: "タスク生成前に要件と設計の承認が必要です"
119
+ - **提案アクション**: "`/spec-tasks $1 -y` を実行して両方を自動承認して進行"
120
+
121
+ **要件または設計が見つからない**:
122
+ - **実行停止**: 両方のドキュメントが存在しなければならない
123
+ - **ユーザーメッセージ**: "`.cursor/$1/` に requirements.md または design.md がありません"
124
+ - **提案アクション**: "要件と設計フェーズを先に完了してください"
125
+
126
+ **不完全な要件カバレッジ**:
127
+ - **警告**: "すべての要件がタスクにマップされていません。カバレッジを確認してください。"
128
+ - **ユーザーアクション必要**: 意図的なギャップを確認するか、タスクを再生成
129
+
130
+ **テンプレート/ルールが見つからない**:
131
+ - **ユーザーメッセージ**: "`.cursor/rules/` または `.cursor/templates/` にテンプレートまたはルールファイルがありません"
132
+ - **フォールバック**: 警告付きでインライン基本構造を使用
133
+ - **提案アクション**: "リポジトリのセットアップを確認するか、テンプレートファイルを復元"
134
+ - **数値要件IDが見つからない**:
135
+ - **実行停止**: requirements.md のすべての要件には数値IDが必要。いずれかの要件に数値IDがない場合、停止してタスク生成前に requirements.md の修正を要求。
136
+
137
+ ### 次のフェーズ: 実装
138
+
139
+ **実装開始前**:
140
+ - **重要**: `/spec-impl` 実行前に会話履歴をクリアしてコンテキストを解放
141
+ - これは最初のタスク開始時またはタスク切り替え時に適用
142
+ - 新鮮なコンテキストでクリーンな状態と適切なタスクフォーカスを確保
143
+
144
+ **タスク承認後**:
145
+ - 特定のタスクを実行: `/spec-impl $1 1.1`(推奨: 各タスク間でコンテキストをクリア)
146
+ - 複数タスクを実行: `/spec-impl $1 1.1,1.2`(注意して使用、タスク間でコンテキストをクリア)
147
+ - 引数なし: `/spec-impl $1`(すべての保留タスクを実行 - コンテキスト膨張のため非推奨)
148
+
149
+ **修正が必要な場合**:
150
+ - フィードバックを提供し `/spec-tasks $1` を再実行
151
+ - 既存タスクは参照として使用(マージモード)
152
+
153
+ **注記**: 実装フェーズでは、適切なコンテキストと検証でタスク実行をガイド。
154
+
155
+ </output>
@@ -0,0 +1,93 @@
1
+ # 技術設計向けフルディスカバリープロセス
2
+
3
+ ## 目的
4
+ 技術設計が完全で正確かつ最新の情報に基づいていることを確保するため、包括的な調査と分析を実施する。
5
+
6
+ ## ディスカバリーステップ
7
+
8
+ ### 1. 要件分析
9
+ **要件を技術的ニーズにマッピング**
10
+ - EARSフォーマットからすべての機能要件を抽出
11
+ - 非機能要件を特定(パフォーマンス、セキュリティ、スケーラビリティ)
12
+ - 技術的制約と依存関係を決定
13
+ - コア技術課題をリスト
14
+
15
+ ### 2. 既存実装分析
16
+ **現在のシステムを理解**(修正/拡張する場合):
17
+ - コードベース構造とアーキテクチャパターンを分析
18
+ - 再利用可能なコンポーネント、サービス、ユーティリティをマッピング
19
+ - ドメイン境界とデータフローを特定
20
+ - 統合ポイントと依存関係を文書化
21
+ - アプローチを決定: 拡張 vs リファクタ vs ラップ
22
+
23
+ ### 3. 技術調査
24
+ **ベストプラクティスとソリューションを調査**:
25
+ - **WebSearchを使用**して以下を検索:
26
+ - 類似問題に対する最新のアーキテクチャパターン
27
+ - 技術スタックに対する業界のベストプラクティス
28
+ - 関連技術の最近の更新や変更
29
+ - よくある落とし穴と解決策
30
+
31
+ - **WebFetchを使用**して以下を分析:
32
+ - フレームワーク/ライブラリの公式ドキュメント
33
+ - APIリファレンスと使用例
34
+ - 移行ガイドと破壊的変更
35
+ - パフォーマンスベンチマークと比較
36
+
37
+ ### 4. 外部依存関係調査
38
+ **各外部サービス/ライブラリについて**:
39
+ - 公式ドキュメントとGitHubリポジトリを検索
40
+ - APIシグネチャと認証方法を検証
41
+ - 既存スタックとのバージョン互換性を確認
42
+ - レート制限と使用制限を調査
43
+ - コミュニティリソースと既知の問題を検索
44
+ - セキュリティの考慮事項を文書化
45
+ - 実装調査が必要なギャップを記録
46
+
47
+ ### 5. アーキテクチャパターンと境界分析
48
+ **アーキテクチャオプションを評価**:
49
+ - 関連パターンを比較(MVC、Clean、Hexagonal、Event-driven)
50
+ - 既存アーキテクチャとステアリング原則との適合性を評価
51
+ - チーム間の競合を回避するために必要なドメイン境界と所有権の継ぎ目を特定
52
+ - スケーラビリティへの影響と運用上の懸念を考慮
53
+ - 保守性とチームの専門知識を評価
54
+ - 推奨パターンと却下した代替案を `research.md` に文書化
55
+
56
+ ### 6. リスク評価
57
+ **技術的リスクを特定**:
58
+ - パフォーマンスボトルネックとスケーリング限界
59
+ - セキュリティ脆弱性と攻撃ベクトル
60
+ - 統合の複雑さと結合
61
+ - 技術的負債の生成 vs 解消
62
+ - 知識ギャップとトレーニングニーズ
63
+
64
+ ## 調査ガイドライン
65
+
66
+ ### 検索するタイミング
67
+ **常に検索するもの**:
68
+ - 外部APIドキュメントと更新
69
+ - 認証/認可のセキュリティベストプラクティス
70
+ - 特定されたボトルネックに対するパフォーマンス最適化テクニック
71
+ - 依存関係の最新バージョンと移行パス
72
+
73
+ **不確かな場合に検索するもの**:
74
+ - 特定のユースケースに対するアーキテクチャパターン
75
+ - データフォーマット/プロトコルの業界標準
76
+ - コンプライアンス要件(GDPR、HIPAAなど)
77
+ - 予想負荷に対するスケーラビリティアプローチ
78
+
79
+ ### 検索戦略
80
+ 1. 公式ソース(ドキュメント、GitHub)から開始
81
+ 2. 最近のブログ記事や記事をチェック(過去6ヶ月)
82
+ 3. 一般的な問題についてStack Overflowを確認
83
+ 4. 類似のオープンソース実装を調査
84
+
85
+ ## 出力要件
86
+ 設計決定に影響するすべての発見を共有テンプレートを使用して `research.md` にキャプチャ:
87
+ - アーキテクチャ、技術整合、コントラクトに影響する主要なインサイト
88
+ - 調査中に発見された制約
89
+ - 推奨アプローチと選択したアーキテクチャパターン(根拠付き)
90
+ - 却下した代替案とトレードオフ(設計決定セクションに文書化)
91
+ - コンポーネント & インターフェースコントラクトに情報を提供する更新されたドメイン境界
92
+ - リスクと軽減戦略
93
+ - 実装中にさらなる調査が必要なギャップ
@@ -0,0 +1,49 @@
1
+ # 拡張向け軽量ディスカバリープロセス
2
+
3
+ ## 目的
4
+ 機能拡張のための既存システムと統合要件を迅速に分析する。
5
+
6
+ ## 焦点を絞ったディスカバリーステップ
7
+
8
+ ### 1. 拡張ポイント分析
9
+ **統合アプローチを特定**:
10
+ - 既存の拡張ポイントまたはインターフェースを特定
11
+ - 変更スコープを決定(ファイル、コンポーネント)
12
+ - 従うべき既存パターンを確認
13
+ - 後方互換性の要件を特定
14
+
15
+ ### 2. 依存関係チェック
16
+ **互換性を検証**:
17
+ - 新しい依存関係のバージョン互換性を確認
18
+ - APIコントラクトが変更されていないことを検証
19
+ - パイプラインに破壊的変更がないことを確認
20
+
21
+ ### 3. クイック技術検証
22
+ **新しいライブラリの場合のみ**:
23
+ - WebSearchで公式ドキュメントを使用
24
+ - 基本的な使用パターンを検証
25
+ - 既知の互換性問題を確認
26
+ - ライセンス互換性を確認
27
+ - 主要な発見を `research.md` に記録(技術整合セクション)
28
+
29
+ ### 4. 統合リスク評価
30
+ **クイックリスクチェック**:
31
+ - 既存機能への影響
32
+ - パフォーマンスへの影響
33
+ - セキュリティの考慮事項
34
+ - テスト要件
35
+
36
+ ## フルディスカバリーにエスカレーションするタイミング
37
+ 以下を発見した場合、フルディスカバリーに切り替える:
38
+ - 重大なアーキテクチャ変更が必要
39
+ - 複雑な外部サービス統合
40
+ - セキュリティ上センシティブな実装
41
+ - パフォーマンスクリティカルなコンポーネント
42
+ - 未知またはドキュメントが不十分な依存関係
43
+
44
+ ## 出力要件
45
+ - 明確な統合アプローチ(境界への影響を `research.md` に記録)
46
+ - 変更するファイル/コンポーネントのリスト
47
+ - バージョン付きの新しい依存関係
48
+ - 統合リスクと軽減策
49
+ - テストの焦点領域