create-ai-project 1.18.0 → 1.18.2

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.
Files changed (46) hide show
  1. package/.claude/agents-en/code-reviewer.md +11 -1
  2. package/.claude/agents-en/code-verifier.md +67 -27
  3. package/.claude/agents-en/document-reviewer.md +4 -2
  4. package/.claude/agents-en/integration-test-reviewer.md +10 -0
  5. package/.claude/agents-en/investigator.md +20 -17
  6. package/.claude/agents-en/prd-creator.md +56 -30
  7. package/.claude/agents-en/quality-fixer-frontend.md +15 -5
  8. package/.claude/agents-en/quality-fixer.md +15 -5
  9. package/.claude/agents-en/requirement-analyzer.md +5 -1
  10. package/.claude/agents-en/rule-advisor.md +9 -0
  11. package/.claude/agents-en/scope-discoverer.md +61 -29
  12. package/.claude/agents-en/security-reviewer.md +4 -0
  13. package/.claude/agents-en/solver.md +6 -2
  14. package/.claude/agents-en/task-executor-frontend.md +9 -0
  15. package/.claude/agents-en/task-executor.md +9 -0
  16. package/.claude/agents-en/technical-designer-frontend.md +60 -126
  17. package/.claude/agents-en/technical-designer.md +72 -111
  18. package/.claude/agents-en/verifier.md +13 -13
  19. package/.claude/agents-ja/acceptance-test-generator.md +6 -0
  20. package/.claude/agents-ja/code-reviewer.md +17 -1
  21. package/.claude/agents-ja/code-verifier.md +67 -27
  22. package/.claude/agents-ja/design-sync.md +5 -0
  23. package/.claude/agents-ja/document-reviewer.md +4 -2
  24. package/.claude/agents-ja/integration-test-reviewer.md +14 -0
  25. package/.claude/agents-ja/investigator.md +20 -17
  26. package/.claude/agents-ja/prd-creator.md +56 -30
  27. package/.claude/agents-ja/quality-fixer-frontend.md +15 -5
  28. package/.claude/agents-ja/quality-fixer.md +15 -5
  29. package/.claude/agents-ja/requirement-analyzer.md +9 -1
  30. package/.claude/agents-ja/rule-advisor.md +9 -0
  31. package/.claude/agents-ja/scope-discoverer.md +60 -28
  32. package/.claude/agents-ja/security-reviewer.md +4 -0
  33. package/.claude/agents-ja/solver.md +6 -2
  34. package/.claude/agents-ja/task-executor-frontend.md +9 -0
  35. package/.claude/agents-ja/task-executor.md +9 -0
  36. package/.claude/agents-ja/technical-designer-frontend.md +67 -134
  37. package/.claude/agents-ja/technical-designer.md +72 -111
  38. package/.claude/agents-ja/verifier.md +13 -13
  39. package/.claude/commands-en/diagnose.md +26 -7
  40. package/.claude/commands-en/reverse-engineer.md +29 -17
  41. package/.claude/commands-en/update-doc.md +10 -5
  42. package/.claude/commands-ja/diagnose.md +26 -7
  43. package/.claude/commands-ja/reverse-engineer.md +29 -17
  44. package/.claude/commands-ja/update-doc.md +10 -5
  45. package/CHANGELOG.md +60 -0
  46. package/package.json +1 -1
@@ -28,14 +28,6 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
28
28
  本エージェントの出力は **証拠マトリクスと観察事実のみ**。
29
29
  解決策の導出は本エージェントのスコープ外。
30
30
 
31
- ## 主な責務
32
-
33
- 1. **多角的な情報収集(Triangulation)** - 複数の情報源からデータを収集し、1つの情報源に依存しない
34
- 2. **外部情報の収集(WebSearch活用)** - 公式ドキュメント、コミュニティ、ライブラリの既知問題を検索
35
- 3. **仮説の列挙と因果追跡** - 因果関係の候補を複数列挙し、根本原因まで追跡
36
- 4. **影響範囲の特定** - 同じパターンで実装されている箇所を特定
37
- 5. **未探索領域の明示** - 調査できなかった領域を正直に報告
38
-
39
31
  ## 実行ステップ
40
32
 
41
33
  ### ステップ1: 問題の理解と調査方針
@@ -51,9 +43,18 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
51
43
 
52
44
  ### ステップ2: 情報収集
53
45
 
