create-ai-project 1.18.1 → 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.
@@ -44,20 +44,7 @@ UI Specが存在する場合(`docs/ui-spec/{feature-name}-ui-spec.md`):
44
44
 
45
45
  ## ドキュメント作成の判断基準
46
46
 
47
- ドキュメント作成基準の詳細はdocumentation-criteriaスキルに準拠。
48
-
49
- ### 概要
50
- - ADR: コンポーネントアーキテクチャ変更、状態管理変更、Reactパターン変更、外部ライブラリ変更
51
- - Design Doc: 3コンポーネント/ファイル以上の変更で必須
52
- - 以下の場合も規模に関わらず必須:
53
- - 複雑な状態管理ロジック
54
- - 判断基準: 3つ以上の状態変数を管理、または5つ以上の非同期処理(API呼び出し)の連携
55
- - 例: 複雑なフォーム状態管理、複数のAPI呼び出しのオーケストレーション
56
- - 新しいReactパターンやカスタムフックの導入
57
- - 例: 新しいコンテキストパターン、カスタムフックライブラリ
58
-
59
- ### 重要:判定の整合性
60
- - 判定に矛盾がある場合は、その旨を明記して出力に含める
47
+ ADR/Design Docの作成閾値はdocumentation-criteriaスキルに準拠。判定に矛盾がある場合は、その旨を明記して出力に含める。
61
48
 
62
49
  ## Design Doc作成前の必須プロセス
63
50
 
@@ -87,27 +74,20 @@ Design Doc作成前に必ず実施:
87
74
  - 採用した判断(既存使用/改善提案/新規実装)とその根拠を記録
88
75
 
89
76
  ### 統合ポイント分析【重要】
90
- 新機能や既存機能の変更時に、既存コンポーネントとの統合ポイントを明確化:
91
-
92
- 1. **統合ポイントの特定と記載**
93
- ```yaml
94
- ## 統合ポイントマップ
95
- 統合点1:
96
- 既存コンポーネント: [コンポーネント名・フック名]
97
- 統合方法: [Props受け渡し/Context共有/Custom Hook利用/等]
98
- 影響度: 高(データフロー変更)/中(Props利用)/低(読み取りのみ)
99
- 必要なテスト観点: [既存コンポーネントの継続性確認内容]
100
- ```
101
-
102
- 2. **影響度による分類**
103
- - **高**: 既存のデータフローや状態管理を変更・拡張
104
- - **中**: 既存コンポーネントのstate/contextを利用・更新
105
- - **低**: 読み取りのみの操作、レンダリング追加等
106
-
107
- 3. **Design Docへの反映**
108
- - 「## 統合ポイントマップ」セクションを作成
109
- - 各統合ポイントでの責務と境界を明確化
110
- - エラー動作とローディング状態を設計段階で定義
77
+ 既存コンポーネントとのすべての統合ポイントを「## 統合ポイントマップ」セクションに記載する:
78
+
79
+ 各統合ポイントについて記録:
80
+ - 既存コンポーネント/フック名
81
+ - 統合方法(Props渡し/Context共有/Custom Hook/イベント)
82
+ - 影響度: 高(データフロー変更)/ 中(状態利用)/ 低(読み取りのみ)
83
+ - 必要なテスト観点
84
+
85
+ 各統合境界についてコントラクトを定義:
86
+ - 入力(Props): Props型と必須/オプション
87
+ - 出力(イベント): イベントハンドラーシグネチャ
88
+ - エラー時: Error Boundary、エラー状態、フォールバックUI
89
+
90
+ 各統合ポイントで既存コンポーネントとの競合(命名規則、Propsパターン)を確認し記載する。
111
91
 
112
92
  ### 合意事項チェックリスト【最重要】
113
93
  Design Doc作成開始時に必ず実施:
@@ -170,38 +150,18 @@ Design Doc作成前に実施:
170
150
 
171
151
  共通ADRが必要な場合: 複数コンポーネントに共通する技術的決定
172
152
 
173
- ### 統合ポイント仕様
174
- 既存コンポーネントとの統合ポイントを文書化(場所、旧Props、新Props、切り替え方法)。
175
-
176
153
  ### データ契約
177
154
  コンポーネント間のProps型と状態管理契約を定義(型、事前条件、保証、エラー動作)。
178
155
 
179
156
  ### 状態遷移(該当する場合)
180
157
  ステートフルコンポーネントの状態定義と遷移を文書化(loading、error、success states)。
181
158
 
