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,64 @@
1
+ # [ADR番号] [タイトル]
2
+
3
+ ## ステータス
4
+
5
+ [Proposed | Accepted | Deprecated | Superseded]
6
+
7
+ ## コンテキスト
8
+
9
+ [決定が必要になった背景や理由を記述。問題の本質、現状の課題、制約事項などを含める]
10
+
11
+ ## 決定事項
12
+
13
+ [実際に決定した内容を記述。具体的で明確な記述を心がける]
14
+
15
+ ### 決定の詳細
16
+
17
+ | 項目 | 内容 |
18
+ |------|------|
19
+ | **Decision** | [一文での決定内容] |
20
+ | **Why now** | [なぜ今これをやるのか(タイミングの理由)] |
21
+ | **Why this** | [他案ではなくこれを選ぶ理由(1〜3行)] |
22
+ | **Known unknowns** | [現時点で不確実な点を最低1つ] |
23
+ | **Kill criteria** | [この決定を撤回すべきシグナルを1つ] |
24
+
25
+ ## 根拠
26
+
27
+ [なぜこの決定を下したのか、他の選択肢と比較してなぜこれが最良なのかを説明]
28
+
29
+ ### 検討した選択肢
30
+
31
+ 1. **選択肢1**: [説明]
32
+ - 利点: [利点を列挙]
33
+ - 欠点: [欠点を列挙]
34
+
35
+ 2. **選択肢2**: [説明]
36
+ - 利点: [利点を列挙]
37
+ - 欠点: [欠点を列挙]
38
+
39
+ 3. **選択肢3(採用)**: [説明]
40
+ - 利点: [利点を列挙]
41
+ - 欠点: [欠点を列挙]
42
+
43
+ ## 影響
44
+
45
+ ### ポジティブな影響
46
+
47
+ - [プロジェクトやシステムへの良い影響を列挙]
48
+
49
+ ### ネガティブな影響
50
+
51
+ - [プロジェクトやシステムへの悪い影響や、受け入れる必要のあるトレードオフを列挙]
52
+
53
+ ### 中立的な影響
54
+
55
+ - [良くも悪くもない、単に変化する事項を列挙]
56
+
57
+ ## 実装への指針
58
+
59
+ [原則的な方向性のみ。実装手順はDesign Docへ]
60
+ 例:「依存性注入を使用」○、「Phase 1で実装」×
61
+
62
+ ## 関連情報
63
+
64
+ - [関連するADR、ドキュメント、issue、PRなどへのリンク]
@@ -0,0 +1,281 @@
1
+ # [Feature Name] Design Document
2
+
3
+ ## Overview
4
+
5
+ [Explain the purpose and overview of this feature in 2-3 sentences]
6
+
7
+ ## Design Summary (Meta)
8
+
9
+ ```yaml
10
+ design_type: "new_feature|extension|refactoring"
11
+ risk_level: "low|medium|high"
12
+ main_constraints:
13
+ - "[constraint 1]"
14
+ - "[constraint 2]"
15
+ biggest_risks:
16
+ - "[risk 1]"
17
+ - "[risk 2]"
18
+ unknowns:
19
+ - "[uncertainty 1]"
20
+ - "[uncertainty 2]"
21
+ ```
22
+
23
+ ## Background and Context
24
+
25
+ ### Prerequisite ADRs
26
+
27
+ - [ADR File Name]: [Related decision items]
28
+ - Reference common technical ADRs when applicable
29
+
30
+ ### Agreement Checklist
31
+
32
+ #### Scope
33
+ - [ ] [Features/components to change]
34
+ - [ ] [Features to add]
35
+
36
+ #### Non-Scope (Explicitly not changing)
37
+ - [ ] [Features/components not to change]
38
+ - [ ] [Existing logic to preserve]
39
+
40
+ #### Constraints
41
+ - [ ] Parallel operation: [Yes/No]
42
+ - [ ] Backward compatibility: [Required/Not required]
43
+ - [ ] Performance measurement: [Required/Not required]
44
+
45
+ ### Problem to Solve
46
+
47
+ [Specific problems or challenges this feature aims to address]
48
+
49
+ ### Current Challenges
50
+
51
+ [Current system issues or limitations]
52
+
53
+ ### Requirements
54
+
55
+ #### Functional Requirements
56
+
57
+ - [List mandatory functional requirements]
58
+
59
+ #### Non-Functional Requirements
60
+
61
+ - **Performance**: [Response time, throughput requirements]
62
+ - **Scalability**: [Requirements for handling increased load]
63
+ - **Reliability**: [Error rate, availability requirements]
64
+ - **Maintainability**: [Code readability and changeability]
65
+
66
+ ## Acceptance Criteria (AC) - EARS Format
67
+
68
+ Each AC is written in EARS format. Keywords determine test type.
69
+
70
+ ### [Functional Requirement 1]
71
+
72
+ - [ ] **When** user clicks login button with valid credentials, the system shall authenticate and redirect to dashboard
73
+ - [ ] **If** credentials are invalid, **then** the system shall display error message "Invalid credentials"
74
+ - [ ] **While** user is logged in, the system shall maintain the session for 60 minutes
75
+
76
+ ### [Functional Requirement 2]
77
+
78
+ - [ ] The system shall display data list with pagination of 10 items per page
79
+ - [ ] **When** input is entered in search field, the system shall apply real-time filtering
80
+ - **Property**: `filtered.every(item => item.name.includes(query))`
81
+
82
+ ## Existing Codebase Analysis
83
+
84
+ ### Implementation Path Mapping
85
+ | Type | Path | Description |
86
+ |------|------|-------------|
87
+ | Existing | src/[actual-path] | [Current implementation] |
88
+ | New | src/[planned-path] | [Planned new creation] |
89
+
90
+ ### Integration Points (Include even for new implementations)
91
+ - **Integration Target**: [What to connect with]
92
+ - **Invocation Method**: [How it will be invoked]
93
+
94
+ ## Design
95
+
96
+ ### Change Impact Map
97
+
98
+ ```yaml
99
+ Change Target: [Component/feature to change]
100
+ Direct Impact:
101
+ - [Files/functions requiring direct changes]
102
+ - [Interface change points]
103
+ Indirect Impact:
104
+ - [Data format changes]
105
+ - [Processing time changes]
106
+ No Ripple Effect:
107
+ - [Explicitly specify unaffected features]
108
+ ```
109
+
110
+ ### Architecture Overview
111
+
112
+ [How this feature is positioned within the overall system]
113
+
114
+ ### Data Flow
115
+
116
+ ```
117
+ [Express data flow using diagrams or pseudo-code]
118
+ ```
119
+
120
+ ### Integration Points List
121
+
122
+ | Integration Point | Location | Old Implementation | New Implementation | Switching Method |
123
+ |-------------------|----------|-------------------|-------------------|------------------|
124
+ | Integration Point 1 | [Class/Function] | [Existing Process] | [New Process] | [DI/Factory etc.] |
125
+ | Integration Point 2 | [Another Location] | [Existing] | [New] | [Method] |
126
+
127
+ ### Main Components
128
+
129
+ #### Component 1
130
+
131
+ - **Responsibility**: [Scope of responsibility for this component]
132
+ - **Interface**: [APIs and type definitions provided]
133
+ - **Dependencies**: [Relationships with other components]
134
+
135
+ #### Component 2
136
+
137
+ - **Responsibility**: [Scope of responsibility for this component]
138
+ - **Interface**: [APIs and type definitions provided]
139
+ - **Dependencies**: [Relationships with other components]
140
+
141
+ ### Type Definitions
142
+
143
+ ```typescript
144
+ // Record major type definitions here
145
+ ```
146
+
147
+ ### Data Contract
148
+
149
+ #### Component 1
150
+
151
+ ```yaml
152
+ Input:
153
+ Type: [TypeScript type definition]
154
+ Preconditions: [Required items, format constraints]
155
+ Validation: [Validation method]
156
+
157
+ Output:
158
+ Type: [TypeScript type definition]
159
+ Guarantees: [Conditions that must always be met]
160
+ On Error: [Exception/null/default value]
161
+
162
+ Invariants:
163
+ - [Conditions that remain unchanged before and after processing]
164
+ ```
165
+
166
+ ### State Transitions and Invariants (When Applicable)
167
+
168
+ ```yaml
169
+ State Definition:
170
+ - Initial State: [Initial values and conditions]
171
+ - Possible States: [List of states]
172
+
173
+ State Transitions:
174
+ Current State → Event → Next State
175
+
176
+ System Invariants:
177
+ - [Conditions that hold in any state]
178
+ ```
179
+
180
+ ### Error Handling
181
+
182
+ [Types of errors and how to handle them]
183
+
184
+ ### Logging and Monitoring
185
+
186
+ [What to record in logs and how to monitor]
187
+
188
+ ## Implementation Plan
189
+
190
+ ### Implementation Approach
191
+
192
+ **Selected Approach**: [Approach name or combination]
193
+ **Selection Reason**: [Reason considering project constraints and technical dependencies]
194
+
195
+ ### Technical Dependencies and Implementation Order
196
+
197
+ #### Required Implementation Order
198
+ 1. **[Component/Feature A]**
199
+ - Technical Reason: [Why this needs to be implemented first]
200
+ - Dependent Elements: [Other components that depend on this]
201
+
202
+ 2. **[Component/Feature B]**
203
+ - Technical Reason: [Technical necessity to implement after A]
204
+ - Prerequisites: [Required pre-implementations]
205
+
206
+ ### Integration Points
207
+ Each integration point requires E2E verification:
208
+
209
+ **Integration Point 1: [Name]**
210
+ - Components: [Component A] → [Component B]
211
+ - Verification: [How to verify integration works]
212
+
213
+ **Integration Point 2: [Name]**
214
+ - Components: [Component B] → [Component C]
215
+ - Verification: [How to verify integration works]
216
+
217
+ ### Migration Strategy
218
+
219
+ [Technical migration approach, ensuring backward compatibility]
220
+
221
+ ## Test Strategy
222
+
223
+ ### Basic Test Design Policy
224
+
225
+ Automatically derive test cases from acceptance criteria:
226
+ - Create at least one test case for each acceptance criterion
227
+ - Implement measurable standards from acceptance criteria as assertions
228
+
229
+ ### Unit Tests
230
+
231
+ [Unit testing policy and coverage goals]
232
+ - Verify individual elements of functional acceptance criteria
233
+
234
+ ### Integration Tests
235
+
236
+ [Integration testing policy and important test cases]
237
+ - Verify combined operations of functional acceptance criteria
238
+
239
+ ### E2E Tests
240
+
241
+ [E2E testing policy]
242
+ - Verify entire scenarios of acceptance criteria
243
+ - Confirm functional operation from user perspective
244
+
245
+ ### Performance Tests
246
+
247
+ [Performance testing methods and standards]
248
+ - Verify performance standards of non-functional acceptance criteria
249
+
250
+ ## Security Considerations
251
+
252
+ [Security concerns and countermeasures]
253
+
254
+ ## Future Extensibility
255
+
256
+ [Considerations for future feature additions or changes]
257
+
258
+ ## Alternative Solutions
259
+
260
+ ### Alternative 1
261
+
262
+ - **Overview**: [Description of alternative solution]
263
+ - **Advantages**: [Advantages]
264
+ - **Disadvantages**: [Disadvantages]
265
+ - **Reason for Rejection**: [Why it wasn't adopted]
266
+
267
+ ## Risks and Mitigation
268
+
269
+ | Risk | Impact | Probability | Mitigation |
270
+ |------|--------|-------------|------------|
271
+ | [Risk 1] | High/Medium/Low | High/Medium/Low | [Countermeasure] |
272
+
273
+ ## References
274
+
275
+ - [Related documentation and links]
276
+
277
+ ## Update History
278
+
279
+ | Date | Version | Changes | Author |
280
+ |------|---------|---------|--------|
281
+ | YYYY-MM-DD | 1.0 | Initial version | [Name] |
@@ -0,0 +1,285 @@
1
+ # [機能名] Design Document
2
+
3
+ ## 概要
4
+
5
+ [この機能の目的と概要を2-3文で説明]
6
+
7
+ ## Design Summary (Meta)
8
+
9
+ ```yaml
10
+ design_type: "新機能|既存拡張|リファクタリング"
11
+ risk_level: "low|medium|high"
12
+ main_constraints:
13
+ - "[制約1]"
14
+ - "[制約2]"
15
+ biggest_risks:
16
+ - "[リスク1]"
17
+ - "[リスク2]"
18
+ unknowns:
19
+ - "[不確実な点1]"
20
+ - "[不確実な点2]"
21
+ ```
22
+
23
+ ## 背景とコンテキスト
24
+
25
+ ### 前提となるADR
26
+
27
+ - [ADRファイル名]: [関連する決定事項]
28
+ - 共通技術ADRがある場合は参照
29
+
30
+ ### 合意事項チェックリスト
31
+
32
+ #### スコープ
33
+ - [ ] [変更する機能/コンポーネント]
34
+ - [ ] [追加する機能]
35
+
36
+ #### 非スコープ(明示的に変更しないもの)
37
+ - [ ] [変更しない機能/コンポーネント]
38
+ - [ ] [保持する既存ロジック]
39
+
40
+ #### 制約条件
41
+ - [ ] 並行運用: [あり/なし]
42
+ - [ ] 後方互換性: [必要/不要]
43
+ - [ ] パフォーマンス測定: [必要/不要]
44
+
45
+ ### 解決する問題
46
+
47
+ [この機能が解決しようとしている具体的な問題や課題]
48
+
49
+ ### 現状の課題
50
+
51
+ [現在のシステムの問題点や制限]
52
+
53
+ ### 要件
54
+
55
+ #### 機能要件
56
+
57
+ - [必須の機能要件を列挙]
58
+
59
+ #### 非機能要件
60
+
61
+ - **パフォーマンス**: [応答時間、スループットなどの要件]
62
+ - **スケーラビリティ**: [負荷増加時の対応要件]
63
+ - **信頼性**: [エラー率、可用性などの要件]
64
+ - **保守性**: [コードの理解しやすさ、変更のしやすさ]
65
+
66
+ ## 受入条件(AC)- EARS形式
67
+
68
+ 各ACはEARS形式で記述。キーワードがテスト種別を決定する。
69
+
70
+ ### [機能要件1]
71
+
72
+ - [ ] **When** ユーザーが有効な認証情報でログインボタンをクリック, the system shall 認証成功しダッシュボードにリダイレクト
73
+ - [ ] **If** 認証情報が無効, **then** the system shall エラーメッセージ「認証情報が正しくありません」を表示
74
+ - [ ] **While** ユーザーがログイン状態, the system shall セッションを60分間維持
75
+
76
+ ### [機能要件2]
77
+
78
+ - [ ] The system shall データ一覧を10件ずつページネーションして表示
79
+ - [ ] **When** 検索フィールドに入力, the system shall リアルタイムでフィルタリングを適用
80
+ - **Property**: `filtered.every(item => item.name.includes(query))`
81
+
82
+ ## 既存コードベース分析
83
+
84
+ ### 実装パスマッピング
85
+ | 種別 | パス | 説明 |
86
+ |------|------|------|
87
+ | 既存 | src/[実際のパス] | [現在の実装] |
88
+ | 新規 | src/[計画パス] | [新規作成予定] |
89
+
90
+ ### 統合点(新規実装でも記載)
91
+ - **統合先**: [どこと接続するか]
92
+ - **呼び出し方法**: [どのように呼び出されるか]
93
+
94
+ ## 設計
95
+
96
+ ### 変更影響マップ
97
+
98
+ ```yaml
99
+ 変更対象: [変更するコンポーネント/機能]
100
+ 直接影響:
101
+ - [直接変更が必要なファイル/関数]
102
+ - [インターフェース変更箇所]
103
+ 間接影響:
104
+ - [データ形式の変更]
105
+ - [処理時間の変化]
106
+ 波及なし:
107
+ - [影響を受けない機能を明示]
108
+ ```
109
+
110
+ ### アーキテクチャ概要
111
+
112
+ [システム全体の中でこの機能がどのように位置づけられるか]
113
+
114
+ ### データフロー
115
+
116
+ ```
117
+ [データの流れを図や疑似コードで表現]
118
+ ```
119
+
120
+ ### 統合点一覧
121
+
122
+ | 統合点 | 場所 | 旧実装 | 新実装 | 切り替え方法 |
123
+ |---------|------|----------|----------|-------------|
124
+ | 統合点1 | [クラス/関数] | [既存処理] | [新処理] | [DI/ファクトリ等] |
125
+ | 統合点2 | [別の箇所] | [既存] | [新規] | [方法] |
126
+
127
+ ### 主要コンポーネント
128
+
129
+ #### コンポーネント1
130
+
131
+ - **責務**: [このコンポーネントの責任範囲]
132
+ - **インターフェース**: [提供するAPIや型定義]
133
+ - **依存関係**: [他のコンポーネントとの関係]
134
+
135
+ #### コンポーネント2
136
+
137
+ - **責務**: [このコンポーネントの責任範囲]
138
+ - **インターフェース**: [提供するAPIや型定義]
139
+ - **依存関係**: [他のコンポーネントとの関係]
140
+
141
+ ### 型定義
142
+
143
+ ```typescript
144
+ // 主要な型定義をここに記載
145
+ ```
146
+
147
+ ### データ契約(Data Contract)
148
+
149
+ #### コンポーネント1
150
+
151
+ ```yaml
152
+ 入力:
153
+ 型: [TypeScript型定義]
154
+ 前提条件: [必須項目、形式制約]
155
+ 検証: [バリデーション方法]
156
+
157
+ 出力:
158
+ 型: [TypeScript型定義]
159
+ 保証: [必ず満たす条件]
160
+ エラー時: [例外/null/デフォルト値]
161
+
162
+ 不変条件:
163
+ - [処理の前後で変わらない条件]
164
+ ```
165
+
166
+ ### 状態遷移と不変条件(該当する場合)
167
+
168
+ ```yaml
169
+ 状態定義:
170
+ - 初期状態: [初期値と条件]
171
+ - 遷移可能状態: [状態のリスト]
172
+
173
+ 状態遷移:
174
+ 現在状態 → イベント → 次状態
175
+
176
+ システム不変条件:
177
+ - [どの状態でも成立する条件]
178
+ ```
179
+
180
+ ### エラーハンドリング
181
+
182
+ [エラーの種類と対処方法]
183
+
184
+ ### ログとモニタリング
185
+
186
+ [何をログに記録し、どのようにモニタリングするか]
187
+
188
+ ## 実装計画
189
+
190
+ ### 実装アプローチ
191
+
192
+ **選択したアプローチ**: [アプローチ名または組み合わせ]
193
+ **選択理由**: [プロジェクトの制約と技術的依存関係を考慮した理由]
194
+
195
+ ### 技術的依存関係と実装順序
196
+
197
+ #### 実装の必要順序
198
+ 1. **[コンポーネント/機能A]**
199
+ - 技術的理由: [なぜこれを最初に実装する必要があるか]
200
+ - 依存される要素: [これに依存する他のコンポーネント]
201
+
202
+ 2. **[コンポーネント/機能B]**
203
+ - 技術的理由: [Aの後に実装する技術的必然性]
204
+ - 前提条件: [必要な事前実装]
205
+
206
+ #### 並列実装可能な要素
207
+ - [独立して実装可能なコンポーネント群]
208
+
209
+ ### 統合ポイントとE2E確認
210
+
211
+ #### 統合ポイント1: [統合箇所]
212
+ **確認手順**:
213
+ 1. [動作確認手順]
214
+ 2. [期待結果の確認]
215
+
216
+ #### 統合ポイント2: [統合箇所]
217
+ **確認手順**:
218
+ 1. [動作確認手順]
219
+ 2. [期待結果の確認]
220
+
221
+ ### 移行戦略
222
+
223
+ [技術的な移行アプローチ、後方互換性の確保方法]
224
+
225
+ ## テスト戦略
226
+
227
+ ### テスト設計の基本方針
228
+
229
+ 受入条件から自動的にテストケースを導出:
230
+ - 各受入条件に対して最低1つのテストケースを作成
231
+ - 受入条件の測定可能な基準をアサーションとして実装
232
+
233
+ ### 単体テスト
234
+
235
+ [単体テストの方針とカバレッジ目標]
236
+ - 機能受入条件の個別要素を検証
237
+
238
+ ### 統合テスト
239
+
240
+ [統合テストの方針と重要なテストケース]
241
+ - 機能受入条件の結合動作を検証
242
+
243
+ ### E2Eテスト
244
+
245
+ [E2Eテストの方針]
246
+ - 受入条件のシナリオ全体を検証
247
+ - ユーザー視点での機能動作を確認
248
+
249
+ ### パフォーマンステスト
250
+
251
+ [パフォーマンステストの方法と基準]
252
+ - 非機能受入条件のパフォーマンス基準を検証
253
+
254
+ ## セキュリティ考慮事項
255
+
256
+ [セキュリティ上の懸念事項と対策]
257
+
258
+ ## 今後の拡張性
259
+
260
+ [将来的な機能追加や変更に対する考慮]
261
+
262
+ ## 代替案の検討
263
+
264
+ ### 代替案1
265
+
266
+ - **概要**: [代替案の説明]
267
+ - **利点**: [利点]
268
+ - **欠点**: [欠点]
269
+ - **不採用の理由**: [なぜ採用しなかったか]
270
+
271
+ ## リスクと軽減策
272
+
273
+ | リスク | 影響度 | 発生確率 | 軽減策 |
274
+ |--------|--------|----------|--------|
275
+ | [リスク1] | 高/中/低 | 高/中/低 | [対策] |
276
+
277
+ ## 参考資料
278
+
279
+ - [関連するドキュメントやリンク]
280
+
281
+ ## 更新履歴
282
+
283
+ | 日付 | 版 | 変更内容 | 作成者 |
284
+ |------|-----|----------|--------|
285
+ | YYYY-MM-DD | 1.0 | 初版作成 | [名前] |