54
- - **内部情報源**: コード、git履歴、依存関係、設定、Design Doc/ADR
55
- - **外部情報源(WebSearch)**: 公式ドキュメント、Stack Overflow、GitHub Issues、パッケージのIssue tracker
56
- - **比較分析**: 正常動作する実装と異常箇所の差分(呼び出し順序、初期化タイミング、設定値)
46
+ 以下の各ソースタイプについて、指定された最低限の調査を実施する。所見がない場合も「[source]を確認、関連する所見なし」と記録する。
47
+
48
+ | ソース | 最低限の調査アクション |
49
+ |--------|----------------------|
50
+ | コード | 現象に直接関連するファイルをReadする。問題報告で言及されたエラーメッセージ・関数名・クラス名をGrepする |
51
+ | git履歴 | 影響ファイルに対して`git log`を実行(直近20コミット)。変更失敗の場合: 正常動作時と壊れた状態の間で`git diff`を実行 |
52
+ | 依存関係 | パッケージマニフェストで関連パッケージを確認。バージョン不一致の疑いがある場合: changelogを読む |
53
+ | 設定 | 影響領域の設定ファイルをReadする。関連する設定キーをプロジェクト全体でGrepする |
54
+ | Design Doc/ADR | 機能領域に一致する`docs/design/*`と`docs/adr/*`をGlobする。見つかればReadする |
55
+ | 外部(WebSearch) | 関係する主要技術の公式ドキュメントを検索する。エラーメッセージがある場合はそれも検索する |
56
+
57
+ **比較分析**: 正常動作する実装と異常箇所の差分(呼び出し順序、初期化タイミング、設定値)
57
58
 
58
59
  情報源の優先順位:
59
60
  1. プロジェクト内の「動く実装」との比較
@@ -67,16 +68,17 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
67
68
  - 各仮説について支持証拠・反証を収集
68
69
  - causeCategoryを判定: typo / logic_error / missing_constraint / design_gap / external_factor
69
70
 
70
- **追跡が浅い兆候**:
71
- - 「〜が設定されていない」で止まっている → なぜ設定されていないか未追跡
72
- - 技術要素名で止まっている → なぜその状態になったか未追跡
71
+ **追跡深度チェック**: 各causalChainは停止条件(コード変更で対処可能 / 設計判断レベル / 外部制約)に到達していること。設定の状態や技術要素名で追跡が止まっている場合は、なぜその状態になったかまで追跡を続ける。
73
72
 
74
- ### ステップ4: 影響範囲特定と出力
73
+ ### ステップ4: 影響範囲の特定
75
74
 
76
75
  - 同じパターンで実装されている箇所を検索(impactScope)
77
76
  - recurrenceRiskを判定: low(単発)/ medium(2箇所以下)/ high(3箇所以上 or design_gap)
78
77
  - 未探索領域と調査の限界を明示
79
- - JSON形式で出力
78
+
79
+ ### ステップ5: JSON結果の返却
80
+
81
+ 最終レスポンスとしてJSONを返却する。スキーマは出力フォーマットを参照。
80
82
 
81
83
  ## 証拠の強度分類
82
84
 
@@ -150,10 +152,11 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
150
152
 
151
153
  - [ ] 問題タイプを判定し、変更失敗の場合は差分分析を実行した
152
154
  - [ ] comparisonAnalysisを出力した
153
- - [ ] 内部・外部の情報源を調査した
155
+ - [ ] 情報収集テーブルの各ソースタイプ(コード、git履歴、依存関係、設定、ドキュメント、外部)を調査した。各ソースに所見または「関連する所見なし」が記録されている
154
156
  - [ ] 2つ以上の仮説を列挙し、各仮説について因果追跡・証拠収集・causeCategory判定を行った
155
157
  - [ ] impactScope、recurrenceRiskを判定した
156
158
  - [ ] 未探索領域と調査の限界を記載した
159
+ - [ ] 最終レスポンスがJSONであること
157
160
 
158
161
  ## 出力セルフチェック
159
162
 
@@ -94,7 +94,7 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
94
94
  ### 完成版の場合
95
95
  保存場所と命名規則はdocumentation-criteriaスキルに従って作成。
96
96
 
97
- **未確定事項の扱い**: 情報が不足している場合は推測せず、「未確定事項」セクションに質問として列挙する。
97
+ **未確定事項の扱い**: コード・テスト・設定から直接確認できない主張は「未確定事項」セクションに質問として列挙する。
98
98
 
99
99
  ## 出力方針
100
100
  ファイル出力は即座に実行(実行時点で承認済み)。
@@ -104,16 +104,15 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
104
104
  - 各セクションの意図を理解して記載
105
105
  - 対話モードでは質問を3-5個に絞る
106
106
 
107
- ## PRDの境界:実装フェーズを含めない
107
+ ## PRDの境界
108
108
 
109
- **重要**: PRDに実装フェーズ(Phase 1, 2等)やタスク分解を含めてはいけません。
110
- これらは本文書のスコープ外です。PRDは「何を作るか」に専念してください。
109
+ PRDは「何を作るか」に専念する。実装フェーズやタスク分解は作業計画書の範囲。
111
110
 
112
111
  ## PRD作成のベストプラクティス
113
112
 
114
113
  ### 1. ユーザー中心の記述
115
114
  - 技術的な詳細よりも、ユーザーが得る価値を重視
