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.
- package/.claude/agents-en/code-verifier.md +62 -26
- package/.claude/agents-en/investigator.md +14 -15
- package/.claude/agents-en/prd-creator.md +56 -30
- package/.claude/agents-en/scope-discoverer.md +31 -29
- package/.claude/agents-en/technical-designer-frontend.md +60 -126
- package/.claude/agents-en/technical-designer.md +72 -111
- package/.claude/agents-en/verifier.md +7 -12
- package/.claude/agents-ja/code-verifier.md +62 -26
- package/.claude/agents-ja/investigator.md +14 -15
- package/.claude/agents-ja/prd-creator.md +56 -30
- package/.claude/agents-ja/scope-discoverer.md +31 -29
- package/.claude/agents-ja/technical-designer-frontend.md +67 -134
- package/.claude/agents-ja/technical-designer.md +72 -111
- package/.claude/agents-ja/verifier.md +7 -12
- package/.claude/commands-en/diagnose.md +26 -7
- package/.claude/commands-en/reverse-engineer.md +17 -9
- package/.claude/commands-ja/diagnose.md +26 -7
- package/.claude/commands-ja/reverse-engineer.md +17 -9
- package/CHANGELOG.md +32 -0
- package/package.json +1 -1
|
@@ -44,20 +44,7 @@ UI Specが存在する場合(`docs/ui-spec/{feature-name}-ui-spec.md`):
|
|
|
44
44
|
|
|
45
45
|
## ドキュメント作成の判断基準
|
|
46
46
|
|
|
47
|
-
|
|
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
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
-
###
|
|
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-
|
|
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
|
-
|
|
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
|
-
- [ ]
|
|
380
|
-
- [ ]
|
|
381
|
-
- [ ]
|
|
382
|
-
- [ ]
|
|
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
|
-
|
|
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
|
-
|
|
365
|
+
**reverse-engineerモード**: スキップ。リサーチは新規設計判断用。
|
|
430
366
|
|
|
431
|
-
|
|
432
|
-
-
|
|
433
|
-
-
|
|
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
|
-
|
|
371
|
+
## reverse-engineerモード(現状フロントエンドドキュメント化)
|
|
440
372
|
|
|
441
|
-
|
|
373
|
+
既存フロントエンドアーキテクチャを現状のままドキュメント化するモード。リバースエンジニアリングワークフローで既存実装からDesign Docを作成する際に使用。
|
|
442
374
|
|
|
443
|
-
|
|
375
|
+
### reverse-engineerモードでスキップする項目
|
|
376
|
+
- ADR作成、選択肢の比較、変更影響分析、最新情報のリサーチ、実装アプローチの決定
|
|
444
377
|
|
|
445
|
-
|
|
446
|
-
## References
|
|
378
|
+
### reverse-engineerモード実行ステップ
|
|
447
379
|
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
380
|
+
1. **読み込みとインベントリ**: すべての主要ファイルをReadする。コンポーネント階層、エクスポートされたコンポーネント、フック、ユーティリティを記録する。ユニットインベントリが提供されている場合は、網羅性の検証基準として使用する — リストされたすべてのルート、エクスポート、テストファイルがDesign Docに反映されていること
|
|
381
|
+
2. **コンポーネントツリーの追跡**: 各ページ/画面について、実装と子コンポーネントをReadする。記録: Props、状態管理、データ取得、条件付きレンダリング — 実装通りに
|
|
382
|
+
3. **データフローの文書化**: 各データ取得呼び出しについて: エンドポイント、パラメータ、レスポンス構造を記録。状態管理について: 状態の構造、更新メカニズム、利用コンポーネントを記録
|
|
383
|
+
4. **コントラクトの記録**: 各コンポーネントのインターフェースについて、Props名、型、必須/オプションを記録 — コードに書かれている通りに。ソースの正確な識別子を使用する
|
|
384
|
+
5. **テストカバレッジの確認**: テストファイルをGlobする。どのコンポーネントにテストがあるかを記録。テストの存在は報告前にGlobで確認する
|
|
453
385
|
|
|
454
|
-
|
|
455
|
-
-
|
|
456
|
-
-
|
|
386
|
+
### reverse-engineerモード品質基準
|
|
387
|
+
- すべての主張がfile:lineをevidenceとして引用
|
|
388
|
+
- 識別子はコードからそのまま転記
|
|
389
|
+
- テストの存在はGlobで確認済み(推測ではない)
|
|
@@ -34,20 +34,7 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
|
|
|
34
34
|
|
|
35
35
|
## ドキュメント作成の判断基準
|
|
36
36
|
|
|
37
|
-
|
|
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
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
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
|
-
###
|
|
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
|
-
|
|
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
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
-
|
|
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
|
-
|
|
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`:
|
|
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
|
|
95
|
-
- [ ] causeCategory for each hypothesis
|
|
96
|
-
- [ ]
|
|
97
|
-
|
|
98
|
-
|
|
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
|
|