182
- ### 統合境界契約【必須】
183
- コンポーネント境界でのProps型、イベントハンドラ、エラーハンドリングを定義。
184
-
185
- ```yaml
186
- 境界名: [コンポーネント統合ポイント]
187
- 入力(Props): [Props型定義]
188
- 出力(Events): [イベントハンドラシグネチャ]
189
- エラー時: [エラーハンドリング方法(Error Boundary、error state等)]
190
- ```
191
-
192
- **統合境界:**
193
- - React → DOM: コンポーネントのブラウザDOMへのレンダリング
194
- - ビルドツール → Browser: ビルド出力の静的ファイルをブラウザが提供
195
- - API → Frontend: 外部APIレスポンスをフロントエンドで処理
196
- - Context → Component: Context値をコンポーネントで消費
197
-
198
- 既存コンポーネントとの競合(命名規約、Propsパターン等)を確認し、統合不整合を防止するため文書化。
199
-
200
159
  ## 必要情報
201
160
 
202
161
  - **動作モード**:
203
162
  - `create`: 新規作成(デフォルト)
204
163
  - `update`: 既存ドキュメントの更新
164
+ - `reverse-engineer`: 既存フロントエンドアーキテクチャの現状ドキュメント化(reverse-engineerモードセクション参照)
205
165
 
206
166
  - **要件分析結果**: 要件分析の結果(規模判定、技術要件等)
207
167
  - **PRD**: PRDドキュメント(存在する場合)
@@ -223,42 +183,10 @@ Design Doc作成前に実施:
223
183
 
224
184
  ## ドキュメント出力形式
225
185
 
226
- ### ADR作成(複数案比較モード)
227
-
228
- **基本構造**:
229
- ```markdown
230
- # ADR-XXXX: [タイトル]
231
- Status: Proposed
232
-
233
- ## 背景
234
- [フロントエンドの技術的課題と制約を1-2文で]
235
-
236
- ## 選択肢
237
- ### 選択肢A: [アプローチ名]
238
- - 概要: [一文で説明]
239
- - メリット: [2-3項目]
240
- - デメリット: [2-3項目]
241
- - 工数: X日
242
-
243
- ### 選択肢B/C: [同様に文書化]
244
-
245
- ## 比較
246
- | 評価軸 | 選択肢A | 選択肢B | 選択肢C |
247
- |--------|---------|---------|---------|
248
- | 実装工数 | 3日 | 5日 | 2日 |
249
- | 保守性 | 高 | 中 | 低 |
250
- | パフォーマンス影響 | 低 | 高 | 中 |
251
-
252
- ## 決定
253
- 選択肢[X]を選択。理由: [トレードオフを含めて2-3文で]
254
- ```
255
-
256
- 詳細は `docs/adr/template-en.md` を参照。
257
-
258
- ### 通常ドキュメント作成
186
+ ### ドキュメント作成
259
187
  - **ADR**: `docs/adr/ADR-[4桁番号]-[タイトル].md` (例: ADR-0001)
260
188
  - **Design Doc**: `docs/design/[機能名]-design.md`
261
- - それぞれのテンプレート(`template-en.md`)に従う
189
+ - それぞれのテンプレート(`template-ja.md`)に従う
262
190
  - ADRの場合、既存番号を確認してmax+1を使用、初期ステータスは「Proposed」
263
191
 
264
192
  ## ADR責任範囲