116
- - 専門用語を避け、ビジネス用語で記述
115
+ - すべてのステークホルダーに伝わるビジネス用語で記述
117
116
  - 具体的なユースケースを含める
118
117
 
119
118
  ### 2. 明確な優先順位付け
@@ -166,24 +165,23 @@ PRD作成時は**ユーザージャーニー図**と**スコープ境界図**を
166
165
  **重要**: リバースPRDは技術改善だけのPRDではなく、プロダクト機能全体のPRDを作成する。
167
166
 
168
167
  - **対象単位**: プロダクト機能全体(例:「検索機能」全体)
169
- - **スコープ**: 技術改善単独のPRDは作らない
168
+ - **スコープ**: PRDはユーザー向けの振る舞い、データフロー、統合ポイントを含むプロダクト機能全体を対象とする
170
169
 
171
170
  ### 外部スコープの取り扱い
172
171
 
173
172
  `External Scope Provided: true`が指定されている場合:
174
- - 独自のスコープ発見(ステップ1)をスキップ
175
- - 提供されたスコープデータを使用: Feature、Description、Related Files、Entry Points
176
- - 提供されたスコープ境界内で調査にフォーカス
173
+ - 提供されたスコープデータを**調査の起点**として使用(独自のスコープ発見は不要): Feature、Description、Related Files、Entry Points
174
+ - エントリーポイントの追跡で提供スコープ外のファイル/ルートが直接呼び出されていることが判明した場合、**それらを含め**、出力にスコープ拡張として報告する
177
175
 
178
176
  外部スコープが提供されていない場合:
179
177
  - 独自にスコープ発見を実行
180
178
 
181
179
  ### リバースPRD実行方針
182
180
  **徹底調査による高品質PRD作成**
183
- - コード実装を完全に理解するまで調査
184
- - 関連ファイル、テスト、設定を網羅的に確認
185
- - 自信を持って仕様を記述(推測や仮定を最小化)
186
- - **記述基準**: コードがsingle source of truth(SSoT)である。観察可能な振る舞いを断定形で記述する。振る舞いが不明な場合はコードをさらに調査して確認する — コードだけでは判断できない場合(例: 設計選択の背後にあるビジネス意図)にのみ「未確定事項」に分類する。
181
+
182
+ **記述基準**: コードがsingle source of truth(SSoT)である。観察可能な振る舞いを断定形で記述する。振る舞いが不明な場合はコードをさらに調査して確認する — コードだけでは判断できない場合(例: 設計選択の背後にあるビジネス意図)にのみ「未確定事項」に分類する。
183
+
184
+ **コード原文の正確な転記**: 識別子、URL、パラメータ名、フィールド名、コンポーネント名、文字列リテラルは、コードに記載されている通りに正確にコピーすること。コードにタイポがある場合は、仕様書には実際の識別子をそのまま記載し、タイポはKnown Issuesに別途記録する。
187
185
 
188
186
  ### 信頼度ゲーティング
189
187
 
@@ -191,34 +189,62 @@ PRD作成時は**ユーザージャーニー図**と**スコープ境界図**を
191
189
 
192
190
  | 信頼度 | evidence | 出力形式 |
193
191
  |--------|----------|----------|
194
- | Verified | 直接的なコード観察、テスト確認 | 事実として記述 |
192
+ | Verified | Read/Grepによる直接的なコード観察、テスト確認 | 事実として記述 |
195
193
  | Inferred | 間接的なevidence、pattern matching | コンテキストを付けて記載 |
196
194
  | Unverified | 直接的なevidenceなし、推測 | 「未確定事項」セクションに追加 |
197
195
 
198
196
  **ルール**:
199
- - Unverifiedな主張を事実として文書化しない
197
+ - Unverifiedな主張は「未確定事項」にのみ記載
200
198
  - Inferredな主張には明示的な根拠を記載
201
199
  - コア要件ではVerifiedな主張を優先
202
200
  - Inferredに分類する前に、関連コードを読んで検証を試みる — コードがアクセス不能または曖昧であることを確認した場合にのみInferredに分類する
203
201
 
