create-ai-project 1.11.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 (150) hide show
  1. package/.claude/agents/acceptance-test-generator.md +316 -0
  2. package/.claude/agents/code-reviewer.md +193 -0
  3. package/.claude/agents/document-reviewer.md +182 -0
  4. package/.claude/agents/prd-creator.md +186 -0
  5. package/.claude/agents/quality-fixer.md +295 -0
  6. package/.claude/agents/requirement-analyzer.md +161 -0
  7. package/.claude/agents/rule-advisor.md +194 -0
  8. package/.claude/agents/task-decomposer.md +291 -0
  9. package/.claude/agents/task-executor.md +270 -0
  10. package/.claude/agents/technical-designer.md +343 -0
  11. package/.claude/agents/work-planner.md +181 -0
  12. package/.claude/agents-en/acceptance-test-generator.md +256 -0
  13. package/.claude/agents-en/code-reviewer.md +195 -0
  14. package/.claude/agents-en/design-sync.md +225 -0
  15. package/.claude/agents-en/document-reviewer.md +190 -0
  16. package/.claude/agents-en/integration-test-reviewer.md +195 -0
  17. package/.claude/agents-en/prd-creator.md +196 -0
  18. package/.claude/agents-en/quality-fixer-frontend.md +334 -0
  19. package/.claude/agents-en/quality-fixer.md +291 -0
  20. package/.claude/agents-en/requirement-analyzer.md +165 -0
  21. package/.claude/agents-en/rule-advisor.md +194 -0
  22. package/.claude/agents-en/task-decomposer.md +291 -0
  23. package/.claude/agents-en/task-executor-frontend.md +276 -0
  24. package/.claude/agents-en/task-executor.md +272 -0
  25. package/.claude/agents-en/technical-designer-frontend.md +441 -0
  26. package/.claude/agents-en/technical-designer.md +371 -0
  27. package/.claude/agents-en/work-planner.md +216 -0
  28. package/.claude/agents-ja/acceptance-test-generator.md +256 -0
  29. package/.claude/agents-ja/code-reviewer.md +195 -0
  30. package/.claude/agents-ja/design-sync.md +225 -0
  31. package/.claude/agents-ja/document-reviewer.md +192 -0
  32. package/.claude/agents-ja/integration-test-reviewer.md +195 -0
  33. package/.claude/agents-ja/prd-creator.md +194 -0
  34. package/.claude/agents-ja/quality-fixer-frontend.md +335 -0
  35. package/.claude/agents-ja/quality-fixer.md +292 -0
  36. package/.claude/agents-ja/requirement-analyzer.md +164 -0
  37. package/.claude/agents-ja/rule-advisor.md +194 -0
  38. package/.claude/agents-ja/task-decomposer.md +291 -0
  39. package/.claude/agents-ja/task-executor-frontend.md +276 -0
  40. package/.claude/agents-ja/task-executor.md +272 -0
  41. package/.claude/agents-ja/technical-designer-frontend.md +442 -0
  42. package/.claude/agents-ja/technical-designer.md +370 -0
  43. package/.claude/agents-ja/work-planner.md +213 -0
  44. package/.claude/commands/build.md +78 -0
  45. package/.claude/commands/design.md +27 -0
  46. package/.claude/commands/implement.md +79 -0
  47. package/.claude/commands/plan.md +43 -0
  48. package/.claude/commands/project-inject.md +76 -0
  49. package/.claude/commands/refine-rule.md +206 -0
  50. package/.claude/commands/review.md +78 -0
  51. package/.claude/commands/sync-rules.md +116 -0
  52. package/.claude/commands/task.md +13 -0
  53. package/.claude/commands-en/build.md +77 -0
  54. package/.claude/commands-en/design.md +39 -0
  55. package/.claude/commands-en/front-build.md +103 -0
  56. package/.claude/commands-en/front-design.md +42 -0
  57. package/.claude/commands-en/front-plan.md +40 -0
  58. package/.claude/commands-en/implement.md +75 -0
  59. package/.claude/commands-en/plan.md +45 -0
  60. package/.claude/commands-en/project-inject.md +76 -0
  61. package/.claude/commands-en/refine-rule.md +208 -0
  62. package/.claude/commands-en/review.md +78 -0
  63. package/.claude/commands-en/sync-rules.md +116 -0
  64. package/.claude/commands-en/task.md +13 -0
  65. package/.claude/commands-ja/build.md +75 -0
  66. package/.claude/commands-ja/design.md +37 -0
  67. package/.claude/commands-ja/front-build.md +103 -0
  68. package/.claude/commands-ja/front-design.md +42 -0
  69. package/.claude/commands-ja/front-plan.md +40 -0
  70. package/.claude/commands-ja/implement.md +73 -0
  71. package/.claude/commands-ja/plan.md +43 -0
  72. package/.claude/commands-ja/project-inject.md +76 -0
  73. package/.claude/commands-ja/refine-rule.md +206 -0
  74. package/.claude/commands-ja/review.md +78 -0
  75. package/.claude/commands-ja/sync-rules.md +116 -0
  76. package/.claude/commands-ja/task.md +13 -0
  77. package/.claude/settings.local.json +74 -0
  78. package/.husky/pre-commit +1 -0
  79. package/.husky/pre-push +3 -0
  80. package/.madgerc +14 -0
  81. package/.tsprunerc +11 -0
  82. package/CLAUDE.en.md +102 -0
  83. package/CLAUDE.ja.md +102 -0
  84. package/CLAUDE.md +111 -0
  85. package/LICENSE +21 -0
  86. package/README.ja.md +233 -0
  87. package/README.md +243 -0
  88. package/bin/create-project.js +87 -0
  89. package/biome.json +51 -0
  90. package/docs/adr/template-en.md +64 -0
  91. package/docs/adr/template-ja.md +64 -0
  92. package/docs/design/template-en.md +281 -0
  93. package/docs/design/template-ja.md +285 -0
  94. package/docs/guides/en/quickstart.md +111 -0
  95. package/docs/guides/en/rule-editing-guide.md +266 -0
  96. package/docs/guides/en/sub-agents.md +343 -0
  97. package/docs/guides/en/use-cases.md +308 -0
  98. package/docs/guides/ja/quickstart.md +112 -0
  99. package/docs/guides/ja/rule-editing-guide.md +266 -0
  100. package/docs/guides/ja/sub-agents.md +343 -0
  101. package/docs/guides/ja/use-cases.md +290 -0
  102. package/docs/guides/sub-agents.md +306 -0
  103. package/docs/plans/20250123-integration-test-improvement.md +993 -0
  104. package/docs/plans/template-en.md +130 -0
  105. package/docs/plans/template-ja.md +130 -0
  106. package/docs/prd/template-en.md +109 -0
  107. package/docs/prd/template-ja.md +109 -0
  108. package/docs/rules/ai-development-guide.md +260 -0
  109. package/docs/rules/architecture/implementation-approach.md +136 -0
  110. package/docs/rules/documentation-criteria.md +180 -0
  111. package/docs/rules/project-context.md +38 -0
  112. package/docs/rules/rules-index.yaml +137 -0
  113. package/docs/rules/technical-spec.md +47 -0
  114. package/docs/rules/typescript-testing.md +188 -0
  115. package/docs/rules/typescript.md +166 -0
  116. package/docs/rules-en/architecture/implementation-approach.md +136 -0
  117. package/docs/rules-en/coding-standards.md +333 -0
  118. package/docs/rules-en/documentation-criteria.md +184 -0
  119. package/docs/rules-en/frontend/technical-spec.md +143 -0
  120. package/docs/rules-en/frontend/typescript-testing.md +124 -0
  121. package/docs/rules-en/frontend/typescript.md +131 -0
  122. package/docs/rules-en/integration-e2e-testing.md +149 -0
  123. package/docs/rules-en/project-context.md +38 -0
  124. package/docs/rules-en/rules-index.yaml +211 -0
  125. package/docs/rules-en/technical-spec.md +86 -0
  126. package/docs/rules-en/typescript-testing.md +149 -0
  127. package/docs/rules-en/typescript.md +116 -0
  128. package/docs/rules-ja/architecture/implementation-approach.md +136 -0
  129. package/docs/rules-ja/coding-standards.md +333 -0
  130. package/docs/rules-ja/documentation-criteria.md +180 -0
  131. package/docs/rules-ja/frontend/technical-spec.md +143 -0
  132. package/docs/rules-ja/frontend/typescript-testing.md +124 -0
  133. package/docs/rules-ja/frontend/typescript.md +131 -0
  134. package/docs/rules-ja/integration-e2e-testing.md +149 -0
  135. package/docs/rules-ja/project-context.md +38 -0
  136. package/docs/rules-ja/rules-index.yaml +196 -0
  137. package/docs/rules-ja/technical-spec.md +86 -0
  138. package/docs/rules-ja/typescript-testing.md +149 -0
  139. package/docs/rules-ja/typescript.md +116 -0
  140. package/package.json +98 -0
  141. package/scripts/check-unused-exports.js +69 -0
  142. package/scripts/cleanup-test-processes.sh +32 -0
  143. package/scripts/post-setup.js +110 -0
  144. package/scripts/set-language.js +310 -0
  145. package/scripts/setup-project.js +199 -0
  146. package/scripts/show-coverage.js +74 -0
  147. package/src/index.ts +11 -0
  148. package/templates/.gitignore.template +52 -0
  149. package/tsconfig.json +50 -0
  150. package/vitest.config.mjs +47 -0
