yodogawa 1.0.0

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 (61) hide show
  1. package/.windsurf/templates/documentation-rules.md +143 -0
  2. package/.windsurf/templates/project/01-requirements/01-system-overview.md +49 -0
  3. package/.windsurf/templates/project/01-requirements/02-features-implemented.md +73 -0
  4. package/.windsurf/templates/project/01-requirements/03-features-planned.md +75 -0
  5. package/.windsurf/templates/project/01-requirements/04-non-functional-requirements.md +115 -0
  6. package/.windsurf/templates/project/01-requirements/05-user-stories.md +124 -0
  7. package/.windsurf/templates/project/02-behavior/01-scenarios.md +406 -0
  8. package/.windsurf/templates/project/03-domain/01-domain-model.md +338 -0
  9. package/.windsurf/templates/project/03-domain/02-ubiquitous-language.md +153 -0
  10. package/.windsurf/templates/project/04-design/01-tech-stack.md +360 -0
  11. package/.windsurf/templates/project/04-design/02-repository-structure.md +390 -0
  12. package/.windsurf/templates/project/04-design/03-screen-design.md +586 -0
  13. package/.windsurf/templates/project/04-design/04-data-model.md +211 -0
  14. package/.windsurf/templates/project/04-design/05-api-spec.md +221 -0
  15. package/.windsurf/templates/project/04-design/06-architecture.md +183 -0
  16. package/.windsurf/templates/project/04-design/07-infrastructure.md +180 -0
  17. package/.windsurf/templates/tasks/task-template/a-definition.md +143 -0
  18. package/.windsurf/templates/tasks/task-template/b-research.md +185 -0
  19. package/.windsurf/templates/tasks/task-template/c-implementation.md +197 -0
  20. package/.windsurf/workflows/a-001-SetupDocStructure.md +165 -0
  21. package/.windsurf/workflows/a-002-InitializeProject.md +229 -0
  22. package/.windsurf/workflows/a-003-CreateScenarios.md +130 -0
  23. package/.windsurf/workflows/a-004-DefineDomainModel.md +133 -0
  24. package/.windsurf/workflows/a-005-CreateDomainDiagram.md +114 -0
  25. package/.windsurf/workflows/a-006-ReviewRequirementsDomain.md +132 -0
  26. package/.windsurf/workflows/a-007-DefineTechStack.md +121 -0
  27. package/.windsurf/workflows/a-008-DefineRepositoryStructure.md +118 -0
  28. package/.windsurf/workflows/a-009-DefineScreenDesign.md +121 -0
  29. package/.windsurf/workflows/a-010-DefineDataModel.md +125 -0
  30. package/.windsurf/workflows/a-011-DefineAPISpec.md +123 -0
  31. package/.windsurf/workflows/a-012-DefineArchitecture.md +119 -0
  32. package/.windsurf/workflows/a-013-DefineInfrastructure.md +120 -0
  33. package/.windsurf/workflows/a-014-ReviewDesign.md +122 -0
  34. package/.windsurf/workflows/b-001-CreateTaskDirectory.md +71 -0
  35. package/.windsurf/workflows/b-002-CreateTaskDefinition.md +165 -0
  36. package/.windsurf/workflows/b-003-CreateTaskResearch.md +412 -0
  37. package/.windsurf/workflows/b-004-CreateTaskImplementation.md +97 -0
  38. package/.windsurf/workflows/b-005-ReviewTask.md +312 -0
  39. package/.windsurf/workflows/c-001-ImplementTask.md +493 -0
  40. package/.windsurf/workflows/c-002-UpdateDocumentation.md +797 -0
  41. package/.windsurf/workflows/x-Accessibility-Check.md +469 -0
  42. package/.windsurf/workflows/x-Bundle-Optimize.md +386 -0
  43. package/.windsurf/workflows/x-CI-FixFailure.md +636 -0
  44. package/.windsurf/workflows/x-CI-Setup.md +641 -0
  45. package/.windsurf/workflows/x-Code-Refactor.md +71 -0
  46. package/.windsurf/workflows/x-Code-ResearchAndReview.md +78 -0
  47. package/.windsurf/workflows/x-Component-Create.md +359 -0
  48. package/.windsurf/workflows/x-Context-CatchUp.md +63 -0
  49. package/.windsurf/workflows/x-Database-Seed.md +300 -0
  50. package/.windsurf/workflows/x-Dependencies-Update.md +315 -0
  51. package/.windsurf/workflows/x-DevEnvironment-Setup.md +437 -0
  52. package/.windsurf/workflows/x-Logging-Add.md +682 -0
  53. package/.windsurf/workflows/x-Migration-Create.md +354 -0
  54. package/.windsurf/workflows/x-Problem-RootCauseAnalysis.md +65 -0
  55. package/.windsurf/workflows/x-Repository-Push.md +375 -0
  56. package/.windsurf/workflows/x-Repository-PushToGithub.md +72 -0
  57. package/.windsurf/workflows/x-Requirements-Clarify.md +61 -0
  58. package/.windsurf/workflows/z-CreateWorkflow.md +77 -0
  59. package/README.md +280 -0
  60. package/bin/cli.js +74 -0
  61. package/package.json +28 -0