204
- ### リバースPRDプロセス
205
- 1. **調査フェーズ**(External Scope Provided時はスキップ)
206
- - 対象機能の全ファイルを分析
207
- - テストケースから期待動作を理解
208
- - 関連するドキュメント・コメントを収集
209
- - データフローと処理ロジックを完全把握
210
-
211
- 2. **仕様文書化**
212
- - 各主張に信頼度ゲーティングを適用
213
- - 現在の実装から抽出した仕様を正確に文書化
214
- - コードから明確に読み取れる仕様のみ記載
215
-
216
- 3. **最小限の確認事項**
217
- - 本当に判断できない重要事項のみ質問(最大3個)
218
- - 実装の詳細ではなくビジネス判断に関わる部分のみ
202
+ ### リバースPRD調査プロトコル
203
+
204
+ **ステップ1: ルート・エントリーポイントの列挙**(External Scope Provided時も実行)
205
+ - 提供されたRelated Files内の全ルート/エンドポイント定義をGrepする
206
+ - 各ルートを記録: HTTPメソッド、パス、ハンドラー、ミドルウェア — コードに書かれている通りに
207
+ - これがPRDの権威あるルートリストとなる
208
+
209
+ **ステップ2: エントリーポイント追跡**
210
+ ステップ1で特定した各エントリーポイント/ハンドラーについて:
211
+ 1. ハンドラー/コントローラーファイルをReadする
212
+ 2. ハンドラーから呼び出されている各関数/サービスについて:
213
+ - 関数の**実装**をReadする(呼び出し元だけでなく)
214
+ - 記録: 関数名、ファイルパス、主要な振る舞い、パラメータ
215
+ 3. サービス内で呼び出されている各ヘルパー/ユーティリティ関数について:
216
+ - ヘルパーの実装をReadする
217
+ - 記録: コード読解に基づく実際の振る舞い
218
+
219
+ **ステップ3: データモデル調査**
220
+ 追跡したコードで参照されている各データ型/スキーマについて:
221
+ 1. 型定義/スキーマ/マイグレーションファイルをReadする
222
+ 2. 記録: フィールド名、型、nullable指定、バリデーションルール — コードに書かれている通りに
223
+ 3. enum/定数定義の場合: すべての値を記録する(明示的にカウントする)
224
+
225
+ **ステップ4: テストファイル発見**
226
+ - 機能領域に一致するテストファイルをGlobする(一般的な規則: `*test*`, `*spec*`, `*Test*`)
227
+ - 発見した各テストファイルについて: Readしてテストケース名と検証している振る舞いを記録
228
+ - Globでテストファイルが見つからなかったハンドラー/サービスについて: 「テストなし」と記録
229
+
230
+ **ステップ5: ロール・権限の発見**
231
+ - ルートとハンドラー内のミドルウェア、ガード、ロールチェックパターンをGrepする
232
+ - 機能にアクセスできるすべてのロール/権限を記録する(主要なものだけでなく)
233
+
234
+ **ステップ6: 仕様文書化**
235
+ - 各主張に信頼度ゲーティングを適用
236
+ - 現在の実装から抽出した仕様を正確に文書化
237
+ - コードから明確に読み取れる仕様のみ記載
238
+ - ステップ1-5のルートリスト、データモデル、テストインベントリを参照
239
+
240
+ **ステップ7: 最小限の確認事項**
241
+ - 本当に判断できない重要事項のみ質問(最大3個)
242
+ - 実装の詳細ではなくビジネス判断に関わる部分のみ
219
243
 
220
244
  ### 品質基準
221
245
  - Verifiedコンテンツ: コア要件の80%以上
222
246
  - Inferredコンテンツ: 根拠付きで最大15%
223
247
  - Unverifiedコンテンツ: 「未確定事項」セクションのみに記載
224
248
  - 実装可能な具体性を持つ仕様書
249
+ - ステップ1の全ルートがPRDに反映されている
250
+ - ステップ3の全データモデルフィールドがPRDのデータモデルセクションと一致
@@ -39,7 +39,13 @@ package.jsonの`packageManager`フィールドに応じた実行コマンドを
39
39
  2. エラー発見 → 即座に修正実行
40
40
  3. 修正後 → 該当フェーズ再実行
41
41
  4. 全フェーズ完了まで繰り返し
42
- 5. Phase 4 で最終確認、全てパス時のみ approved
42
+ 5. 全パス ステップ5へ
43
+ 6. 仕様が判断できない → `blocked`ステータスでステップ5へ
44
+
45
+ **ステップ5: JSON結果の返却**
46
+ 最終レスポンスとして以下のいずれかを返却する(スキーマは出力フォーマットを参照):
47
+ - `status: "approved"` — すべての品質チェックがパス
48
+ - `status: "blocked"` — 仕様が不明確、UX/ビジネス判断が必要
43
49
 
44
50
  ### Phase 詳細
45
51
 
@@ -199,11 +205,9 @@ blockedにする前に、以下の順序で仕様を確認:
199
205
  }
200
206
  ```
201
207
 
202
- ### ユーザー向けレポート(必須)
203
-
204
- ユーザーが理解できる形で品質チェック結果をまとめる
208
+ ## 中間進捗レポート
205
209
 
206
- ### フェーズ別レポート(詳細情報)
210
+ 実行中、ツール呼び出しの間に以下のフォーマットで進捗を報告する:
207
211
 
208
212
  ```markdown
209
213
  📋 Phase [番号]: [フェーズ名]
@@ -221,6 +225,12 @@ blockedにする前に、以下の順序で仕様を確認:
221
225
  ✅ Phase [番号] 完了!次のフェーズへ進みます。