@@ -368,21 +296,32 @@ class Button extends React.Component {
368
296
  - [ ] 比較マトリックスの完全性(パフォーマンス影響含む)
369
297
 
370
298
  ### Design Docチェックリスト
371
- - [ ] **合意事項チェックリスト完了**(最重要)
372
- - [ ] **前提となる共通ADR参照**(必須)
373
- - [ ] **変更影響マップ作成**(必須)
374
- - [ ] **統合境界契約定義**(必須)
375
- - [ ] **統合ポイントの完全列挙**(必須)
376
- - [ ] **Props型契約の明確化**(必須)
299
+
300
+ **全モード共通**:
301
+ - [ ] **基準特定ゲート完了**(必須)
302
+ - [ ] **コード調査エビデンス記録済み**(必須)
303
+ - [ ] **統合ポイントをコントラクト付きで列挙**(必須)
304
+ - [ ] **Props型コントラクトの明確化**(必須)
305
+ - [ ] コンポーネント階層とデータフローが図で明確に表現されているか
306
+
307
+ **create/updateモード限定**(reverse-engineerモードではスキップ):
308
+ - [ ] **合意事項チェックリストの完了**(最重要)
309
+ - [ ] **前提となる共通ADRの参照**(必須)
310
+ - [ ] **変更影響マップの作成**(必須)
377
311
  - [ ] **各フェーズのコンポーネント検証手順**(必須)
378
- - [ ] 要件への応答と設計の妥当性
379
- - [ ] テスト戦略(React Testing Library)とエラーハンドリング(Error Boundary)
380
- - [ ] コンポーネント階層とデータフローが図で明確に表現
381
- - [ ] Props変更マトリックスの完全性
382
- - [ ] 実装アプローチ選択理由(vertical/horizontal/hybrid)
383
- - [ ] 最新Reactベストプラクティス調査済み、参考文献引用
312
+ - [ ] 要件への対応と設計の妥当性
313
+ - [ ] テスト戦略とエラーハンドリング
314
+ - [ ] Props変更マトリクスの完成度
315
+ - [ ] 実装アプローチ(垂直/水平/ハイブリッド)の選択根拠
316
+ - [ ] 最新のベストプラクティスの調査と参考資料の記載
384
317
  - [ ] **複雑性評価**: complexity_levelを設定。medium/highの場合、complexity_rationaleに(1)要件/AC、(2)制約/リスクを明記
385
318
 
319
+ **reverse-engineerモード限定**:
320
+ - [ ] すべてのアーキテクチャ主張がfile:lineをevidenceとして引用
321
+ - [ ] 識別子はコードからそのまま転記
322
+ - [ ] テストの存在はGlobで確認済み
323
+ - [ ] ユニットインベントリ(提供時)の全項目を反映
324
+
386
325
  ## 受入条件作成ガイドライン
387
326
 
388
327
  **原則**: ブラウザ環境で検証可能な具体的条件を設定。曖昧な表現を避け、React Testing Libraryテストケースに変換可能な形式で文書化。
@@ -411,46 +350,40 @@ class Button extends React.Component {
411
350
 
412
351
  **原則**: AC = 隔離されたCI環境でブラウザ上で検証可能なユーザー観察可能動作
413
352
 
414
- ## 最新情報調査ガイドライン
353
+ ## 最新情報のリサーチ
415
354
 
416
- ### 調査タイミング
417
- 1. **必須調査**:
418
- - 新しいReactライブラリ・UIフレームワーク導入を検討する場合
419
- - パフォーマンス最適化を設計する場合(コード分割、遅延読み込み)
420
- - アクセシビリティ実装を設計する場合(WCAG準拠)
421
- - Reactメジャーバージョンアップ時(例: React 18 → 19)
355
+ **対象**(create/updateモード): 新規ライブラリ/フレームワーク導入、パフォーマンス最適化、アクセシビリティ設計、大幅バージョンアップ時。
422
356
 
423
- 2. **推奨調査**:
424
- - 複雑なカスタムフック実装前
425
- - 既存コンポーネントパターンの改善を検討する場合
357
+ `date +%Y`で現在年を確認し、検索クエリに含める:
358
+ - `[ライブラリ] best practices {現在年}`
359
+ - `[lib A] vs [lib B] comparison {現在年}`
360
+ - `[フレームワーク] breaking changes migration guide`
361
+ - `[フレームワーク] accessibility best practices`
426
362
 
427
- ### 調査方法
363
+ 出典はADR/Design Doc末尾の「## 参考資料」セクションにURLを記載。
428
364
 
429
- **必須調査タイミング**: 新ライブラリ導入、パフォーマンス最適化、アクセシビリティ設計、Reactバージョンアップ
365
+ **reverse-engineerモード**: スキップ。リサーチは新規設計判断用。
430
366
 
431
- **具体的検索パターン例**:
432
- - `React new features best practices`(新機能調査)
433
- - `Zustand vs Redux Toolkit comparison 2025`(状態管理選定)
434
- - `React Server Components patterns`(設計パターン)
435
- - `React breaking changes migration guide`(バージョンアップ)
436
- - `Tailwind CSS accessibility best practices`(アクセシビリティ調査)
437
- - `[ライブラリ名] official documentation`(公式情報)
367
+ ## updateモード動作
368
+ - **ADR**: 軽微な変更は既存ファイル更新、大幅な変更は新規ファイル作成
369
+ - **Design Doc**: 改訂版セクションを追加し変更履歴を記録
438
370
 
439
- **引用**: ADR/Design Doc末尾に「## References」セクションを追加してURLと説明を記載
371
+ ## reverse-engineerモード(現状フロントエンドドキュメント化)
440
372
 
441
- ### 引用形式
373
+ 既存フロントエンドアーキテクチャを現状のままドキュメント化するモード。リバースエンジニアリングワークフローで既存実装からDesign Docを作成する際に使用。
442
374
 
443
- ADR/Design Doc末尾に以下の形式で追加:
375
+ ### reverse-engineerモードでスキップする項目
376
+ - ADR作成、選択肢の比較、変更影響分析、最新情報のリサーチ、実装アプローチの決定
444
377
 
445
- ```markdown
446
- ## References
378
+ ### reverse-engineerモード実行ステップ
447
379
 
448
- - [タイトル](URL) - 参照内容の簡潔な説明
449
- - [React公式ドキュメント](URL) - 関連する設計原則や機能
450
- - [フロントエンドブログ記事](URL) - 実装パターンとベストプラクティス
451
- - [パフォーマンス最適化ガイド](URL) - レンダリング最適化手法
452
- ```
380
+ 1. **読み込みとインベントリ**: すべての主要ファイルをReadする。コンポーネント階層、エクスポートされたコンポーネント、フック、ユーティリティを記録する。ユニットインベントリが提供されている場合は、網羅性の検証基準として使用する — リストされたすべてのルート、エクスポート、テストファイルがDesign Docに反映されていること
381
+ 2. **コンポーネントツリーの追跡**: 各ページ/画面について、実装と子コンポーネントをReadする。記録: Props、状態管理、データ取得、条件付きレンダリング — 実装通りに
382
+ 3. **データフローの文書化**: 各データ取得呼び出しについて: エンドポイント、パラメータ、レスポンス構造を記録。状態管理について: 状態の構造、更新メカニズム、利用コンポーネントを記録
383
+ 4. **コントラクトの記録**: 各コンポーネントのインターフェースについて、Props名、型、必須/オプションを記録 — コードに書かれている通りに。ソースの正確な識別子を使用する
384
+ 5. **テストカバレッジの確認**: テストファイルをGlobする。どのコンポーネントにテストがあるかを記録。テストの存在は報告前にGlobで確認する
453
385
 
454
- ## updateモード動作
455
- - **ADR**: 軽微な変更は既存ファイル更新、大きな変更は新規ファイル作成
456
- - **Design Doc**: リビジョンセクションを追加し変更履歴を記録
386
+ ### reverse-engineerモード品質基準
387
+ - すべての主張がfile:lineをevidenceとして引用
388
+ - 識別子はコードからそのまま転記
389
+ - テストの存在はGlobで確認済み(推測ではない)
@@ -34,20 +34,7 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
34
34
 
35
35
  ## ドキュメント作成の判断基準
36
36
 
37
- ドキュメント作成基準の詳細はdocumentation-criteriaスキルに準拠。
38
-
39
- ### 概要
40
- - ADR: 型システム変更、データフロー変更、アーキテクチャ変更、外部依存変更
41
- - Design Doc: 3ファイル以上の変更で必須
42
- - 以下の場合も規模に関わらず必須:
43
- - 複雑な実装ロジック
44
- - 判断基準: 3つ以上の状態を管理、または5つ以上の非同期処理の連携
45
- - 例: Reduxの複雑な状態管理、Promiseチェーンが5つ以上連結
46
- - 新しいアルゴリズムやパターンの導入
47
- - 例: 新しいキャッシュ戦略、カスタムルーティング実装
48
-
49
- ### 重要:判定の整合性
50
- - 判定に矛盾がある場合は、その旨を明記して出力に含める
37
+ ADR/Design Docの作成閾値はdocumentation-criteriaスキルに準拠。判定に矛盾がある場合は、その旨を明記して出力に含める。
51
38
 
52
39
  ## Design Doc作成前の必須プロセス
53
40
 
@@ -82,7 +69,7 @@ Design Doc作成前に必ず実施:
82
69
  - 実装予定の機能に関連するキーワードで既存コードを検索
83
70
  - 同じドメイン、同じ責務、同じ設定パターンの実装を探索
84
71
  - 判断と行動:
85
- - 類似機能を発見 → その実装を使用する(新規実装は行わない)
72
+ - 類似機能を発見 → 既存の実装を使用する
86
73
  - 類似機能が技術的負債 → ADRで改善提案を作成してから実装
87
74
  - 類似機能なし → 新規実装を進める
88
75
 
@@ -108,28 +95,21 @@ Design Doc作成前に必ず実施:
108
95
  - 3基準以上不適合 → 新規構造を正当化
109
96
  - 判断と根拠をDesign Docに記録
110
97
 
111
- ### 統合ポイント分析【重要】
112
- 新機能や既存機能の変更時に、既存システムとの統合ポイントを明確化:
113
-
114
- 1. **統合ポイントの特定と記載**
115
- ```yaml
116
- ## 統合ポイントマップ
117
- 統合点1:
118
- 既存コンポーネント: [サービス名・メソッド名]
119
- 統合方法: [フック追加/呼び出し追加/データ参照等]
120
- 影響度: 高(処理フロー変更)/中(データ利用)/低(読み取りのみ)
121
- 必要なテスト観点: [既存機能の継続性確認内容]
122
- ```
123
-
124
- 2. **影響度による分類**
125
- - **高**: 既存処理フローを変更・拡張する場合
126
- - **中**: 既存データを利用・更新する場合
127
- - **低**: 読み取りのみ・ログ追加等の場合
128
-
129
- 3. **Design Docへの反映**
130
- - 「## 統合ポイントマップ」セクションを作成
131
- - 各統合点での責務と境界を明確化
132
- - エラー時の振る舞いを設計段階で決定
98
+ ### 統合ポイント【重要】
99
+ 既存システムとのすべての統合ポイントを「## 統合ポイントマップ」セクションに記載する:
100
+
101
+ 各統合ポイントについて記録:
102
+ - 既存コンポーネントとメソッド
103
+ - 統合方法(フック/呼び出し/データ参照)
104
+ - 影響度: 高(処理フロー変更)/ 中(データ利用)/ 低(読み取りのみ)
105
+ - 必要なテスト観点
106
+
107
+ 各統合境界についてコントラクトを定義:
108
+ - 入力: 何を受け取るか
109
+ - 出力: 何を返すか(同期/非同期を明記)
110
+ - エラー時: この境界でのエラー処理方法
111
+
112
+ 各統合ポイントで既存システムとの競合(優先度、命名規則)を確認し記載する。
133
113
 
134
114
  ### 合意事項チェックリスト【最重要】
135
115
  Design Doc作成の最初に必ず実施:
@@ -198,32 +178,18 @@ Design Doc作成前に実施:
198
178
 
199
179
  共通ADRが必要な場合:複数コンポーネントで共通する技術的決定
200
180
 
201
- ### 統合点の明示
202
- 既存システムとの統合ポイント(場所、旧実装、新実装、切り替え方法)を記載。
203
-
204
181
  ### データ契約
205
182
  コンポーネント間の入出力(型、前提条件、保証、エラー時動作)を定義。
206
183
 
207
184
  ### 状態遷移(該当時のみ)
208
185
  状態を持つコンポーネントの状態定義と遷移を記載。
209
186
 
210
- ### 統合境界の約束【必須】
211
- コンポーネント間の境界で、入出力・同期/非同期・エラー処理を言語非依存で定義。
212
-
213
- ```yaml
214
- 境界名: [接続点]
215
- 入力: [何を受け取るか]
216
- 出力: [何を返すか(同期/非同期明記)]
217
- エラー時: [どう処理するか]
218
- ```
219
-
220
- 既存システムとの競合(優先度、命名規則等)を確認し記載。これにより統合時の不整合を防止。
221
-
222
187
  ## 必要情報
223
188
 
224
189
  - **動作モード**:
225
190
  - `create`: 新規作成(デフォルト)
226
191
  - `update`: 既存ドキュメントの更新
192
+ - `reverse-engineer`: 既存アーキテクチャの現状ドキュメント化(reverse-engineerモードセクション参照)
227
193
 
228
194
  - **要件分析結果**: 要件分析の結果(規模判定、技術要件等)
229
195
  - **PRD**: PRDドキュメント(存在する場合)
@@ -244,38 +210,7 @@ Design Doc作成前に実施:
244
210
 
245
211
  ## ドキュメント出力形式
246
212
 
247
- ### ADR作成時(複数案比較モード)
248
-
249
- **基本構造**:
250
- ```markdown
251
- # ADR-XXXX: [タイトル]
252
- Status: Proposed
253
-
254
- ## 背景
255
- [技術的課題と制約条件を1-2文で記載]
256
-
257
- ## 選択肢
258
- ### 案A: [アプローチ名]
259
- - 概要: [1文で説明]
260
- - 利点: [2-3項目]
261
- - 欠点: [2-3項目]
262
- - 工数: X日
263
-
264
- ### 案B/C: [同様に記載]
265
-
266
- ## 比較
267
- | 評価軸 | 案A | 案B | 案C |
268
- |--------|-----|-----|-----|
269
- | 実装工数 | 3日 | 5日 | 2日 |
270
- | 保守性 | 高 | 中 | 低 |
271
-
272
- ## 決定
273
- 案[X]を選択。理由: [トレードオフ含め2-3文]
274
- ```
275
-
276
- 詳細は `docs/adr/template-ja.md` 参照。
277
-
278
- ### 通常のドキュメント作成時
213
+ ### ドキュメント作成
279
214
  - **ADR**: `docs/adr/ADR-[4桁番号]-[タイトル].md` (例: ADR-0001)
280
215
  - **Design Doc**: `docs/design/[機能名]-design.md`
281
216
  - 各々のテンプレート(`template-ja.md`)に従って作成
@@ -285,7 +220,7 @@ Status: Proposed
285
220
  ADRに含む:決定事項、根拠、原則的な指針
286
221
  ADRに含まない:スケジュール、実装手順、具体的コード
287
222
 
288
- 実装ガイドラインには原則のみ記載(例:「依存性注入を使用」○、「Phase 1で実装」×)
223
+ 実装ガイドラインには原則のみ記載(例:「依存性注入を使用」)。スケジュールや手順は含めない。
289
224
 
290
225
  ## 出力方針
291
226
  ファイル出力は即座に実行(実行時点で承認済み)。
@@ -321,32 +256,41 @@ ADRに含まない:スケジュール、実装手順、具体的コード
321
256
  ### ADRチェックリスト
322
257
  - [ ] 問題の背景と複数の選択肢の評価(最低3案)
323
258
  - [ ] トレードオフと決定理由の明確化
324
- - [ ] 実装への原則的な指針(具体的な手順は含まない)
259
+ - [ ] 実装への原則的な指針
325
260
  - [ ] 既存アーキテクチャとの整合性
326
261
  - [ ] 最新技術情報の調査実施と参考資料の記載
327
262
  - [ ] **共通ADRとの関連性の明記**(該当する場合)
328
263
  - [ ] 比較マトリクスの完成度
329
264
 
330
265
  ### Design Docチェックリスト
266
+
267
+ **全モード共通**:
268
+ - [ ] **基準特定ゲート完了**(必須)
269
+ - [ ] **コード調査エビデンス記録済み**(必須)
270
+ - [ ] **統合ポイントをコントラクト付きで列挙**(必須)
271
+ - [ ] **データ契約の明確化**(必須)
272
+ - [ ] アーキテクチャとデータフローが図で明確に表現されているか
273
+
274
+ **create/updateモード限定**(reverse-engineerモードではスキップ):
331
275
  - [ ] **合意事項チェックリストの完了**(最重要)
332
276
  - [ ] **前提となる共通ADRの参照**(必須)
333
277
  - [ ] **変更影響マップの作成**(必須)
334
- - [ ] **統合境界の約束の定義**(必須)
335
- - [ ] **統合点の完全な列挙**(必須)
336
- - [ ] **データ契約の明確化**(必須)
337
278
  - [ ] **各フェーズのE2E確認手順**(必須)
338
279
  - [ ] 要件への対応と設計の妥当性
339
280
  - [ ] テスト戦略とエラーハンドリング
340
- - [ ] アーキテクチャとデータフローが図で明確に表現されているか
341
281
  - [ ] インターフェース変更マトリクスの完成度
342
282
  - [ ] 実装アプローチ(垂直/水平/ハイブリッド)の選択根拠
343
283
  - [ ] 最新のベストプラクティスの調査と参考資料の記載
344
284
  - [ ] **複雑性評価**: complexity_levelを設定。medium/highの場合、complexity_rationaleに(1)要件/AC、(2)制約/リスクを明記
345
- - [ ] **基準特定ゲート完了**(必須)
346
- - [ ] **コード調査エビデンス記録済み**(必須)
347
285
  - [ ] **データ構造の採用判断の文書化**(新規構造導入時)
348
286
  - [ ] **フィールド伝播マップの記載**(フィールドが境界を越える場合)
349
287
 
288
+ **reverse-engineerモード限定**:
289
+ - [ ] すべてのアーキテクチャ主張がfile:lineをevidenceとして引用
290
+ - [ ] 識別子はコードからそのまま転記
291
+ - [ ] テストの存在はGlobで確認済み
292
+ - [ ] ユニットインベントリ(提供時)の全項目を反映
293
+
350
294
 
351
295
  ## 受入条件の作成ガイドライン
352
296
 
@@ -385,27 +329,44 @@ ACの出力に以下のいずれかが含まれる場合、Property注釈を付
385
329
 
386
330
  記法はtemplateを参照。
387
331
 
388
- ## 最新情報調査のガイドライン
332
+ ## 最新情報のリサーチ
389
333
 
390
- **必須調査タイミング**: 新技術導入、パフォーマンス最適化、セキュリティ設計、大幅バージョンアップ時
391
- **推奨調査**: 複雑なアルゴリズム実装前、既存パターン改善時
334
+ **対象**(create/updateモード): 新技術/ライブラリ導入、パフォーマンス最適化、セキュリティ設計、大幅バージョンアップ時。
392
335
 
393
- **検索パターン例**:
394
- 最新情報を取得するため、検索前に必ず現在年を確認:
395
- ```bash
396
- date +%Y # 例: 2025
397
- ```
398
- この年を検索クエリに含める:
399
- - `React Server Components best practices {現在年}` (新機能調査)
400
- - `PostgreSQL vs MongoDB performance comparison {現在年}` (技術選定)
401
- - `[フレームワーク名] official documentation` (公式情報は年不要)
402
-
403
- **出典記載**: ADR/Design Doc末尾に「## 参考資料」セクションを追加
404
- ```markdown
405
- ## 参考資料
406
- - [タイトル](URL) - 参照内容の簡単な説明
407
- ```
336
+ `date +%Y`で現在年を確認し、検索クエリに含める:
337
+ - `[技術] [機能] best practices {現在年}`
338
+ - `[技術A] vs [技術B] comparison {現在年}`
339
+ - `[フレームワーク] breaking changes migration guide`
340
+
341
+ 出典はADR/Design Doc末尾の「## 参考資料」セクションにURLを記載。
342
+
343
+ **reverse-engineerモード**: スキップ。リサーチは新規設計判断用。
408
344
 
409
345
  ## updateモード動作
410
346
  - **ADR**: 軽微な変更は既存ファイル更新、大幅な変更は新規ファイル作成
411
- - **Design Doc**: 改訂版セクションを追加し変更履歴を記録
347
+ - **Design Doc**: 改訂版セクションを追加し変更履歴を記録
348
+
349
+ ## reverse-engineerモード(現状ドキュメント化)
350
+
351
+ 既存アーキテクチャを現状のままドキュメント化するモード。リバースエンジニアリングワークフローで既存実装からDesign Docを作成する際に使用。
352
+
353
+ ### reverse-engineerモードでスキップする項目
354
+ - ADR作成(決定は既に行われている — 記録すべき新規決定はない)
355
+ - 選択肢の比較(評価すべき代替案がない)
356
+ - 変更影響マップ(変更を提案していない)
357
+ - フィールド伝播マップ(新規フィールドを導入していない)
358
+ - 実装アプローチの決定(実装戦略を選択する必要がない)
359
+ - 最新情報のリサーチ(存在するものを記録しており、新規設計ではない)
360
+
361
+ ### reverse-engineerモード実行ステップ
362
+
363
+ 1. **読み込みとインベントリ**: すべての主要ファイルをReadする。ファイル毎のpublicインターフェースを記録する。ユニットインベントリが提供されている場合は、網羅性の検証基準として使用する — リストされたすべてのルート、エクスポート、テストファイルがDesign Docに反映されていること
364
+ 2. **データフローの追跡**: 各エントリーポイントについて、サービス/ヘルパー/データ層を通じた呼び出しを追跡する。各々をReadする。実際のフローとエラー処理を実装通りに記録する
365
+ 3. **コントラクトの記録**: 各public API/ハンドラーについて記録: パラメータ、レスポンス構造、ステータスコード、ミドルウェア/ガード — コードに書かれている通りに。外部依存については: 何を呼び出し何が返されるかを記録。ソースの正確な識別子を使用する
366
+ 4. **データモデルの文書化**: スキーマ/型定義をReadする。記録: フィールド名、型、nullable指定、デフォルト値。enumの場合: すべての値を列挙
367
+ 5. **テストカバレッジの確認**: テストファイルをGlobする。どのインターフェースにテストがあるかを記録。テストの存在は報告前にGlobで確認する
368
+
369
+ ### reverse-engineerモード品質基準
370
+ - すべての主張がfile:lineをevidenceとして引用
371
+ - 識別子はコードからそのまま転記
372
+ - テストの存在はGlobで確認済み(推測ではない)
@@ -27,13 +27,6 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
27
27
  本エージェントの出力は **調査結果の検証と結論導出のみ**。
28
28
  解決策の導出は本エージェントのスコープ外。
29
29
 
30
- ## 主な責務
31
-
32
- 1. **Triangulation補完** - 調査で触れられていない情報源を探索し、調査結果を補完
33
- 2. **ACH(競合仮説分析)** - 調査で挙げられた仮説以外の代替仮説を生成し、証拠との整合性を評価
34
- 3. **Devil's Advocate** - 「調査結果が誤りである」と仮定し、反証を積極的に探す
35
- 4. **結論の導出** - 「最も反証されなかった仮説」として結論を導出
36
-
37
30
  ## 実行ステップ
38
31
 
39
32
  ### ステップ1: 調査結果の検証準備
@@ -52,11 +45,13 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
52
45
  - impactAnalysisの論理的妥当性を確認(追加検索は行わない)
53
46
 
54
47
  ### ステップ2: Triangulation補完
55
- 調査で確認されていない情報源を探索:
56
- - 別のコード領域
57
- - 異なる設定ファイル
58
- - 関連する外部ドキュメント
59
- - git履歴の別の観点
48
+ 調査の`investigationSources`でカバーされていないソースタイプを特定し、少なくとも1つを調査する:
49
+
50
+ 1. 入力の`investigationSources`を確認 — カバー済みのソースタイプ(code, history, dependency, config, document, external)を列挙
51
+ 2. 未カバーの各ソースタイプについて: 仮説に関連する対象を絞った調査を実施
52
+ 3. すべてのソースタイプがカバー済みの場合: 元の調査で言及されていない**別のコード領域**または**別の設定**を調査する
53
+
54
+ 各補完的な発見について、既存仮説への影響を記録する。
60
55
 
61
56
  ### ステップ3: 外部情報で補強(WebSearch)
62
57
  - 調査で見つかった仮説に関する公式情報
@@ -81,7 +81,18 @@ Register the following with TaskCreate and execute:
81
81
  Invoke investigator using Agent tool:
82
82
  - `subagent_type`: "investigator"
83
83
  - `description`: "Collect problem information"
84
- - `prompt`: "Comprehensively collect information related to the following phenomenon. Phenomenon: [Problem reported by user]"
84
+ - `prompt`: |
85
+ Comprehensively collect information related to the following phenomenon.
86
+
87
+ Phenomenon: [Problem reported by user]
88
+
89
+ Problem essence: [taskEssence from Step 0.3]
90
+ Investigation focus: [investigationFocus from Step 0.4]
91
+
92
+ [For change failures, additionally include:]
93
+ Change details: [What was changed]
94
+ Affected area: [What broke]
95
+ Shared components: [Commonalities between cause and effect]
85
96
 
86
97
  **Expected output**: Evidence matrix, comparison analysis results, causal tracking results, list of unexplored areas, investigation limitations
87
98
 
@@ -90,12 +101,20 @@ Invoke investigator using Agent tool:
90
101
  Review investigation output:
91
102
 
92
103
  **Quality Check** (verify JSON output contains the following):
93
- - [ ] comparisonAnalysis
94
- - [ ] causalChain for each hypothesis (reaching stop condition)
95
- - [ ] causeCategory for each hypothesis
96
- - [ ] Investigation covering investigationFocus items (when provided)
97
-
98
- **If quality insufficient**: Re-run investigator specifying missing items
104
+ - [ ] `comparisonAnalysis` is present and `normalImplementation` is not null (comparison target found) OR explicitly recorded as "no working implementation found"
105
+ - [ ] `causalChain` for each hypothesis reaches a stop condition (code change / design decision / external constraint)
106
+ - [ ] `causeCategory` for each hypothesis is one of: typo / logic_error / missing_constraint / design_gap / external_factor
107
+ - [ ] `investigationSources` covers at least 3 distinct source types (code, history, dependency, config, document, external)
108
+ - [ ] Investigation covers `investigationFocus` items (when provided in Step 0.4)
109
+ - [ ] Each hypothesis has at least 1 entry in `supportingEvidence` with a `source` field citing a specific file or location
110
+
111
+ **If quality insufficient**: Re-run investigator specifying missing items explicitly:
112
+ - `prompt`: |
113
+ Re-investigate with focus on the following gaps:
114
+ - Missing: [list specific missing items from quality check]
115
+
116
+ Previous investigation results (for context, do not re-investigate covered areas):
117
+ [Previous investigation JSON]
99
118
 
100
119
  **design_gap Escalation**:
101
120