@@ -0,0 +1,260 @@
1
+ # AI開発者ガイド - 技術的判断基準とアンチパターン集
2
+
3
+ ## 技術的アンチパターン(赤信号パターン)
4
+
5
+ 以下のパターンを検出したら即座に停止し、設計を見直すこと:
6
+
7
+ ### コード品質のアンチパターン
8
+ 1. **同じようなコードを3回以上書いた** - Rule of Threeに違反
9
+ 2. **単一ファイルに複数の責務が混在** - 単一責任原則(SRP)違反
10
+ 3. **同じ内容を複数ファイルで定義** - DRY原則違反
11
+ 4. **依存関係を確認せずに変更** - 予期しない影響の可能性
12
+ 5. **コメントアウトでコード無効化** - バージョン管理を活用すべき
13
+ 6. **エラーの握りつぶし** - 問題の隠蔽は技術的負債
14
+ 7. **型アサーション(as)の多用** - 型安全性の放棄
15
+
16
+ ### 設計のアンチパターン
17
+ - **「一旦動くように」という思考** - 技術的負債の蓄積
18
+ - **継ぎ足し実装** - 既存コードへの無計画な追加
19
+ - **不確実技術の楽観的実装** - 未知要素を「たぶん動く」前提で設計
20
+ - **対処療法的修正** - 根本原因を解決しない表面的な修正
21
+ - **無計画な大規模変更** - 段階的アプローチの欠如
22
+
23
+ ## フォールバック処理に関する設計原則
24
+
25
+ ### 基本原則:Fail-Fast
26
+ 分散システムにおいて、フォールバック処理よりもプライマリコードの信頼性向上を優先する設計思想。
27
+
28
+ ### フォールバック実装の判断基準
29
+ - **原則禁止**: エラー時の無条件フォールバックは実装しない
30
+ - **例外的許可**: Design Docで明示的に定義された場合のみ実装
31
+ - **レイヤー責務**:
32
+ - インフラ層: エラーを必ず上位に投げる(フォールバック判断なし)
33
+ - アプリケーション層: ビジネス要件に基づく判断を実装
34
+
35
+ ### フォールバック過多の検出
36
+ - 同一機能で3つ目のcatch文を書く時点で設計見直しを必須とする
37
+ - フォールバックを実装する前にDesign Docでの定義を確認
38
+ - エラーは適切にログ出力し、失敗を明確にする
39
+
40
+ ## Rule of Three - コード重複の判断基準
41
+
42
+ Martin Fowler「Refactoring」に基づく重複コードの扱い方:
43
+
44
+ | 重複回数 | 対応 | 理由 |
45
+ |---------|------|------|
46
+ | 1回目 | インライン実装 | 将来の変化が予測できない |
47
+ | 2回目 | 将来の統合を意識 | パターンが見え始める |
48
+ | 3回目 | 共通化実施 | パターンが確立された |
49
+
50
+ ### 共通化の判断基準
51
+
52
+ **共通化すべきケース**
53
+ - ビジネスロジックの重複
54
+ - 複雑な処理アルゴリズム
55
+ - 一括変更が必要になる可能性が高い箇所
56
+ - バリデーションルール
57
+
58
+ **共通化を避けるべきケース**
59
+ - 偶然の一致(たまたま同じコード)
60
+ - 将来異なる方向に進化する可能性
61
+ - 共通化により可読性が著しく低下
62
+ - テストコード内の簡単なヘルパー
63
+
64
+ ### 実装例
65
+ ```typescript
66
+ // ❌ 1回目の重複で即共通化
67
+ function validateUserEmail(email: string) { /* ... */ }
68
+ function validateContactEmail(email: string) { /* ... */ }
69
+
70
+ // ✅ 3回目で共通化
71
+ function validateEmail(email: string, context: 'user' | 'contact' | 'admin') { /* ... */ }
72
+ ```
73
+
74
+ ## よくある失敗パターンと回避方法
75
+
76
+ ### パターン1: エラー修正の連鎖
77
+ **症状**: エラーを修正すると新しいエラーが発生
78
+ **原因**: 根本原因を理解せずに表面的な修正
79
+ **回避方法**: 5 Whysで根本原因を特定してから修正
80
+
81
+ ### パターン2: 型安全性の放棄
82
+ **症状**: any型やasの多用
83
+ **原因**: 型エラーを回避したい衝動
84
+ **回避方法**: unknown型と型ガードで安全に処理
85
+
86
+ ### パターン3: テスト不足での実装
87
+ **症状**: 実装後にバグ多発
88
+ **原因**: Red-Green-Refactorプロセスの無視
89
+ **回避方法**: 必ず失敗するテストから開始
90
+
91
+ ### パターン4: 技術的不確実性の無視
92
+ **症状**: 新技術導入時の想定外エラー多発
93
+ **原因**: 事前調査なしで「公式ドキュメント通りなら動くはず」
94
+ **回避方法**:
95
+ - タスクファイル冒頭に確実性評価を記載
96
+ ```
97
+ 確実性: low(理由: MCP接続の実例がない)
98
+ 探索的実装: true
99
+ フォールバック: 従来APIを使用
100
+ ```
101
+ - 確実性lowの場合、最初に最小限の動作確認コードを作成
102
+ - 動作確認できたら本実装、できなければフォールバック実行
103
+
104
+ ### パターン5: 既存コード調査不足
105
+ **症状**: 重複実装、アーキテクチャ不整合、結合時の障害
106
+ **原因**: 実装前の既存コード理解不足
107
+ **回避方法**:
108
+ - 実装前に類似機能の存在を必ず検索(同じドメイン、責務、設定パターンをキーワードに)
109
+ - 類似機能を発見 → その実装を使用する(新規実装は行わない)
110
+ - 類似機能が技術的負債 → ADRで改善提案を作成してから実装
111
+ - 類似機能が存在しない → 既存の設計思想に沿って新規実装
112
+ - すべての判断と根拠をDesign Docの「既存コードベース分析」セクションに記録
113
+
114
+ ## デバッグ手法
115
+
116
+ ### 1. エラー分析手順
117
+ 1. エラーメッセージ(最初の行)を正確に読む
118
+ 2. スタックトレースの最初と最後に注目
119
+ 3. 自分のコードが現れる最初の行を特定
120
+
121
+ ### 2. 5 Whys - 根本原因分析
122
+ ```
123
+ 症状: TypeScriptのビルドエラー
124
+ Why1: 型定義が一致しない → Why2: インターフェースが更新された
125
+ Why3: 依存関係の変更 → Why4: パッケージ更新の影響
126
+ Why5: 破壊的変更を含むメジャーバージョンアップ
127
+ 根本原因: package.jsonでのバージョン指定が不適切
128
+ ```
129
+
130
+ ### 3. 最小再現コード
131
+ 問題を切り分けるため、最小限のコードで再現を試みる:
132
+ - 関連のない部分を削除
133
+ - モックで外部依存を置き換え
134
+ - 問題が再現する最小構成を作成
135
+
136
+ ### 4. デバッグログ出力
137
+ ```typescript
138
+ console.log('DEBUG:', {
139
+ context: 'user-creation',
140
+ input: { email, name },
141
+ state: currentState,
142
+ timestamp: new Date().toISOString()
143
+ })
144
+ ```
145
+
146
+ ## 品質チェックコマンドリファレンス
147
+
148
+ ### Phase 1-3: 基本チェック
149
+ ```bash
150
+ # Biome総合チェック(lint + format)
151
+ npm run check
152
+
153
+ # 未使用エクスポートの検出
154
+ npm run check:unused
155
+
156
+ # TypeScriptビルド
157
+ npm run build
158
+ ```
159
+
160
+ ### Phase 4-6: テストと最終確認
161
+ ```bash
162
+ # テスト実行
163
+ npm test
164
+
165
+ # カバレッジ測定(キャッシュクリア)
166
+ npm run test:coverage:fresh
167
+
168
+ # 全体統合チェック
169
+ npm run check:all
170
+ ```
171
+
172
+ ### 補助コマンド
173
+ ```bash
174
+ # カバレッジレポート確認
175
+ open coverage/index.html
176
+
177
+ # Vitestプロセスのクリーンアップ(テスト後必須)
178
+ npm run cleanup:processes
179
+
180
+ # 安全なテスト実行(自動クリーンアップ付き)
181
+ npm run test:safe
182
+
183
+ # 自動修正
184
+ npm run format # フォーマット修正
185
+ npm run lint:fix # Lint修正
186
+ ```
187
+
188
+ ### トラブルシューティング
189
+ - **ポート使用中エラー**: `npm run cleanup:processes`
190
+ - **キャッシュ問題**: `npm run test:coverage:fresh`
191
+ - **依存関係エラー**: `npm ci`で再インストール
192
+
193
+ ## 技術的判断が必要な場面
194
+
195
+ ### 抽象化のタイミング
196
+ - 具体的な実装を3回書いてからパターンを抽出
197
+ - YAGNIを意識し、現在必要な機能のみ実装
198
+ - 将来の拡張性より現在のシンプルさを優先
199
+
200
+ ### パフォーマンス vs 可読性
201
+ - 明確なボトルネックがない限り可読性を優先
202
+ - 計測してから最適化(推測するな、計測せよ)
203
+ - 最適化する場合はコメントで理由を明記
204
+
205
+ ### 型定義の粒度
206
+ - 過度に細かい型は保守性を低下させる
207
+ - ドメインを適切に表現する型を設計
208
+ - ユーティリティ型を活用して重複を削減
209
+
210
+ ## 継続的改善のマインドセット
211
+
212
+ - **謙虚**: 完璧なコードは存在しない、フィードバック歓迎
213
+ - **勇気**: 必要なリファクタリングは大胆に実行
214
+ - **透明性**: 技術的な判断理由を明確に記録
215
+
216
+ ## 実装作業の完全性担保
217
+
218
+ ### 影響範囲調査の必須手順
219
+
220
+ **完了定義**: 以下3段階すべての完了
221
+
222
+ #### 1. 検索(Discovery)
223
+ ```bash
224
+ Grep -n "TargetClass\|TargetMethod" -o content
225
+ Grep -n "DependencyClass" -o content
226
+ Grep -n "targetData\|SetData\|UpdateData" -o content
227
+ ```
228
+
229
+ #### 2. 読解(Understanding)
230
+ **必須**: 発見した全ファイルを読み込み、作業に必要な部分をコンテキストに含める:
231
+ - 呼び出し元の目的と文脈
232
+ - 依存関係の方向
233
+ - データフロー: 生成→変更→参照
234
+
235
+ #### 3. 特定(Identification)
236
+ 影響範囲の構造化報告(必須):
237
+ ```
238
+ ## 影響範囲分析
239
+ ### 直接影響: ClassA、ClassB(理由明記)
240
+ ### 間接影響: SystemX、PrefabY(連携経路明記)
241
+ ### 処理フロー: 入力→処理1→処理2→出力
242
+ ```
243
+
244
+ **重要**: 検索のみで完了とせず、3段階すべてを実行すること
245
+
246
+ ### 未使用コード削除ルール
247
+
248
+ 未使用コード検出時 → 使用予定?
249
+ - Yes → 即実装(保留禁止)
250
+ - No → 即削除(Git履歴に残る)
251
+
252
+ 対象: コード・ドキュメント・設定ファイル
253
+
254
+ ### 既存コード削除判断フロー
255
+
256
+ ```
257
+ 使用中? No → 即削除(Git履歴に残る)
258
+ Yes → 動作? No → 削除+再実装
259
+ Yes → 修正
260
+ ```
@@ -0,0 +1,136 @@
1
+ # 実装戦略選択フレームワーク(メタ認知的アプローチ)
2
+
3
+ ## メタ認知的戦略選択プロセス
4
+
5
+ ### Phase 1: 現状の包括的分析
6
+
7
+ **核心質問**: 「既存の実装はどうなっているのか?」
8
+
9
+ #### 分析フレームワーク
10
+ ```yaml
11
+ アーキテクチャ分析: 責務分離、データフロー、依存関係、技術的負債
12
+ 実装品質評価: コード品質、テストカバレッジ、パフォーマンス、セキュリティ
13
+ 歴史的文脈理解: 現在の形の理由、過去判断の妥当性、制約の変化、要求の進化
14
+ ```
15
+
16
+ #### メタ認知質問リスト
17
+ - この実装の真の責務は何か?
18
+ - どの部分がビジネス本質で、どの部分が技術的制約由来か?
19
+ - コードから明確でない依存関係や暗黙の前提条件は何か?
20
+ - 現在の設計がもたらしている利点と制約は?
21
+
22
+ ### Phase 2: 戦略探索と創造
23
+
24
+ **核心質問**: 「before → after を判断する時に、参考にすべき実装パターンや戦略は何なのか?」
25
+
26
+ #### 戦略発見プロセス
27
+ ```yaml
28
+ 調査・探索: 技術スタック事例(WebSearch活用)、同種プロジェクト、OSS実装、文献・ブログ
29
+ 創造的思考: 戦略組み合わせ、制約前提設計、フェーズ分け、拡張ポイント設計
30
+ ```
31
+
32
+ #### 参考戦略パターン(創造的組み合わせを推奨)
33
+
34
+ **レガシー対応戦略**:
35
+ - ストラングラーパターン: 段階的置換による漸進的移行
36
+ - ファサードパターン: 統一インターフェースによる複雑性の隠蔽
37
+ - アダプターパターン: 既存システムとの橋渡し
38
+
39
+ **新規開発戦略**:
40
+ - 機能駆動開発: ユーザー価値重視の縦断実装
41
+ - 基盤駆動開発: 安定性重視の基盤優先構築
42
+ - リスク駆動開発: 最大リスク要素から優先的に対処
43
+
44
+ **統合・移行戦略**:
45
+ - プロキシパターン: 透過的な機能拡張
46
+ - デコレーターパターン: 既存機能の段階的強化
47
+ - ブリッジパターン: 抽象化による柔軟性確保
48
+
49
+ **重要**: 最適解は各プロジェクトの文脈に応じた創造的思考により発見される。
50
+
51
+ ### Phase 3: リスク評価とコントロール
52
+
53
+ **核心質問**: 「既存の実装にそれを当てはめた時にどういうリスクが発生し、それをどうコントロールするのが最良なのか?」
54
+
55
+ #### リスク分析マトリクス
56
+ ```yaml
57
+ 技術的リスク: 既存システム影響、データ整合性、パフォーマンス劣化、統合複雑性
58
+ 運用リスク: サービス可用性、デプロイダウンタイム、運用プロセス変更、切り戻し手順
59
+ プロジェクトリスク: スケジュール遅延、技術習得コスト、品質達成度、チーム連携
60
+ ```
61
+
62
+ #### リスクコントロール戦略
63
+ ```yaml
64
+ 予防的対策: 段階的移行、並行動作検証、統合・回帰テスト追加、監視設定
65
+ 発生時対応: 切り戻し手順、ログ・メトリクス準備、連絡体制定義、サービス継続手順
66
+ ```
67
+
68
+ ### Phase 4: 制約適合性検証
69
+
70
+ **核心質問**: 「このプロジェクトの制約は何か?」
71
+
72
+ #### 制約チェックリスト
73
+ ```yaml
74
+ 技術的制約: ライブラリ互換性、リソース容量、義務要件、数値目標
75
+ 時間的制約: 期限・優先度、依存関係、マイルストーン、学習期間
76
+ リソース制約: チーム・スキル、作業時間・体制、予算、外部契約
77
+ ビジネス制約: 市場投入時期、顧客影響、法規制・標準
78
+ ```
79
+
80
+ ### Phase 5: 実装アプローチ決定
81
+
82
+ 基本的な実装アプローチから最適解を選択(創造的組み合わせも推奨):
83
+
84
+ #### 垂直スライス(機能駆動)
85
+ **特徴**: 機能単位で全層を縦断実装
86
+ **適用条件**: 機能間の依存が少ない、ユーザーが利用可能な形で出力、アーキテクチャ全層への変更が必要
87
+ **確認方法**: 各機能完成時のエンドユーザー価値提供
88
+
89
+ #### 水平スライス(基盤駆動)
90
+ **特徴**: アーキテクチャ層別の段階的構築
91
+ **適用条件**: 基盤システムの安定性が重要、複数機能が共通基盤に依存、層別の段階的確認が有効
92
+ **確認方法**: 全基盤層完成時の統合動作確認
93
+
94
+ #### ハイブリッド(創造的組み合わせ)
95
+ **特徴**: プロジェクト特性に応じた柔軟な組み合わせ
96
+ **適用条件**: 要件が明確でない、フェーズごとにアプローチ変更が必要、プロトタイピングから本格実装への移行
97
+ **確認方法**: 各フェーズの目標に応じてL1/L2/L3の適切なレベルで確認
98
+
99
+ ### Phase 6: 判断根拠の文書化
100
+
101
+ **Design Docでの記載**:実装戦略の選択理由と根拠を明記する。
102
+
103
+ ## 確認レベル定義
104
+
105
+ 各タスクの完了確認における優先順位:
106
+
107
+ - **L1: 機能動作確認** - エンドユーザー機能として動作(例:検索実行可能)
108
+ - **L2: テスト動作確認** - 新規テストが追加されパス(例:型定義テスト)
109
+ - **L3: ビルド成功確認** - コンパイルエラーなし(例:インターフェース定義)
110
+
111
+ **優先順位**: L1 > L2 > L3 の順で確認可能性を重視
112
+
113
+ ## 統合ポイントの定義
114
+
115
+ 選択した戦略に応じて統合ポイントを定義:
116
+ - **ストラングラー系**: 各機能の新旧システム切り替え時
117
+ - **機能駆動**: ユーザーが実際に機能を利用可能になった時
118
+ - **基盤駆動**: 全アーキテクチャ層が揃いE2Eテストが通った時
119
+ - **ハイブリッド**: 各フェーズで定義した個別目標達成時
120
+
121
+ ## アンチパターン
122
+
123
+ - **パターン固執**: リスト内の戦略のみで選択し、独自の組み合わせを検討しない
124
+ - **分析不足**: Phase 1の分析フレームワークを飛ばして戦略選択
125
+ - **リスク軽視**: Phase 3のリスク分析マトリクスを省略して実装着手
126
+ - **制約無視**: Phase 4の制約チェックリストを確認せず戦略決定
127
+ - **根拠省略**: Phase 6の文書化テンプレートを使用せず戦略選択
128
+
129
+ ## メタ認知的実行のための指針
130
+
131
+ 1. **既知パターンの活用**: 出発点として参考し、創造的組み合わせを探索
132
+ 2. **WebSearch積極活用**: 同種技術スタックの実装事例を調査
133
+ 3. **5 Whys適用**: 根本理由を追求し本質を把握
134
+ 4. **複数観点評価**: Phase 1-4の各観点から網羅的に評価
135
+ 5. **創造的思考**: 複数戦略の順序適用やプロジェクト固有の制約を活かした設計を検討
136
+ 6. **判断根拠明示**: 設計ドキュメントでの戦略選択根拠を明示化
@@ -0,0 +1,180 @@
1
+ # ドキュメント作成基準
2
+
3
+ ## 作成判定マトリクス
4
+
5
+ | 条件 | 必要ドキュメント | 作成順序 |
6
+ |-----|--------------|---------|
7
+ | 新機能追加 | PRD → [ADR] → Design Doc → 作業計画書 | PRD承認後 |
8
+ | ADR条件該当(下記参照) | ADR → Design Doc → 作業計画書 | 即座に開始 |
9
+ | 6ファイル以上 | ADR → Design Doc → 作業計画書(必須) | 即座に開始 |
10
+ | 3-5ファイル | Design Doc → 作業計画書(推奨) | 即座に開始 |
11
+ | 1-2ファイル | なし | 直接実装 |
12
+
13
+ ## ADR作成条件(いずれか該当で必須)
14
+
15
+ ### 1. 型システム変更
16
+ - **3階層以上のネスト型追加**: `type A = { b: { c: { d: T } } }`
17
+ - 判断理由: 深いネストは複雑性が高く、影響範囲が広い
18
+ - **3箇所以上で使用される型の変更・削除**
19
+ - 判断理由: 複数箇所への影響は慎重な判断が必要
20
+ - **型の責務変更**(例: DTO→Entity)
21
+ - 判断理由: 概念モデルの変更は設計思想に関わる
22
+
23
+ ### 2. データフロー変更
24
+ - **保存場所変更**(DB→ファイル、メモリ→キャッシュ)
25
+ - **3ステップ以上の処理順序変更**
26
+ - 例: 「入力→検証→保存」から「入力→保存→非同期検証」
27
+ - **データ受け渡し方法変更**(props→Context、直接参照→イベント)
28
+
29
+ ### 3. アーキテクチャ変更
30
+ - レイヤー追加・責務変更・コンポーネント再配置
31
+
32
+ ### 4. 外部依存変更
33
+ - ライブラリ・フレームワーク・外部API導入・置換
34
+
35
+ ### 5. 複雑な実装ロジック(規模に関わらず)
36
+ - 3つ以上の状態を管理
37
+ - 5つ以上の非同期処理の連携
38
+
39
+ ## 各ドキュメントの詳細定義
40
+
41
+ ### PRD(Product Requirements Document)
42
+
43
+ **目的**: ビジネス要件とユーザー価値を定義
44
+
45
+ **含むもの**:
46
+ - ビジネス要件とユーザー価値
47
+ - 成功指標とKPI(測定可能な形式)
48
+ - ユーザーストーリーとユースケース
49
+ - MoSCoW法による優先順位(Must/Should/Could/Won't)
50
+ - MVPとFutureフェーズの分離
51
+ - ユーザージャーニー図(必須)
52
+ - スコープ境界図(必須)
53
+
54
+ **含まないもの**:
55
+ - 技術実装詳細(→Design Doc)
56
+ - 技術選定理由(→ADR)
57
+ - **実装フェーズ**(→作業計画書)
58
+ - **タスク分解**(→作業計画書)
59
+
60
+ ### ADR(Architecture Decision Record)
61
+
62
+ **目的**: 技術的決定の理由と背景を記録
63
+
64
+ **含むもの**:
65
+ - 決定事項(何を選択したか)
66
+ - 根拠(なぜその選択をしたか)
67
+ - 選択肢の比較(最低3案)とトレードオフ
68
+ - アーキテクチャへの影響
69
+ - 実装への原則的な指針(例:「依存性注入を使用」)
70
+
71
+ **含まないもの**:
72
+ - 実装スケジュール、期間(→作業計画書)
73
+ - 実装手順の詳細(→Design Doc)
74
+ - 具体的なコード例(→Design Doc)
75
+ - 担当者の割り当て(→作業計画書)
76
+
77
+ ### Design Document
78
+
79
+ **目的**: 技術的実装方法を詳細定義
80
+
81
+ **含むもの**:
82
+ - **既存コードベース分析**(必須)
83
+ - 実装パスマッピング(既存と新規の両方を記載)
84
+ - 統合点の明確化(新規実装でも既存との接続点を記載)
85
+ - 技術的実装アプローチ(垂直/水平/ハイブリッド)
86
+ - **技術的依存関係と実装制約**(実装の必要順序)
87
+ - インターフェース定義と型定義
88
+ - データフローとコンポーネント設計
89
+ - **統合ポイントでのE2E確認手順**
90
+ - **受入条件(測定可能な形式)**
91
+ - 変更影響マップ(直接影響/間接影響/波及なしを明記)
92
+ - 統合点の完全な列挙
93
+ - データ契約の明確化
94
+ - **合意事項チェックリスト**(関係者との合意内容)
95
+ - **前提となるADR**(共通ADR含む)
96
+
97
+ **必須構造要素**:
98
+ ```yaml
99
+ 変更影響マップ:
100
+ 変更対象: [コンポーネント/機能]
101
+ 直接影響: [ファイル/関数]
102
+ 間接影響: [データ形式/処理時間]
103
+ 波及なし: [影響を受けない機能]
104
+
105
+ インターフェース変更マトリクス:
106
+ 既存: [メソッド名]
107
+ 新規: [メソッド名]
108
+ 変換必要性: [あり/なし]
109
+ 互換性確保: [方法]
110
+ ```
111
+
112
+ **含まないもの**:
113
+ - なぜその技術を選んだか(→ADR参照)
114
+ - いつ実装するか、期間(→作業計画書)
115
+ - 誰が実装するか(→作業計画書)
116
+
117
+ ### 作業計画書
118
+
119
+ **目的**: 実装タスクの管理と進捗追跡
120
+
121
+ **含むもの**:
122
+ - **フェーズ構成**(Design Docの技術的依存関係を基に作成)
123
+ - タスク分解と依存関係(最大2階層まで)
124
+ - スケジュールと期間見積もり
125
+ - **Design DocのE2E確認手順を各フェーズに配置**
126
+ - **最終フェーズに品質保証を含む**(必須)
127
+ - 進捗記録(チェックボックス形式)
128
+
129
+ **含まないもの**:
130
+ - 技術的な根拠(→ADR)
131
+ - 設計の詳細(→Design Doc)
132
+ - 技術的依存関係の決定(→Design Doc)
133
+
134
+ **タスク完了定義の3要素**:
135
+ 1. **実装完了**: コードが動作する
136
+ 2. **品質完了**: テスト・型チェック・リントがパス
137
+ 3. **統合完了**: 他コンポーネントとの連携確認
138
+
139
+ ## 作成プロセス
140
+
141
+ 1. **問題分析**: 変更規模判定、ADR条件確認
142
+ 2. **ADR選択肢検討**(ADR時のみ): 3案以上比較、トレードオフ明記
143
+ 3. **作成**: テンプレート使用、測定可能な条件記載
144
+ 4. **承認**: レビュー後「Accepted」で実装可
145
+
146
+ ## 保存場所
147
+
148
+ | ドキュメント | パス | 命名規則 | テンプレート |
149
+ |------------|-----|---------|------------|
150
+ | PRD | `docs/prd/` | `[機能名]-prd.md` | `template-ja.md` |
151
+ | ADR | `docs/adr/` | `ADR-[4桁]-[タイトル].md` | `template-ja.md` |
152
+ | Design Doc | `docs/design/` | `[機能名]-design.md` | `template-ja.md` |
153
+ | 作業計画書 | `docs/plans/` | `YYYYMMDD-{type}-{description}.md` | `template-ja.md` |
154
+
155
+ ※作業計画書は`.gitignore`で除外
156
+
157
+ ## ADRステータス
158
+ `Proposed` → `Accepted` → `Deprecated`/`Superseded`/`Rejected`
159
+
160
+ ## AI自動化ルール
161
+ - 5ファイル以上: ADR作成提案
162
+ - 型・データフロー変更検出: ADR必須化
163
+ - 既存ADR確認してから実装
164
+
165
+ ## 図表作成要件
166
+
167
+ 各ドキュメントで必須の図表(mermaid記法使用):
168
+
169
+ | ドキュメント | 必須図表 | 目的 |
170
+ |------------|---------|-----|
171
+ | PRD | ユーザージャーニー図、スコープ境界図 | ユーザー体験と範囲の明確化 |
172
+ | ADR | 選択肢比較図(必要時) | トレードオフの視覚化 |
173
+ | Design Doc | アーキテクチャ図、データフロー図 | 技術構造の理解 |
174
+ | 作業計画書 | フェーズ構成図、タスク依存関係図 | 実装順序の明確化 |
175
+
176
+ ## 共通ADRとの関係性
177
+ 1. **作成時**: 共通技術領域(ログ、エラーハンドリング、非同期処理等)を特定し、既存共通ADRを参照
178
+ 2. **不足時**: 必要な共通ADRが存在しない場合は作成を検討
179
+ 3. **Design Doc**: 「前提となるADR」セクションで共通ADRを明記
180
+ 4. **準拠確認**: 設計が共通ADRの決定事項と整合しているかを検証
@@ -0,0 +1,38 @@
1
+ # プロジェクトコンテキスト
2
+
3
+ ## 基本設定
4
+
5
+ ### プロジェクトの性質
6
+ - **プロジェクト形態**: Claude Code専用TypeScriptプロジェクトテンプレート
7
+ - **利用範囲**: プロジェクトの要件に応じて設定可能
8
+ - **実装方針**: LLM主導実装、品質重視、YAGNI原則徹底
9
+
10
+ ### 技術スタック
11
+ - **基盤技術**: TypeScript、Node.js
12
+ - **テストフレームワーク**: Vitest
13
+ - **品質管理**: Biome、TypeScript strict mode
14
+
15
+ ## 実装原則
16
+
17
+ ### 実装方針の特徴
18
+ - **LLM主導実装**: Claude Codeが主要な実装者として機能
19
+ - **品質重視**: 速度より品質を優先する文化
20
+ - **YAGNI原則**: 必要になるまで実装しない
21
+ - **体系的な設計**: ADR/Design Doc/作業計画書による設計プロセス
22
+
23
+ ## カスタマイズガイド
24
+
25
+ 新しいプロジェクトでこのテンプレートを使用する場合:
26
+
27
+ 1. **プロジェクト固有情報の追加**
28
+ - ターゲットユーザー特性
29
+ - ビジネス要件と制約
30
+ - 技術的制約事項
31
+
32
+ 2. **アーキテクチャの選択**
33
+ - `docs/rules/architecture/` から適切なパターンを選択
34
+ - `docs/rules/architecture/` にプロジェクト固有の設計を配置
35
+
36
+ 3. **環境設定**
37
+ - プロジェクトに適した環境変数管理方法の実装
38
+ - プロジェクト固有の設定ファイル追加