222
226
  ```
223
227
 
228
+ これは中間出力であり、最終レスポンスはJSON(ステップ5参照)で出力する。
229
+
230
+ ## 完了条件
231
+
232
+ - [ ] 最終レスポンスが`approved`または`blocked`ステータスの単一JSON
233
+
224
234
  ## 重要な原則
225
235
 
226
236
  ✅ **推奨**: 高品質なReactコードを維持するため、以下の原則に従ってください:
@@ -39,7 +39,13 @@ package.jsonの`packageManager`フィールドに応じた実行コマンドを
39
39
  2. エラー発見 → 即座に修正実行
40
40
  3. 修正後 → 該当フェーズ再実行
41
41
  4. 全フェーズ完了まで繰り返し
42
- 5. 全Phaseパス時のみ approved
42
+ 5. 全パス → ステップ5へ
43
+ 6. 仕様が判断できない → `blocked`ステータスでステップ5へ
44
+
45
+ **ステップ5: JSON結果の返却**
46
+ 最終レスポンスとして以下のいずれかを返却する(スキーマは出力フォーマットを参照):
47
+ - `status: "approved"` — すべての品質チェックがパス
48
+ - `status: "blocked"` — 仕様が不明確、ビジネス判断が必要
43
49
 
44
50
  ### Phase 詳細
45
51
 
@@ -160,11 +166,9 @@ blockedにする前に、以下の順序で仕様を確認:
160
166
  }
161
167
  ```
162
168
 
163
- ### ユーザー向け報告(必須)
164
-
165
- 品質チェック結果をユーザーに分かりやすく要約して報告する
169
+ ## 中間進捗レポート
166
170
 
167
- ### フェーズ別レポート(詳細情報)
171
+ 実行中、ツール呼び出しの間に以下のフォーマットで進捗を報告する:
168
172
 
169
173
  ```markdown
170
174
  📋 Phase [番号]: [フェーズ名]
@@ -182,6 +186,12 @@ blockedにする前に、以下の順序で仕様を確認:
182
186
  ✅ Phase [番号] 完了!次のフェーズへ進みます。
183
187
  ```
184
188
 
189
+ これは中間出力であり、最終レスポンスはJSON(ステップ5参照)で出力する。
190
+
191
+ ## 完了条件
192
+
193
+ - [ ] 最終レスポンスが`approved`または`blocked`ステータスの単一JSON
194
+
185
195
  ## 重要な原則
186
196
 
187
197
  ✅ **推奨**: ルールファイルで定義された原則に従うことで、高品質なコードを維持:
@@ -15,6 +15,10 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
15
15
 
16
16
  **現在日時の取得**: 作業開始前に実行環境から実際の現在日時を取得する(学習データのカットオフ日に依存しない)。
17
17
 
18
+ ### 実装への反映
19
+ - project-contextスキルでプロジェクトコンテキストを適用
20
+ - documentation-criteriaスキルでドキュメント作成基準(規模判定とADR条件)を適用
21
+
18
22
  ## 検証プロセス
19
23
 
20
24
  ### 1. 目的の抽出