@@ -0,0 +1,412 @@
1
+ ---
2
+ description: タスク実装前の技術調査を行い、ベストプラクティス、既存コード、再利用コンポーネント、技術選定、リスクを記録するワークフロー
3
+ ---
4
+
5
+ # CreateTaskResearch (b-003)
6
+
7
+ ## 目的
8
+
9
+ - 実装に着手する前に、最適なアプローチ・技術・注意点を整理する。
10
+ - 既存コードやコンポーネントを把握し、重複実装や手戻りを防止する。
11
+ - 技術選定・リスク・参考資料を記録し、実装計画 (b-004) の入力とする。
12
+
13
+ ## 前提
14
+
15
+ - `CreateTaskDefinition (b-002)` が完了し、`a-definition.md` に目的・変更内容が記載されている。
16
+ - タスクディレクトリ: `docs/tasks/task{ID}-{SLUG}/`
17
+ - テンプレート: `.windsurf/templates/tasks/task-template/b-research.md`
18
+
19
+ ## 手順
20
+
21
+ ### 1. ドキュメントとテンプレートの準備
22
+
23
+ ```bash
24
+ # 対象タスクの確認
25
+ ls -d docs/tasks/task*
26
+
27
+ # テンプレート未設置ならコピー
28
+ cp ".windsurf/templates/tasks/task-template/b-research.md" \
29
+ "docs/tasks/task{ID}-{SLUG}/b-research.md"
30
+ ```
31
+
32
+ ### 2. 調査計画の立案
33
+
34
+ - `a-definition.md` を読み、変更対象・技術要件・制約を抽出。
35
+ - 調査する観点を整理:例)類似実装、利用ライブラリ、外部API仕様、セキュリティ要件。
36
+ - 調査メモを残しながら進めると、ドキュメント作成がスムーズ。
37
+
38
+ ### 3. 既存実装と再利用候補の調査
39
+
40
+ - Grep / find / IDE の検索で、類似ロジックやコンポーネントを洗い出す。
41
+ ```bash
42
+ rg "keyword" src/
43
+ ```
44
+ - 再利用できるファイル・モジュール・カスタムフック・APIクライアントをリスト化。
45
+ - 参考にできる実装パターン(バリデーション、エラーハンドリング等)と課題点を併記。
46
+
47
+ ### 4. ベストプラクティス・外部情報の調査
48
+
49
+ - 公式ドキュメント、信頼できる記事、社内ナレッジを確認し、採用すべきパターン/アンチパターンを整理。
50
+ - 調査内容(タイトル、要点、URL)を記録。例)フォームバリデーション、非同期通信、セキュリティガイドライン。
51
+
52
+ ### 5. 技術選定と比較(必要時)
53
+
54
+ - 新規導入・置き換え候補のライブラリ/サービスを比較。
55
+ - 比較観点: メンテ状況、TypeScript対応、バンドルサイズ、コスト、既存スタックとの親和性。
56
+ - 選定理由と却下理由を記録。チーム合意が必要な場合はその旨も記載。
57
+
58
+ ### 6. 技術的リスクと対策
59
+
60
+ - パフォーマンス、セキュリティ、スケーラビリティ、依存サービス等のリスクを洗い出す。
61
+ - 影響度と優先度(高/中/低)を付与し、軽減策やPoCの必要有無を記載。
62
+
63
+ ### 7. ドキュメントへの反映
64
+
65
+ 1. `docs/tasks/task{ID}-{SLUG}/b-research.md` を編集し、以下を記入:
66
+ - ベストプラクティス / 参考リンク
67
+ - 既存コード・再利用コンポーネント
68
+ - 技術選定(比較表含む)
69
+ - 技術的リスク・制約
70
+ - メモ / 次に確認すべき事項
71
+ 2. HTMLコメントはガイドとして残す。
72
+
73
+ ### 8. 構造チェック
74
+
75
+ ```bash
76
+ grep "## ベストプラクティス" docs/tasks/task{ID}-{SLUG}/b-research.md \
77
+ && grep "## 既存コード調査" docs/tasks/task{ID}-{SLUG}/b-research.md \
78
+ && grep "## 技術選定" docs/tasks/task{ID}-{SLUG}/b-research.md \
79
+ && grep "## 技術的リスク" docs/tasks/task{ID}-{SLUG}/b-research.md \
80
+ && echo "OK" || echo "MISSING SECTION"
81
+ ```
82
+
83
+ チェックリスト:
84
+ - [ ] 参考リンク・出典が記載されている
85
+ - [ ] 再利用できるコード/コンポーネントが明確
86
+ - [ ] 技術選定理由と代替案が整理されている
87
+ - [ ] リスクに軽減策と優先度が付与されている
88
+
89
+ ### 9. Git への追加(任意)
90
+
91
+ ```bash
92
+ git add docs/tasks/task{ID}-{SLUG}/b-research.md
93
+ git commit -m "docs(task): 技術調査メモの作成 task{ID}"
94
+ ```
95
+
96
+ ## 完了条件
97
+
98
+ - `b-research.md` に以下が網羅されている:
99
+ - ベストプラクティス/参考資料
100
+ - 既存コード・再利用コンポーネント
101
+ - 技術選定と比較(必要に応じて)
102
+ - 技術的リスクと対策
103
+ - 追加のメモ/未解決事項
104
+ - 実装計画 (b-004) に渡せるレベルで情報が整理されている。
105
+ - 関係者が内容を確認し、疑問があれば解消済み。
106
+
107
+ ## エスカレーション
108
+
109
+ - **既存コードが見つからない**: 「grep/rg で検索しても見つからない場合、他メンバーに確認し、再利用可否を判断してください。」
110
+ - **ライブラリ選定で決め手がない**: 「評価軸を追加(保守実績、サポート、コストなど)し、比較表を拡張してください。」
111
+ - **リスクが高い**: 「影響が重大なリスクは PoC や専門チーム相談を提案し、スケジュールに反映してください。」
112
+ - **外部サービス依存がある**: 「 SLA・レート制限・コストを確認し、代替案やフォールバックを検討してください。」
113
+ - **ドキュメントが不足**: 「ベストプラクティスや参考資料の記載が不十分です。公式ドキュメントや社内ナレッジを追加してください。」
114
+ 例:
115
+ | トピック | ベストプラクティス | 参考リンク |
116
+ |---------|-------------------|-----------|
117
+ | フォームバリデーション | React Hook Form + Zod を使用。パフォーマンスが良く、型安全性が高い | [React Hook Form 公式](https://react-hook-form.com/) |
118
+ | メール送信 | SendGrid や Resend などのサービスを利用。自前 SMTP は避ける | [Resend Best Practices](https://resend.com/docs) |
119
+
120
+ **アンチパターンの記録**:
121
+ - 「避けるべきアンチパターンはありますか?」
122
+
123
+ 例:
124
+ - 「フォームの全フィールドを state で管理すると再レンダリングが頻発 → React Hook Form を使用」
125
+ - 「パスワードを平文でログに出力 → 機密情報は絶対にログに出力しない」
126
+
127
+ ### 3. 既存コードの調査
128
+
129
+ #### 3.1. 類似機能の検索
130
+
131
+ **質問3: 類似機能の有無**
132
+ - 「このプロジェクト内に類似機能がありますか?」
133
+
134
+ 調査方法:
135
+ - Grep ツールで関連キーワードを検索
136
+ - ファイル名やディレクトリ構造から推測
137
+ - 他の開発者に確認
138
+
139
+ 例:
140
+ - メール送信機能を実装する場合:「email」「send」「mail」で検索
141
+ - 認証機能の場合:「auth」「login」「password」で検索
142
+
143
+ **質問4: 類似機能のファイルパス**
144
+ - 「類似機能のファイルパスを特定してください。」
145
+
146
+ Grep を使用してファイルを特定:
147
+ ```bash
148
+ Grep pattern="sendEmail" output_mode="files_with_matches"
149
+ ```
150
+
151
+ #### 3.2. 既存実装パターンの分析
152
+
153
+ 類似機能のファイルを読み込み、実装パターンを分析:
154
+
155
+ **質問5: 実装パターン**
156
+ - 「既存コードではどのような実装パターンを使用していますか?」
157
+
158
+ 分析すべき内容:
159
+ - アーキテクチャパターン(MVC、レイヤードアーキテクチャなど)
160
+ - データフェッチ方法(useSWR、React Query、useState + useEffect など)
161
+ - エラーハンドリング方法
162
+ - ローディング状態の管理
163
+ - フォーム管理(Controlled Component、Uncontrolled Component)
164
+
165
+ **質問6: 参考にすべき点**
166
+ - 「既存コードのどの部分を参考にすべきですか?」
167
+
168
+ 例:
169
+ | 項目 | 内容 |
170
+ |------|------|
171
+ | 類似機能のファイルパス | src/features/auth/PasswordResetForm.tsx |
172
+ | 実装パターン | React Hook Form でフォーム管理、API 呼び出しは useMutation で非同期処理 |
173
+ | 参考にすべき点 | エラーハンドリングのパターン、ローディング状態の管理、ユーザーへのフィードバック表示 |
174
+
175
+ **質問7: 改善すべき点**
176
+ - 「既存コードで改善すべき点はありますか?」
177
+
178
+ 例:
179
+ - 「エラーメッセージがハードコードされている → i18n 対応が必要」
180
+ - 「テストコードがない → 今回は必ずテストを書く」
181
+
182
+ ### 4. 再利用可能なコンポーネントの特定
183
+
184
+ #### 4.1. 共通コンポーネントの調査
185
+
186
+ **質問8: 共通コンポーネントの確認**
187
+ - 「このプロジェクトの共通コンポーネントを確認しましたか?」
188
+
189
+ 調査対象:
190
+ - UIコンポーネント(Button、Input、Modal、Card、Spinnerなど)
191
+ - カスタムフック(useAuth、useFetch、useToast、useFormなど)
192
+ - ユーティリティ関数(formatDate、validateEmail、debounce、throttleなど)
193
+ - APIクライアント、データフェッチャー
194
+
195
+ 調査方法:
196
+ - `src/components/` ディレクトリを確認
197
+ - `src/hooks/` ディレクトリを確認
198
+ - `src/lib/` または `src/utils/` ディレクトリを確認
199
+ - Storybook があれば参照
200
+
201
+ #### 4.2. 各コンポーネントの使用方法確認
202
+
203
+ 再利用可能なコンポーネントについて、以下を記録:
204
+
205
+ **質問9: コンポーネント一覧**
206
+ - 「使用する共通コンポーネントをリストアップしてください。」
207
+
208
+ 各コンポーネントについて:
209
+ - コンポーネント名
210
+ - ファイルパス
211
+ - 使用方法(Props、引数、戻り値)
212
+ - 簡単なコードスニペット
213
+
214
+ 例:
215
+ | コンポーネント名 | ファイルパス | 使用方法 |
216
+ |-----------------|-------------|----------|
217
+ | `Button` | `src/components/Button.tsx` | `<Button variant="primary" onClick={handleClick}>送信</Button>` |
218
+ | `useToast` | `src/hooks/useToast.ts` | `const { showToast } = useToast(); showToast({ message: "成功", type: "success" });` |
219
+ | `apiClient` | `src/lib/apiClient.ts` | `await apiClient.post("/api/auth/verify", { token });` |
220
+
221
+ **質問10: Propsや型の確認**
222
+ - 「各コンポーネントの Props や型定義を確認しましたか?」
223
+
224
+ Read ツールでファイルを読み込み、型定義を確認:
225
+ ```typescript
226
+ // Button.tsx
227
+ interface ButtonProps {
228
+ variant: 'primary' | 'secondary' | 'danger';
229
+ onClick: () => void;
230
+ children: React.ReactNode;
231
+ }
232
+ ```
233
+
234
+ ### 5. 技術選定(必要に応じて)
235
+
236
+ #### 5.1. 選定が必要な技術の特定
237
+
238
+ **質問11: 新しいライブラリや技術が必要**
239
+ - 「このタスクで新しいライブラリや技術を導入する必要がありますか?」
240
+
241
+ 例:
242
+ - フォームバリデーションライブラリ(React Hook Form、Formik、Yup、Zodなど)
243
+ - メール送信サービス(SendGrid、Resend、Amazon SESなど)
244
+ - 画像最適化ライブラリ(sharp、imagemin など)
245
+ - 日時処理ライブラリ(date-fns、Day.js、Luxon など)
246
+
247
+ #### 5.2. 複数の選択肢の比較
248
+
249
+ 新しいライブラリ導入が必要な場合、複数の選択肢を比較:
250
+
251
+ **質問12: 比較対象**
252
+ - 「どのライブラリを比較しましたか?」
253
+
254
+ 比較すべき観点:
255
+ - **人気度**:npm trends、GitHub スター数
256
+ - **メンテナンス状況**:最終更新日、Issue/PR の対応状況
257
+ - **バンドルサイズ**:フロントエンドの場合は重要
258
+ - **型安全性**:TypeScript サポート
259
+ - **学習コスト**:ドキュメントの充実度、チームの経験
260
+ - **既存プロジェクトとの整合性**:既に使用している技術との相性
261
+ - **ライセンス**:商用利用可能か(MIT、Apache 2.0 など)
262
+
263
+ **質問13: 選定理由**
264
+ - 「選定した技術の理由を教えてください。」
265
+
266
+ 例:
267
+ | 技術・ライブラリ | 選定理由 | 代替案との比較 |
268
+ |----------------|---------|---------------|
269
+ | Zod | TypeScript の型定義からバリデーションスキーマを自動生成可能。React Hook Form との統合が容易。バンドルサイズも小さい(8KB gzip) | Yup は型推論が弱い。Joi はバンドルサイズが大きい(45KB gzip) |
270
+
271
+ #### 5.3. チーム内での合意
272
+
273
+ **質問14: チーム内での合意**
274
+ - 「新しいライブラリ導入についてチーム内で合意を取りましたか?」
275
+ - 「誰かレビューしましたか?」
276
+
277
+ ### 6. 技術的リスクと制約の洗い出し
278
+
279
+ #### 6.1. リスクの特定
280
+
281
+ **質問15: 技術的リスク**
282
+ - 「このタスクで想定される技術的リスクは何ですか?」
283
+
284
+ リスクのカテゴリ:
285
+ - **パフォーマンス**:大量データ、重い処理、ネットワーク遅延
286
+ - **セキュリティ**:XSS、CSRF、SQL Injection、認証・認可の不備
287
+ - **ブラウザ互換性**:古いブラウザでの動作、ポリフィル必要性
288
+ - **外部サービスへの依存**:API の制限、障害時の影響、コスト
289
+ - **スケーラビリティ**:将来的なユーザー数増加への対応
290
+ - **データ整合性**:同時更新、トランザクション
291
+
292
+ #### 6.2. 各リスクの詳細定義
293
+
294
+ 各リスクについて、以下をヒアリング:
295
+
296
+ **質問16: リスクの詳細**
297
+ - 「[リスク]の詳細を教えてください。」
298
+
299
+ 記載すべき内容:
300
+ - リスク内容(何が問題か)
301
+ - 影響(どのような影響があるか、影響範囲)
302
+ - 軽減策(どのように対処するか)
303
+
304
+ 例:
305
+ | リスク | 影響 | 軽減策 |
306
+ |--------|------|--------|
307
+ | メール送信の遅延 | ユーザー登録完了までに時間がかかり、UX が悪化 | 非同期ジョブキューで処理。即座に「メール送信中」メッセージを表示 |
308
+ | SendGrid API の障害 | メール送信が完全に停止 | フォールバック先(Amazon SES)を用意。障害時の通知機能を実装 |
309
+ | トークンの総当たり攻撃 | 不正なメール認証の可能性 | UUID v4 でランダム性を確保(2^122の組み合わせ)。有効期限を24時間に制限。レート制限を実装 |
310
+
311
+ **質問17: 優先度**
312
+ - 「各リスクの優先度は?」
313
+ - 高:すぐに対処が必要
314
+ - 中:実装時に考慮
315
+ - 低:余裕があれば対処
316
+
317
+ ### 7. メモ・補足情報
318
+
319
+ **質問18: 補足情報**
320
+ - 「その他、調査中に気づいたことや補足情報はありますか?」
321
+
322
+ 記載すべき内容:
323
+ - 調査中に気づいた改善点
324
+ - 今後の調査が必要な項目
325
+ - 参考になった記事や動画
326
+ - チームメンバーへの質問事項
327
+ - 調査の過程で発見した技術的負債
328
+
329
+ 例:
330
+ - 「既存のメール送信機能が古い実装のため、このタスクと一緒にリファクタリング検討」
331
+ - 「パフォーマンステストが必要(1000ユーザー同時登録時の負荷)」
332
+ - 「セキュリティレビューをチームリーダーに依頼予定」
333
+
334
+ ### 8. ドキュメント作成
335
+
336
+ - 収集した情報を基に、タスクディレクトリ内の `b-research.md` を編集
337
+ - 例: `docs/tasks/task000001-email-verification/b-research.md`
338
+
339
+ - テンプレートに従い、以下を記載:
340
+ - **ベストプラクティス**(トピック、ベストプラクティス、参考リンク)
341
+ - **既存コードの調査**(類似機能のファイルパス、実装パターン、参考にすべき点)
342
+ - **再利用可能なコンポーネント**(コンポーネント名、ファイルパス、使用方法)
343
+ - **技術選定**(技術・ライブラリ、選定理由、代替案との比較)(必要に応じて)
344
+ - **技術的リスクと制約**(リスク、影響、軽減策)
345
+ - **メモ**(補足情報)
346
+
347
+ - **HTMLコメントは削除せず残す**
348
+
349
+ ### 9. レビューと確認
350
+
351
+ - 作成したドキュメントをユーザーに提示:
352
+ - 「リサーチドキュメントが完成しました。内容を確認してください。」
353
+ - 「ベストプラクティスは十分に調査されていますか?」
354
+ - 「既存コードで再利用できるものは特定されていますか?」
355
+ - 「技術的リスクは網羅されていますか?」
356
+
357
+ ### 10. 完成と次のステップ
358
+
359
+ - タスクディレクトリ内の `b-research.md` が保存されたことを確認
360
+ - 例: `docs/tasks/task000001-email-verification/b-research.md`
361
+
362
+ - 次のステップを提案:
363
+ - 「リサーチが完了しました。次は実装タスクリストを作成しますか?(`/b-003-CreateTaskImplementation`)」
364
+
365
+ ## 完了条件
366
+
367
+ - タスクディレクトリ内に `b-research.md` が作成されている
368
+ - 例: `docs/tasks/task000001-{スラッグ}/b-research.md`
369
+ - 以下のセクションがすべて記載されている:
370
+ - ベストプラクティス(最低1個以上、参考リンク付き)
371
+ - 既存コードの調査(類似機能がある場合)
372
+ - 再利用可能なコンポーネント(該当するものがすべて含まれている)
373
+ - 技術的リスクと制約(主要なリスクが網羅されている)
374
+ - ベストプラクティスに参考リンクが含まれている
375
+ - 既存コードのファイルパスが正確である
376
+ - 再利用可能なコンポーネントの使用方法が明確である
377
+ - 技術的リスクに軽減策が記載されている
378
+ - ユーザーが内容を確認し、承認している
379
+
380
+ ## エスカレーション
381
+
382
+ - ベストプラクティスの調査が不十分な場合:
383
+ - 「ベストプラクティスの調査が不十分です。公式ドキュメントや信頼できる情報源を参照してください。」
384
+ - 追加の調査を依頼
385
+
386
+ - 既存コードの調査が行われていない場合:
387
+ - 「既存コードの調査が行われていません。車輪の再発明を避けるため、既存の実装パターンを確認してください。」
388
+ - Grep ツールでの検索方法を提案
389
+
390
+ - 技術選定の根拠が不明確な場合:
391
+ - 「技術選定の根拠が不明確です。複数の選択肢を比較し、選定理由を明確にしてください。」
392
+ - 比較表の作成を提案
393
+
394
+ - 技術的リスクの軽減策が欠けている場合:
395
+ - 「技術的リスクは特定されていますが、軽減策が記載されていません。各リスクに対する具体的な対処方法を検討してください。」
396
+
397
+ - 新しいライブラリ導入がチームで合意されていない場合:
398
+ - 「新しいライブラリの導入はチーム全体に影響します。チームリーダーやメンバーとレビュー・合意を取ってください。」
399
+
400
+ - セキュリティリスクが見落とされている場合:
401
+ - 「セキュリティリスクが考慮されていません。以下の観点で再調査してください:」
402
+ - 入力バリデーション
403
+ - XSS、CSRF、SQL Injection
404
+ - 認証・認可
405
+ - データの暗号化
406
+ - API のレート制限
407
+
408
+ - パフォーマンスリスクが見落とされている場合:
409
+ - 「パフォーマンスリスクが考慮されていません。大量データや高負荷時の動作を検討してください。」
410
+
411
+ - 参考リンクが古い、または信頼性が低い場合:
412
+ - 「参考リンクの情報が古い、または信頼性が低いようです。公式ドキュメントや最新の情報源を参照してください。」
@@ -0,0 +1,97 @@
1
+ ---
2
+ description: タスクの実装計画を段階的に分割し、ステップごとの成果物と受け入れ基準を定義するワークフロー
3
+ ---
4
+
5
+ # CreateTaskImplementation (b-004)
6
+
7
+ ## 目的
8
+
9
+ - タスクを実行可能なフェーズとステップに分割し、作業順序と依存関係を明確にする。
10
+ - 各ステップの成果物と受け入れ基準を定義し、作業完了の判断基準を共有する。
11
+ - 実装開始前にテスト計画や懸念点を洗い出し、品質リスクを低減する。
12
+
13
+ ## 前提
14
+
15
+ - `a-definition.md`(b-002)と `b-research.md`(b-003)が作成済みであること。
16
+ - タスクディレクトリ: `docs/tasks/task{ID}-{SLUG}/`
17
+ - テンプレート: `.windsurf/templates/tasks/task-template/c-implementation.md`
18
+
19
+ ## 手順
20
+
21
+ ### 1. ドキュメント確認とテンプレート準備
22
+
23
+ ```bash
24
+ ls -d docs/tasks/task*
25
+ cp ".windsurf/templates/tasks/task-template/c-implementation.md" \
26
+ "docs/tasks/task{ID}-{SLUG}/c-implementation.md"
27
+ ```
28
+
29
+ - `a-definition.md` から目的・変更内容・受け入れ基準を読み取る。
30
+ - `b-research.md` から技術方針・ライブラリ選定・リスクを把握する。
31
+
32
+ ### 2. フェーズ設計
33
+
34
+ - タスクを 2〜4 フェーズに分割し、各フェーズのゴールと依存関係を整理。
35
+ - 目安: 1フェーズ = 1〜3日で完了できる規模。
36
+ - 例: 「データモデル/マイグレーション」「API 実装」「フロントエンド」「統合テスト」
37
+
38
+ ### 3. ステップ分解
39
+
40
+ - 各フェーズを 1〜3時間で完了できるステップに分割。
41
+ - ステップごとに以下を定義:
42
+ - **Title**: 作業名
43
+ - **Details**: 実装内容・注意点(ファイル名・関数名・ライブラリなど)
44
+ - **Deliverables**: 成果物(PR/コミット/ファイル)
45
+ - **Verification**: 実装完了の確認方法(テストコマンド、ブラウザチェック等)
46
+
47
+ ### 4. テスト計画
48
+
49
+ - フェーズ/ステップ単位で必要なテストを記載。
50
+ - ユニットテスト、API テスト、UI テスト、E2E テスト、負荷テストなど。
51
+ - カバレッジ目標や検証手順(`npm test`, `pnpm vitest`, `playwright test` 等)を明示。
52
+
53
+ ### 5. ドキュメント反映
54
+
55
+ - `docs/tasks/task{ID}-{SLUG}/c-implementation.md` に以下を記入:
56
+ 1. フェーズ一覧(目的、完了条件、依存関係)
57
+ 2. フェーズ内ステップ(Title/Details/Deliverables/Verification)
58
+ 3. テスト計画
59
+ 4. メモ・補足(懸念点、要確認事項、リファクタ案など)
60
+ - HTMLコメントは削除せずガイドとして残す。
61
+
62
+ ### 6. 構造チェック
63
+
64
+ ```bash
65
+ grep "## 実装フェーズ" docs/tasks/task{ID}-{SLUG}/c-implementation.md \
66
+ && grep "## ステップ一覧" docs/tasks/task{ID}-{SLUG}/c-implementation.md \
67
+ && grep "## テスト計画" docs/tasks/task{ID}-{SLUG}/c-implementation.md \
68
+ && echo "OK" || echo "MISSING SECTION"
69
+ ```
70
+
71
+ チェックリスト:
72
+ - [ ] すべてのフェーズに目的・完了条件・依存関係が記載されている
73
+ - [ ] 各ステップに成果物と検証方法がある
74
+ - [ ] テスト計画が網羅的に記載されている
75
+ - [ ] 懸念点や未決事項がメモ欄に整理されている
76
+
77
+ ### 7. Git への追加(任意)
78
+
79
+ ```bash
80
+ git add docs/tasks/task{ID}-{SLUG}/c-implementation.md
81
+ git commit -m "docs(task): 実装計画の作成 task{ID}"
82
+ ```
83
+
84
+ ## 完了条件
85
+
86
+ - `c-implementation.md` にフェーズ/ステップ/テスト/メモが記載されている。
87
+ - ステップの粒度が適切(1〜3時間)で、成果物が明確。
88
+ - フェーズ順序と依存関係が示されている。
89
+ - 関係者レビューで疑問がない状態になっている。
90
+
91
+ ## エスカレーション
92
+
93
+ - **フェーズが大きすぎる**: 「1フェーズが 3日以上になりそうです。分割してください。」
94
+ - **ステップが抽象的**: 「成果物が特定できません。ファイル名や検証手順を明記してください。」
95
+ - **テスト計画不足**: 「対象機能のテスト戦略が不足しています。ユニット/統合/E2E を再検討してください。」
96
+ - **リスク対策未反映**: 「b-003 で挙げたリスクへの対策ステップがありません。計画に組み込んでください。」
97
+ - **依存関係不明**: 「並行実行可能なフェーズと、順序が必要なフェーズを明示してください。」