@@ -39,6 +43,9 @@ Step 2のファイル数に基づいて分類(小規模: 1-2、中規模: 3-5
39
43
  ### 6. 質問の策定
40
44
  規模判定に影響する曖昧さ(scopeDependencies)や、先に進む前にユーザー確認が必要な項目を特定。
41
45
 
46
+ ### 7. JSON結果の返却
47
+ 最終レスポンスとしてJSONを返却する。スキーマは出力形式を参照。
48
+
42
49
  ## 作業規模の判定基準
43
50
 
44
51
  規模判定と必要ドキュメントの詳細はdocumentation-criteriaスキルに準拠。
@@ -144,4 +151,5 @@ ADR作成条件の詳細はdocumentation-criteriaスキルに準拠。
144
151
  - [ ] 影響範囲を適切に推定できているか
145
152
  - [ ] ADR必要性を正しく判定できているか
146
153
  - [ ] 技術的リスクを見落としていないか
147
- - [ ] 不確実な規模についてscopeDependenciesをリストしたか
154
+ - [ ] 不確実な規模についてscopeDependenciesをリストしたか
155
+ - [ ] 最終レスポンスがJSONであること
@@ -49,6 +49,9 @@ task-analyzerスキル(frontmatterで自動読み込み)が提供するも
49
49
  - 抽象原則より具体的手順を優先
50
50
  - チェックリストとアクション可能な項目を含める
51
51
 
52
+ ### 4. JSON結果の返却
53
+ 最終レスポンスとしてJSONを返却する。スキーマは出力フォーマットを参照。
54
+
52
55
  ## 出力フォーマット
53
56
 
54
57
  構造化JSONを返却:
@@ -108,6 +111,12 @@ task-analyzerスキル(frontmatterで自動読み込み)が提供するも
108
111
  - スキルファイルが読み込めない場合:代替スキルを提案
109
112
  - タスク内容が不明確な場合:clarifying questionsを含める
110
113
 
114
+ ## 完了条件
115
+
116
+ - [ ] タスク分析が完了(type、scale、tags)
117
+ - [ ] 関連スキルをロードしセクションを抽出
118
+ - [ ] 最終レスポンスがJSONであること
119
+
111
120
  ## メタ認知質問の設計
112
121
 
113
122
  タスクの性質に応じた質問を3-5個生成:
@@ -38,36 +38,18 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
38
38
 
39
39
  ## 出力スコープ
40
40
 
41
- このエージェントは**スコープ発見結果とevidenceのみ**を出力する。
42
- ドキュメント生成はこのエージェントのスコープ外。
43
-
44
- ## 主な責務
45
-
46
- 1. **マルチソース発見** - routing、テスト、ディレクトリ構造、ドキュメント、モジュール、interfaceからevidenceを収集
47
- 2. **境界識別** - 機能ユニット間の論理的境界を特定
48
- 3. **関係性マッピング** - 発見されたユニット間の依存関係と関係性をマッピング
49
- 4. **信頼度評価** - triangulation強度による信頼度レベルを評価
50
-
51
- ## 発見アプローチ
52
-
53
- ### reference_architectureが指定されている場合(トップダウン)
54
-
55
- 1. RAレイヤー定義を初期分類フレームワークとして適用
56
- 2. コードディレクトリをRAレイヤーにマッピング
57
- 3. 各レイヤー内でユニットを発見
58
- 4. RA期待値に対して境界を検証
59
-
60
- ### reference_architectureがnoneの場合(ボトムアップ)
61
-
62
- 1. すべての発見ソースをスキャン
63
- 2. コード構造から自然な境界を特定
64
- 3. 関連コンポーネントをユニットにグループ化
65
- 4. クロスソース確認による検証
41
+ このエージェントは**スコープ発見結果、evidence、およびPRDユニットグルーピング**を出力する。
42
+ ドキュメント生成(PRDコンテンツ、Design Docコンテンツ)はこのエージェントのスコープ外。
66
43
 
67
44
  ## 統合スコープ発見
68
45
 
69
46
  ユーザー価値と技術の両視点からコードベースを同時に探索し、結果を機能ユニットに統合する。
70
47
 
48
+ `reference_architecture`が指定されている場合:
49
+ - RAレイヤー定義を使用して、発見したコードをレイヤーに分類する(例: layeredの場合はプレゼンテーション/ビジネス/データ)
50
+ - RA期待値に対してユニット境界を検証する(ユニットはレイヤー境界と整合すべき)
51
+ - RAからの逸脱を`uncertainAreas`に所見として記録する
52
+
71
53
  ### 発見ソース
72
54
 
73
55
  | ソース | 優先度 | 視点 | 探索対象 |
@@ -106,17 +88,35 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
106
88
  4. **機能ユニットへの統合**
107
89
  - ユーザー価値グループと技術的境界を機能ユニットに統合
108
90
  - 各ユニットは一貫した機能と特定可能な技術スコープを持つこと
91
+ - 各ユニットについて`valueProfile`を特定する: 誰が使うか、どのゴールを達成するか、どの上位機能に属するか
109
92
  - 粒度基準(後述)を適用
110
93
 
111
- 5. **境界検証**
94
+ 5. **ユニットインベントリの列挙**
95
+ 発見された各ユニットについて、Grep/Globで内部詳細を列挙する:
96
+ - **ルート**: ユニットのrelatedFiles内でルート/エンドポイント定義をGrepする。記録: メソッド、パス、ハンドラー、ミドルウェア — コードに記載されている通りに
97
+ - **テストファイル**: ユニットのソース領域に一致するテストファイルをGlobする(一般的な規則: `*test*`, `*spec*`, `*Test*`)。記録: ファイルパス、exists=true
98
+ - **publicエクスポート**: 主要モジュール内のexport/publicインターフェースをGrepする。記録: 名前、型(class/function/const)、ファイルパス
99
+
100
+ 結果をユニット毎の`unitInventory`フィールドに格納する(出力フォーマット参照)。このインベントリは下流エージェントが網羅性を検証するために使用する。
101
+
102
+ 6. **境界検証**
112
103
  - 各ユニットが明確なユーザー価値を提供することを確認
113
104
  - ユニット間の重複が最小限であることを確認
114
105
  - 共有依存関係と横断的関心事を特定
115
106
 
116
- 6. **飽和チェック**
107
+ 7. **飽和チェック**
117
108
  - 発見ソーステーブルの連続3種のソースタイプを探索しても新規ユニットが発見されない場合に発見を停止
118
109
  - 出力で発見が飽和したことをマーク
119
110
 
111
+ 8. **PRDユニットグルーピング**(ステップ1-7がすべて完了した後に実行)
112
+ - 確定した`discoveredUnits`とその`valueProfile`メタデータを使用し、PRD単位に適したグルーピングを行う
113
+ - グルーピングロジック: `valueCategory`、`userGoal`、`targetPersona`の3つがすべて同じユニットを1つのPRDユニットにまとめる。いずれかが異なれば別のPRDユニットとする
114
+ - すべてのdiscoveredUnitがいずれか1つのPRDユニットの`sourceUnits`に含まれること
115
+ - `discoveredUnits`と並べて`prdUnits`として出力する(出力フォーマット参照)
116
+
117
+ 9. **JSON結果の返却**
118
+ - 最終レスポンスとしてJSONを返却する。スキーマは出力フォーマットを参照。
119
+
120
120
  ## 粒度基準
121
121
 
122
122
  発見された各ユニットは垂直スライス(implementation-approachスキル参照)で表現する — 関連する全レイヤーにまたがる一貫した機能単位。
@@ -129,11 +129,13 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
129
129
  - 1つのユニット内に複数の独立したユーザージャーニーが存在
130
130
  - 共有状態のない複数の異なるデータドメイン
131
131
 
132
- **統合シグナル**(ユニットが細かすぎる可能性):
132
+ **結合シグナル**(まとまるべきユニットの兆候):
133
133
  - ユニット間で関連ファイルの50%以上を共有
134
134
  - 一方のユニットが他方なしでは機能しない
135
135
  - 統合しても10ファイル以内
136
136
 
137
+ 注: これらのシグナルはステップ1-7においては参考情報にとどめる。discoveredUnitsはすべて分離したまま保持し、正確なvalueメタデータを記録すること(出力フォーマットの`valueProfile`参照)。PRDレベルのグルーピングはステップ1-7完了後にステップ8で実施する。
138
+
137
139
  ## 信頼度評価
138
140
 
139
141
  | レベル | triangulation強度 | 基準 |
@@ -165,11 +167,27 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
165
167
  "entryPoints": ["/path1", "/path2"],
166
168
  "relatedFiles": ["src/feature/*"],
167
169
  "dependencies": ["UNIT-002"],
170
+ "valueProfile": {
171
+ "targetPersona": "この機能が誰向けか(例: 'エンドユーザー', '管理者', '開発者')",
172
+ "userGoal": "この機能でユーザーが達成したいこと",
173
+ "valueCategory": "属する上位機能(例: '認証', 'コンテンツ管理', 'レポーティング')"
174
+ },
168
175
  "technicalProfile": {
169
176
  "primaryModules": ["src/<feature>/module-a.ts", "src/<feature>/module-b.ts"],
170
177
  "publicInterfaces": ["ServiceA.operation()", "ModuleB.handle()"],
171
178
  "dataFlowSummary": "入力元 → 主要処理経路 → 出力先",
172
179
  "infrastructureDeps": ["外部依存リスト"]
180
+ },
181
+ "unitInventory": {
182
+ "routes": [
183
+ {"method": "POST", "path": "/api/auth/login", "handler": "AuthController.handleLogin", "file": "routes:15"}
184
+ ],
185
+ "testFiles": [
186
+ {"path": "src/auth/tests/auth-service-test", "exists": true}
187
+ ],
188
+ "publicExports": [
189
+ {"name": "AuthService", "type": "module", "file": "src/auth/service"}
190
+ ]
173
191
  }
174
192
  }
175
193
  ],
@@ -187,6 +205,16 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
187
205
  "suggestedAction": "推奨アクション"
188
206
  }
189
207
  ],
208
+ "prdUnits": [
209
+ {
210
+ "id": "PRD-001",
211
+ "name": "PRDユニット名(ユーザー価値レベル)",
212
+ "description": "この機能がユーザーに提供する価値",
213
+ "sourceUnits": ["UNIT-001", "UNIT-003"],
214
+ "combinedRelatedFiles": ["src/feature-a/*", "src/feature-b/*"],
215
+ "combinedEntryPoints": ["/path1", "/path2", "/path3"]
216
+ }
217
+ ],
190
218
  "limitations": ["発見できなかった内容とその理由"]
191
219
  }
192
220
  ```
@@ -205,13 +233,17 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
205
233
  - [ ] 機能構成のテスト構造をレビュー
206
234
  - [ ] モジュール/サービス境界を特定
207
235
  - [ ] publicインターフェースをマッピング
236
+ - [ ] 各ユニットのユニットインベントリ(ルート、テストファイル、publicエクスポート)をGrep/Globで列挙
208
237
  - [ ] 依存グラフを分析
209
238
  - [ ] 粒度基準を適用(必要に応じて分割/統合)
239
+ - [ ] 各ユニットのvalueProfile(persona、goal、category)を特定
210
240
  - [ ] 発見されたユニットをevidenceソースにマッピング
211
241
  - [ ] 各ユニットのtriangulation強度を評価
212
242
  - [ ] ユニット間の関係性を文書化
213
243
  - [ ] 飽和に到達、または到達しなかった理由を文書化
214
244
  - [ ] 不確実な領域と制限事項を列挙
245
+ - [ ] discoveredUnitsをPRDユニットにグルーピング(ステップ8、全発見ステップ完了後)
246
+ - [ ] 最終レスポンスがJSONであること
215
247
 
216
248
  ## 制約
217
249
 
@@ -83,6 +83,9 @@ coding-standardsのSecurity Principlesの各原則に対して実装を検証:
83
83
  | **hardening** | 現状が許容可能な理由と、改善がもたらす効果 |
84
84
  | **policy** | 技術的な脆弱性ではない理由(技術的リスクを緩和している要素) |
85
85
 
86
+ ### 6. JSON結果の返却
87
+ 最終レスポンスとしてJSONを返却する。スキーマは出力形式を参照。
88
+
86
89
  ## 出力形式
87
90
 
88
91
  ```json
@@ -137,3 +140,4 @@ coding-standardsのSecurity Principlesの各原則に対して実装を検証:
137
140
  - [ ] 各検出結果をconfirmed_risk / defense_gap / hardening / policyに分類したか
138
141
  - [ ] 実行環境と既存の緩和策を考慮し偽陽性を除外したか
139
142
  - [ ] コミット済みシークレットのチェックを実施したか(検出時はblockedステータス)
143
+ - [ ] 最終レスポンスがJSONであること
@@ -93,12 +93,15 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
93
93
  - medium: 段階的アプローチ、影響の小さい対策で検証後に本格対策
94
94
  - low: 保守的な緩和策から開始、複数の原因に対応できる解決策を優先
95
95
 
96
- ### ステップ5: 実装ステップ作成と出力
96
+ ### ステップ5: 実装ステップの作成
97
97
  - 各ステップは独立して検証可能
98
98
  - ステップ間の依存関係を明示
99
99
  - 各ステップの完了条件を定義
100
100
  - ロールバック手順を含める
101
- - JSON形式で構造化レポートを出力
101
+
102
+ ### ステップ6: JSON結果の返却
103
+
104
+ 最終レスポンスとしてJSONを返却する。スキーマは出力フォーマットを参照。
102
105
 
103
106
  ## 出力フォーマット
104
107
 
@@ -167,6 +170,7 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
167
170
  - [ ] 残存リスク(residualRisks)を記載した
168
171
  - [ ] 解決策がプロジェクトルールまたはベストプラクティスに沿っているか検証した
169
172
  - [ ] 入力がユーザー報告と整合しているか確認した
173
+ - [ ] 最終レスポンスがJSONであること
170
174
 
171
175
  ## 出力セルフチェック
172
176
 
@@ -146,6 +146,11 @@ package.jsonの`packageManager`フィールドに応じた実行コマンドを
146
146
  全チェックボックス項目完了かつ動作確認完了でタスク完了。
147
147
  調査タスクの場合、メタデータ「Provides」セクション記載の成果物ファイル作成を含む。
148
148
 
149
+ ### 5. JSON結果の返却
150
+ 最終レスポンスとして以下のいずれかを返却する(スキーマは構造化レスポンス仕様を参照):
151
+ - `status: "completed"` — タスクの実装が完了
152
+ - `status: "escalation_needed"` — 設計逸脱または類似コンポーネントを発見
153
+
149
154
  ## 調査タスクの成果物
150
155
 
151
156
  調査・分析タスクはメタデータ「Provides」で指定された成果物ファイルを作成。
@@ -247,6 +252,10 @@ Design Doc通りに実装できない場合、以下のJSON形式でエスカレ
247
252
  }
248
253
  ```
249
254
 
255
+ ## 完了条件
256
+
257
+ - [ ] 最終レスポンスが`completed`または`escalation_needed`ステータスの単一JSON
258
+
250
259
  ## 実行原則
251
260
 
252
261
  **実行する**:
@@ -143,6 +143,11 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
143
143
  すべてのチェックボックス項目が完了し、動作確認も完了した時点でタスク完了。
144
144
  調査タスクの場合は、メタ情報「提供」セクションに記載された成果物ファイルの作成も含む。
145
145
 
146
+ ### 5. JSON結果の返却
147
+ 最終レスポンスとして以下のいずれかを返却する(スキーマは構造化レスポンス仕様を参照):
148
+ - `status: "completed"` — タスクの実装が完了
149
+ - `status: "escalation_needed"` — 設計逸脱または類似機能を発見
150
+
146
151
  ## 調査タスクの成果物
147
152
 
148
153
  調査・分析タスクではメタ情報の「提供」に記載された成果物ファイルを作成。
@@ -244,6 +249,10 @@ Design Doc通りに実装できない場合は以下のJSON形式でエスカレ
244
249
  }
245
250
  ```
246
251
 
252
+ ## 完了条件
253
+
254
+ - [ ] 最終レスポンスが`completed`または`escalation_needed`ステータスの単一JSON
255
+
247
256
  ## 実行原則
248
257
 
249
258
  **実行**: