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.
- package/.windsurf/templates/documentation-rules.md +143 -0
- package/.windsurf/templates/project/01-requirements/01-system-overview.md +49 -0
- package/.windsurf/templates/project/01-requirements/02-features-implemented.md +73 -0
- package/.windsurf/templates/project/01-requirements/03-features-planned.md +75 -0
- package/.windsurf/templates/project/01-requirements/04-non-functional-requirements.md +115 -0
- package/.windsurf/templates/project/01-requirements/05-user-stories.md +124 -0
- package/.windsurf/templates/project/02-behavior/01-scenarios.md +406 -0
- package/.windsurf/templates/project/03-domain/01-domain-model.md +338 -0
- package/.windsurf/templates/project/03-domain/02-ubiquitous-language.md +153 -0
- package/.windsurf/templates/project/04-design/01-tech-stack.md +360 -0
- package/.windsurf/templates/project/04-design/02-repository-structure.md +390 -0
- package/.windsurf/templates/project/04-design/03-screen-design.md +586 -0
- package/.windsurf/templates/project/04-design/04-data-model.md +211 -0
- package/.windsurf/templates/project/04-design/05-api-spec.md +221 -0
- package/.windsurf/templates/project/04-design/06-architecture.md +183 -0
- package/.windsurf/templates/project/04-design/07-infrastructure.md +180 -0
- package/.windsurf/templates/tasks/task-template/a-definition.md +143 -0
- package/.windsurf/templates/tasks/task-template/b-research.md +185 -0
- package/.windsurf/templates/tasks/task-template/c-implementation.md +197 -0
- package/.windsurf/workflows/a-001-SetupDocStructure.md +165 -0
- package/.windsurf/workflows/a-002-InitializeProject.md +229 -0
- package/.windsurf/workflows/a-003-CreateScenarios.md +130 -0
- package/.windsurf/workflows/a-004-DefineDomainModel.md +133 -0
- package/.windsurf/workflows/a-005-CreateDomainDiagram.md +114 -0
- package/.windsurf/workflows/a-006-ReviewRequirementsDomain.md +132 -0
- package/.windsurf/workflows/a-007-DefineTechStack.md +121 -0
- package/.windsurf/workflows/a-008-DefineRepositoryStructure.md +118 -0
- package/.windsurf/workflows/a-009-DefineScreenDesign.md +121 -0
- package/.windsurf/workflows/a-010-DefineDataModel.md +125 -0
- package/.windsurf/workflows/a-011-DefineAPISpec.md +123 -0
- package/.windsurf/workflows/a-012-DefineArchitecture.md +119 -0
- package/.windsurf/workflows/a-013-DefineInfrastructure.md +120 -0
- package/.windsurf/workflows/a-014-ReviewDesign.md +122 -0
- package/.windsurf/workflows/b-001-CreateTaskDirectory.md +71 -0
- package/.windsurf/workflows/b-002-CreateTaskDefinition.md +165 -0
- package/.windsurf/workflows/b-003-CreateTaskResearch.md +412 -0
- package/.windsurf/workflows/b-004-CreateTaskImplementation.md +97 -0
- package/.windsurf/workflows/b-005-ReviewTask.md +312 -0
- package/.windsurf/workflows/c-001-ImplementTask.md +493 -0
- package/.windsurf/workflows/c-002-UpdateDocumentation.md +797 -0
- package/.windsurf/workflows/x-Accessibility-Check.md +469 -0
- package/.windsurf/workflows/x-Bundle-Optimize.md +386 -0
- package/.windsurf/workflows/x-CI-FixFailure.md +636 -0
- package/.windsurf/workflows/x-CI-Setup.md +641 -0
- package/.windsurf/workflows/x-Code-Refactor.md +71 -0
- package/.windsurf/workflows/x-Code-ResearchAndReview.md +78 -0
- package/.windsurf/workflows/x-Component-Create.md +359 -0
- package/.windsurf/workflows/x-Context-CatchUp.md +63 -0
- package/.windsurf/workflows/x-Database-Seed.md +300 -0
- package/.windsurf/workflows/x-Dependencies-Update.md +315 -0
- package/.windsurf/workflows/x-DevEnvironment-Setup.md +437 -0
- package/.windsurf/workflows/x-Logging-Add.md +682 -0
- package/.windsurf/workflows/x-Migration-Create.md +354 -0
- package/.windsurf/workflows/x-Problem-RootCauseAnalysis.md +65 -0
- package/.windsurf/workflows/x-Repository-Push.md +375 -0
- package/.windsurf/workflows/x-Repository-PushToGithub.md +72 -0
- package/.windsurf/workflows/x-Requirements-Clarify.md +61 -0
- package/.windsurf/workflows/z-CreateWorkflow.md +77 -0
- package/README.md +280 -0
- package/bin/cli.js +74 -0
- package/package.json +28 -0
|
@@ -0,0 +1,797 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 実装完了後にタスクドキュメントとプロジェクトドキュメントを実装内容に合わせて更新するワークフロー
|
|
3
|
+
auto_execution_mode: 1
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# UpdateDocumentation (c-002)
|
|
7
|
+
|
|
8
|
+
## 目的
|
|
9
|
+
|
|
10
|
+
- 実装完了後にタスクレベルのドキュメント(a-definition.md, b-research.md, c-implementation.md)を実装内容に合わせて更新する。
|
|
11
|
+
- プロジェクトレベルのドキュメント(要件、ドメインモデル、API仕様、データモデルなど)を実装済み機能に合わせて更新する。
|
|
12
|
+
- 計画時と実装時の差異を記録し、次のタスクへのフィードバックとする。
|
|
13
|
+
- コードとドキュメントの一貫性を保ち、ドキュメント腐敗を防止する。
|
|
14
|
+
- チームメンバーや将来の開発者が正確な情報を得られるようにする。
|
|
15
|
+
|
|
16
|
+
## 前提
|
|
17
|
+
|
|
18
|
+
- タスクの実装が完了していること(`/c-001-ImplementTask` で実装済み)
|
|
19
|
+
- タスクディレクトリが存在すること(`docs/tasks/task000001-{スラッグ}/`)
|
|
20
|
+
- タスクドキュメント(a-definition.md, b-research.md, c-implementation.md)が存在すること
|
|
21
|
+
- 実装タスクリスト(c-implementation.md)の全ステップが完了していること
|
|
22
|
+
- プロジェクトドキュメント構造が存在すること(docs/01-requirements/, docs/03-domain/, docs/04-design/ など)
|
|
23
|
+
- Git リポジトリが初期化されていること
|
|
24
|
+
|
|
25
|
+
## 手順
|
|
26
|
+
|
|
27
|
+
### 1. 実装完了の確認
|
|
28
|
+
|
|
29
|
+
#### 1.1. タスクディレクトリの特定
|
|
30
|
+
|
|
31
|
+
**タスクIDの確認**:
|
|
32
|
+
- 更新対象のタスクIDを確認(例: task000001-email-verification)
|
|
33
|
+
- タスクディレクトリパス: `docs/tasks/task000001-{スラッグ}/`
|
|
34
|
+
|
|
35
|
+
#### 1.2. 実装完了状態の検証
|
|
36
|
+
|
|
37
|
+
**検証項目**:
|
|
38
|
+
- [ ] 実装タスクリスト(c-implementation.md)の全ステップが完了している(全チェックボックスが `[x]`)
|
|
39
|
+
- [ ] 全フェーズの受け入れ基準が満たされている
|
|
40
|
+
- [ ] テストが全て通っている
|
|
41
|
+
- [ ] PR/MRが作成されている(該当する場合)
|
|
42
|
+
|
|
43
|
+
**未完了の場合**:
|
|
44
|
+
- 「タスク {task-id} の実装がまだ完了していません。先に `/c-001-ImplementTask` を実行してください。」
|
|
45
|
+
|
|
46
|
+
**推奨**:
|
|
47
|
+
- `/c-001-ImplementTask` の最後に表示される推奨アクションから続けて実行することが最も効率的です。
|
|
48
|
+
|
|
49
|
+
### 2. 実装内容の確認
|
|
50
|
+
|
|
51
|
+
#### 2.1. 実装ファイルの特定
|
|
52
|
+
|
|
53
|
+
**変更されたファイルの確認**:
|
|
54
|
+
```bash
|
|
55
|
+
# タスク用ブランチの変更を確認
|
|
56
|
+
git diff main..HEAD --name-only
|
|
57
|
+
|
|
58
|
+
# または
|
|
59
|
+
git log --name-only --oneline main..HEAD
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**確認すべき項目**:
|
|
63
|
+
- [ ] 新規作成されたファイル
|
|
64
|
+
- [ ] 変更されたファイル
|
|
65
|
+
- [ ] 削除されたファイル
|
|
66
|
+
- [ ] 追加された依存関係(package.json, requirements.txt など)
|
|
67
|
+
- [ ] データベーススキーマの変更(マイグレーションファイル)
|
|
68
|
+
- [ ] 環境変数の追加(.env.example)
|
|
69
|
+
|
|
70
|
+
#### 2.2. 計画との差異の確認
|
|
71
|
+
|
|
72
|
+
**実装タスクリスト(c-implementation.md)と実際の実装を比較**:
|
|
73
|
+
|
|
74
|
+
- [ ] 計画通りに実装されたステップ
|
|
75
|
+
- [ ] 計画から変更されたステップ(技術的決定の変更)
|
|
76
|
+
- [ ] 追加で実装したステップ(計画にない追加実装)
|
|
77
|
+
- [ ] スキップしたステップ(不要と判断)
|
|
78
|
+
|
|
79
|
+
**差異の記録**:
|
|
80
|
+
実装中に判明した変更点をリストアップ:
|
|
81
|
+
- 技術スタックの変更(例: Prisma → TypeORM)
|
|
82
|
+
- アーキテクチャの変更(例: REST → GraphQL)
|
|
83
|
+
- データモデルの変更(例: カラム追加・削除)
|
|
84
|
+
- API仕様の変更(例: エンドポイント追加・削除)
|
|
85
|
+
- 画面遷移の変更(例: 新規画面追加)
|
|
86
|
+
|
|
87
|
+
### 3. タスクドキュメントの更新
|
|
88
|
+
|
|
89
|
+
#### 3.1. a-definition.md の更新
|
|
90
|
+
|
|
91
|
+
**タスク定義ドキュメント**(`docs/tasks/task{id}-{スラッグ}/a-definition.md`)を開く。
|
|
92
|
+
|
|
93
|
+
**更新すべきセクション**:
|
|
94
|
+
|
|
95
|
+
**1. 実装内容の更新**:
|
|
96
|
+
- 計画時の想定と実際の実装が異なる場合、実際の実装内容を記載
|
|
97
|
+
- 追加で実装した機能があれば追記
|
|
98
|
+
|
|
99
|
+
**2. 受け入れ基準の更新**:
|
|
100
|
+
- 計画時の受け入れ基準がすべて満たされているか確認
|
|
101
|
+
- 実装中に追加した受け入れ基準があれば追記
|
|
102
|
+
- 満たせなかった基準があれば、理由と今後の対応を記載
|
|
103
|
+
|
|
104
|
+
**3. 技術的決定の記録**:
|
|
105
|
+
新しいセクション「## 実装時の技術的決定」を追加(必要に応じて):
|
|
106
|
+
```markdown
|
|
107
|
+
## 実装時の技術的決定
|
|
108
|
+
|
|
109
|
+
- **決定**: TypeORM から Prisma に変更
|
|
110
|
+
- **理由**: マイグレーション管理が容易、型安全性が高い
|
|
111
|
+
- **影響**: データアクセス層のコード変更、マイグレーションファイルの再作成
|
|
112
|
+
|
|
113
|
+
- **決定**: JWT トークンの有効期限を 24h から 1h に変更
|
|
114
|
+
- **理由**: セキュリティ向上
|
|
115
|
+
- **影響**: リフレッシュトークン機能の追加実装
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**4. 実装結果の記録**:
|
|
119
|
+
新しいセクション「## 実装結果」を追加:
|
|
120
|
+
```markdown
|
|
121
|
+
## 実装結果
|
|
122
|
+
|
|
123
|
+
- **実装日**: 2024-01-15
|
|
124
|
+
- **実装者**: {名前}
|
|
125
|
+
- **ブランチ**: task/task000001-email-verification
|
|
126
|
+
- **PR/MR**: #123
|
|
127
|
+
- **テスト結果**:
|
|
128
|
+
- ユニットテスト: 100% 通過 (カバレッジ 85%)
|
|
129
|
+
- 統合テスト: 100% 通過
|
|
130
|
+
- E2E テスト: 100% 通過
|
|
131
|
+
- **デプロイ**: staging 環境にデプロイ済み
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
#### 3.2. b-research.md の更新
|
|
135
|
+
|
|
136
|
+
**リサーチドキュメント**(`docs/tasks/task{id}-{スラッグ}/b-research.md`)を開く。
|
|
137
|
+
|
|
138
|
+
**更新すべきセクション**:
|
|
139
|
+
|
|
140
|
+
**1. 技術選定の更新**:
|
|
141
|
+
- 計画時に選定した技術と実際に使用した技術が異なる場合、理由を追記
|
|
142
|
+
- 新たに採用したライブラリ・ツールがあれば追記
|
|
143
|
+
|
|
144
|
+
**2. ベストプラクティスの追記**:
|
|
145
|
+
実装中に発見したベストプラクティスを追記:
|
|
146
|
+
```markdown
|
|
147
|
+
## 実装時に発見したベストプラクティス
|
|
148
|
+
|
|
149
|
+
- **Email 検証**: SendGrid の Webhook を使用して配信状態を追跡
|
|
150
|
+
- **トークン管理**: Redis にトークンを保存し、自動期限切れを利用
|
|
151
|
+
- **エラーハンドリング**: Zod を使用してバリデーションエラーを統一
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**3. 技術的リスクの結果**:
|
|
155
|
+
計画時に挙げた技術的リスクの結果を記録:
|
|
156
|
+
```markdown
|
|
157
|
+
## 技術的リスクの結果
|
|
158
|
+
|
|
159
|
+
- **リスク**: Email 送信の遅延
|
|
160
|
+
- **結果**: SendGrid の非同期処理で解決、平均送信時間 2 秒
|
|
161
|
+
- **軽減策**: ジョブキューによる非同期処理を実装
|
|
162
|
+
|
|
163
|
+
- **リスク**: トークンの衝突
|
|
164
|
+
- **結果**: UUID v4 使用により衝突なし
|
|
165
|
+
- **軽減策**: 不要
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
#### 3.3. c-implementation.md の更新
|
|
169
|
+
|
|
170
|
+
**実装タスクリスト**(`docs/tasks/task{id}-{スラッグ}/c-implementation.md`)を開く。
|
|
171
|
+
|
|
172
|
+
**更新すべきセクション**:
|
|
173
|
+
|
|
174
|
+
**1. 完了マークの確認**:
|
|
175
|
+
- 全ステップのチェックボックスが `[x]` になっているか確認
|
|
176
|
+
- 未完了のステップがあれば理由を記載
|
|
177
|
+
|
|
178
|
+
**2. 実装メモの追記**:
|
|
179
|
+
各ステップに実装時のメモを追記(必要に応じて):
|
|
180
|
+
```markdown
|
|
181
|
+
- [x] **ステップ 1:** データベーススキーマの定義
|
|
182
|
+
- **成果物:** `migrations/001_create_users_table.sql`
|
|
183
|
+
- **詳細:** User テーブルに `email_verified`, `email_verification_token`, `email_verification_expires_at` カラムを追加
|
|
184
|
+
- **実装メモ**:
|
|
185
|
+
- Prisma migrate を使用
|
|
186
|
+
- 既存ユーザーには email_verified = false をデフォルト設定
|
|
187
|
+
- インデックスを email_verification_token に追加(検索高速化)
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
**3. 実装時間の記録**:
|
|
191
|
+
各フェーズの実装時間を記録:
|
|
192
|
+
```markdown
|
|
193
|
+
## フェーズ 1: データモデルと API の実装
|
|
194
|
+
|
|
195
|
+
**実装時間**: 4 時間(見積もり: 3 時間)
|
|
196
|
+
|
|
197
|
+
### ステップ
|
|
198
|
+
...
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
**4. 振り返りセクションの追加**:
|
|
202
|
+
新しいセクション「## 振り返り」を追加:
|
|
203
|
+
```markdown
|
|
204
|
+
## 振り返り
|
|
205
|
+
|
|
206
|
+
### うまくいったこと
|
|
207
|
+
- Prisma の型安全性により、コンパイル時にエラーを検出できた
|
|
208
|
+
- TDD アプローチで品質を担保できた
|
|
209
|
+
- ステップを小さく分けたことで、進捗管理が容易だった
|
|
210
|
+
|
|
211
|
+
### 改善すべきこと
|
|
212
|
+
- Email 送信のテストが複雑だった(モックの設定に時間がかかった)
|
|
213
|
+
- トークン生成ロジックの設計に予想以上に時間がかかった
|
|
214
|
+
|
|
215
|
+
### 次のタスクへのフィードバック
|
|
216
|
+
- Email 送信のモックユーティリティを共通化する
|
|
217
|
+
- トークン生成ロジックを再利用可能なライブラリとして抽出する
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### 4. プロジェクトドキュメントの更新
|
|
221
|
+
|
|
222
|
+
#### 4.1. 更新が必要なドキュメントの特定
|
|
223
|
+
|
|
224
|
+
実装内容に応じて、以下のドキュメントの更新が必要か確認:
|
|
225
|
+
|
|
226
|
+
**要件ドキュメント**(`docs/01-requirements/`):
|
|
227
|
+
- [ ] **02-features-implemented.md**: 実装済み機能リストに追加
|
|
228
|
+
- [ ] **03-features-planned.md**: 計画中機能リストから削除(実装済みに移動)
|
|
229
|
+
- [ ] **05-user-stories.md**: ユーザーストーリーのステータスを更新
|
|
230
|
+
|
|
231
|
+
**ドメインドキュメント**(`docs/03-domain/`):
|
|
232
|
+
- [ ] **01-domain-model.md**: 新しいエンティティ・値オブジェクトを追加
|
|
233
|
+
- [ ] **02-ubiquitous-language.md**: 新しいドメイン用語を追加
|
|
234
|
+
|
|
235
|
+
**設計ドキュメント**(`docs/04-design/`):
|
|
236
|
+
- [ ] **03-screen-design.md**: 新しい画面・UI コンポーネントを追加
|
|
237
|
+
- [ ] **04-data-model.md**: 新しいテーブル・カラムを追加
|
|
238
|
+
- [ ] **05-api-spec.md**: 新しい API エンドポイントを追加
|
|
239
|
+
- [ ] **06-architecture.md**: アーキテクチャ変更を反映
|
|
240
|
+
|
|
241
|
+
**その他**:
|
|
242
|
+
- [ ] **README.md**: セットアップ手順、使い方を更新
|
|
243
|
+
- [ ] **CHANGELOG.md**: 変更履歴を追加
|
|
244
|
+
- [ ] **.env.example**: 新しい環境変数を追加
|
|
245
|
+
|
|
246
|
+
#### 4.2. features-implemented.md の更新
|
|
247
|
+
|
|
248
|
+
**実装済み機能リスト**(`docs/01-requirements/02-features-implemented.md`)を開く。
|
|
249
|
+
|
|
250
|
+
**新機能の追加**:
|
|
251
|
+
```markdown
|
|
252
|
+
## ユーザー認証・認可
|
|
253
|
+
|
|
254
|
+
### メール認証機能(新規追加)
|
|
255
|
+
|
|
256
|
+
**概要**: ユーザー登録時にメールアドレスを検証する機能
|
|
257
|
+
|
|
258
|
+
**実装内容**:
|
|
259
|
+
- ユーザー登録時にメール認証トークンを生成し、メールを送信
|
|
260
|
+
- ユーザーがメール内のリンクをクリックすると、メールアドレスが検証される
|
|
261
|
+
- 検証済みユーザーのみが特定の機能にアクセスできる
|
|
262
|
+
|
|
263
|
+
**主要な機能**:
|
|
264
|
+
- メール認証トークン生成(UUID v4、有効期限 24 時間)
|
|
265
|
+
- メール送信(SendGrid 経由)
|
|
266
|
+
- メール検証エンドポイント(`POST /api/auth/verify-email`)
|
|
267
|
+
- 検証済みフラグ管理(`email_verified` カラム)
|
|
268
|
+
|
|
269
|
+
**関連タスク**: task000001-email-verification
|
|
270
|
+
|
|
271
|
+
**実装日**: 2024-01-15
|
|
272
|
+
|
|
273
|
+
**PR/MR**: #123
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
#### 4.3. features-planned.md の更新
|
|
277
|
+
|
|
278
|
+
**計画中機能リスト**(`docs/01-requirements/03-features-planned.md`)を開く。
|
|
279
|
+
|
|
280
|
+
**実装済み機能の削除**:
|
|
281
|
+
- 実装完了した機能をリストから削除
|
|
282
|
+
- または、ステータスを「実装済み」に変更し、`02-features-implemented.md` への参照を追加
|
|
283
|
+
|
|
284
|
+
#### 4.4. domain-model.md の更新
|
|
285
|
+
|
|
286
|
+
**ドメインモデル**(`docs/03-domain/01-domain-model.md`)を開く。
|
|
287
|
+
|
|
288
|
+
**エンティティの追加・更新**:
|
|
289
|
+
```markdown
|
|
290
|
+
## User(ユーザー)
|
|
291
|
+
|
|
292
|
+
**概要**: システムのユーザーアカウント
|
|
293
|
+
|
|
294
|
+
**属性**:
|
|
295
|
+
- id: ユーザーID(UUID)
|
|
296
|
+
- email: メールアドレス(必須、一意)
|
|
297
|
+
- password_hash: パスワードハッシュ(必須)
|
|
298
|
+
- email_verified: メール検証済みフラグ(新規追加)
|
|
299
|
+
- email_verification_token: メール検証トークン(新規追加)
|
|
300
|
+
- email_verification_expires_at: トークン有効期限(新規追加)
|
|
301
|
+
- created_at: 作成日時
|
|
302
|
+
- updated_at: 更新日時
|
|
303
|
+
|
|
304
|
+
**振る舞い**:
|
|
305
|
+
- register(): ユーザー登録
|
|
306
|
+
- sendVerificationEmail(): 検証メール送信(新規追加)
|
|
307
|
+
- verifyEmail(token): メール検証(新規追加)
|
|
308
|
+
- login(): ログイン
|
|
309
|
+
- logout(): ログアウト
|
|
310
|
+
|
|
311
|
+
**制約**:
|
|
312
|
+
- メールアドレスは一意である必要がある
|
|
313
|
+
- 検証トークンは24時間で期限切れとなる(新規追加)
|
|
314
|
+
- パスワードは最低8文字以上である必要がある
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
#### 4.5. ubiquitous-language.md の更新
|
|
318
|
+
|
|
319
|
+
**ユビキタス言語**(`docs/03-domain/02-ubiquitous-language.md`)を開く。
|
|
320
|
+
|
|
321
|
+
**新しい用語の追加**:
|
|
322
|
+
```markdown
|
|
323
|
+
## メール検証(Email Verification)
|
|
324
|
+
|
|
325
|
+
**定義**: ユーザーが登録したメールアドレスが有効であることを確認するプロセス
|
|
326
|
+
|
|
327
|
+
**コンテキスト**: ユーザー認証・認可
|
|
328
|
+
|
|
329
|
+
**使用例**:
|
|
330
|
+
- 「ユーザー登録後、メール検証を実施する」
|
|
331
|
+
- 「メール検証が完了していないユーザーは、一部機能にアクセスできない」
|
|
332
|
+
|
|
333
|
+
**関連用語**:
|
|
334
|
+
- メール検証トークン(Email Verification Token)
|
|
335
|
+
- 検証済みフラグ(Email Verified Flag)
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
## メール検証トークン(Email Verification Token)
|
|
340
|
+
|
|
341
|
+
**定義**: メールアドレスの所有権を確認するための一時的なトークン
|
|
342
|
+
|
|
343
|
+
**コンテキスト**: ユーザー認証・認可
|
|
344
|
+
|
|
345
|
+
**技術的詳細**:
|
|
346
|
+
- UUID v4 形式
|
|
347
|
+
- 有効期限: 24 時間
|
|
348
|
+
- 一度使用したら無効化
|
|
349
|
+
|
|
350
|
+
**使用例**:
|
|
351
|
+
- 「メール検証トークンを生成し、ユーザーにメール送信する」
|
|
352
|
+
- 「トークンが有効期限内であれば、メール検証を完了する」
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
#### 4.6. data-model.md の更新
|
|
356
|
+
|
|
357
|
+
**データモデル**(`docs/04-design/04-data-model.md`)を開く。
|
|
358
|
+
|
|
359
|
+
**テーブルの追加・更新**:
|
|
360
|
+
```markdown
|
|
361
|
+
## users テーブル
|
|
362
|
+
|
|
363
|
+
**概要**: ユーザーアカウント情報
|
|
364
|
+
|
|
365
|
+
| カラム名 | データ型 | NULL | デフォルト値 | 説明 | 追加日 |
|
|
366
|
+
|---------|---------|------|------------|------|--------|
|
|
367
|
+
| id | UUID | NOT NULL | gen_random_uuid() | ユーザーID(主キー) | 2024-01-10 |
|
|
368
|
+
| email | VARCHAR(255) | NOT NULL | - | メールアドレス(一意) | 2024-01-10 |
|
|
369
|
+
| password_hash | VARCHAR(255) | NOT NULL | - | パスワードハッシュ | 2024-01-10 |
|
|
370
|
+
| email_verified | BOOLEAN | NOT NULL | false | メール検証済みフラグ | 2024-01-15(新規追加) |
|
|
371
|
+
| email_verification_token | UUID | NULL | - | メール検証トークン | 2024-01-15(新規追加) |
|
|
372
|
+
| email_verification_expires_at | TIMESTAMP | NULL | - | トークン有効期限 | 2024-01-15(新規追加) |
|
|
373
|
+
| created_at | TIMESTAMP | NOT NULL | now() | 作成日時 | 2024-01-10 |
|
|
374
|
+
| updated_at | TIMESTAMP | NOT NULL | now() | 更新日時 | 2024-01-10 |
|
|
375
|
+
|
|
376
|
+
**インデックス**:
|
|
377
|
+
- PRIMARY KEY: id
|
|
378
|
+
- UNIQUE: email
|
|
379
|
+
- INDEX: email_verification_token(新規追加、2024-01-15)
|
|
380
|
+
|
|
381
|
+
**制約**:
|
|
382
|
+
- email: 一意制約
|
|
383
|
+
- email_verification_expires_at: トークン設定時は必須
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
#### 4.7. api-spec.md の更新
|
|
387
|
+
|
|
388
|
+
**API 仕様**(`docs/04-design/05-api-spec.md`)を開く。
|
|
389
|
+
|
|
390
|
+
**新しいエンドポイントの追加**:
|
|
391
|
+
```markdown
|
|
392
|
+
## POST /api/auth/send-verification-email
|
|
393
|
+
|
|
394
|
+
**概要**: メール検証用のメールを送信する
|
|
395
|
+
|
|
396
|
+
**認証**: 必須(JWT)
|
|
397
|
+
|
|
398
|
+
**リクエスト**:
|
|
399
|
+
```json
|
|
400
|
+
{
|
|
401
|
+
// リクエストボディなし
|
|
402
|
+
}
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
**レスポンス(成功)**:
|
|
406
|
+
```json
|
|
407
|
+
{
|
|
408
|
+
"message": "Verification email sent successfully",
|
|
409
|
+
"expiresAt": "2024-01-16T12:00:00Z"
|
|
410
|
+
}
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
**レスポンス(エラー)**:
|
|
414
|
+
- 401 Unauthorized: 認証トークンが無効
|
|
415
|
+
- 400 Bad Request: メールが既に検証済み
|
|
416
|
+
|
|
417
|
+
---
|
|
418
|
+
|
|
419
|
+
## POST /api/auth/verify-email
|
|
420
|
+
|
|
421
|
+
**概要**: メール検証トークンを使用してメールアドレスを検証する
|
|
422
|
+
|
|
423
|
+
**認証**: 不要
|
|
424
|
+
|
|
425
|
+
**リクエスト**:
|
|
426
|
+
```json
|
|
427
|
+
{
|
|
428
|
+
"token": "550e8400-e29b-41d4-a716-446655440000"
|
|
429
|
+
}
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
**レスポンス(成功)**:
|
|
433
|
+
```json
|
|
434
|
+
{
|
|
435
|
+
"message": "Email verified successfully",
|
|
436
|
+
"userId": "123e4567-e89b-12d3-a456-426614174000"
|
|
437
|
+
}
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
**レスポンス(エラー)**:
|
|
441
|
+
- 400 Bad Request: トークンが無効または期限切れ
|
|
442
|
+
- 404 Not Found: ユーザーが見つからない
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
#### 4.8. screen-design.md の更新(該当する場合)
|
|
446
|
+
|
|
447
|
+
**画面設計**(`docs/04-design/03-screen-design.md`)を開く。
|
|
448
|
+
|
|
449
|
+
**新しい画面の追加**:
|
|
450
|
+
```markdown
|
|
451
|
+
## メール検証完了画面
|
|
452
|
+
|
|
453
|
+
**パス**: `/verify-email?token={token}`
|
|
454
|
+
|
|
455
|
+
**概要**: メール検証リンクをクリックした際に表示される画面
|
|
456
|
+
|
|
457
|
+
**UI コンポーネント**:
|
|
458
|
+
- ヘッダー(アプリ名、ロゴ)
|
|
459
|
+
- メッセージエリア
|
|
460
|
+
- 成功時: 「メールアドレスが検証されました。ログインしてください。」
|
|
461
|
+
- 失敗時: 「トークンが無効または期限切れです。再度検証メールを送信してください。」
|
|
462
|
+
- アクションボタン
|
|
463
|
+
- 成功時: 「ログインする」ボタン(→ /login)
|
|
464
|
+
- 失敗時: 「検証メール再送信」ボタン(→ /resend-verification)
|
|
465
|
+
|
|
466
|
+
**画面遷移**:
|
|
467
|
+
- 成功時: 「ログインする」クリック → ログイン画面(/login)
|
|
468
|
+
- 失敗時: 「検証メール再送信」クリック → ログイン画面(/login)
|
|
469
|
+
|
|
470
|
+
**実装ファイル**: `src/pages/VerifyEmail.tsx`
|
|
471
|
+
|
|
472
|
+
**スクリーンショット**: (該当する場合)
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
#### 4.9. architecture.md の更新(該当する場合)
|
|
476
|
+
|
|
477
|
+
**アーキテクチャ**(`docs/04-design/06-architecture.md`)を開く。
|
|
478
|
+
|
|
479
|
+
**アーキテクチャ変更の記録**:
|
|
480
|
+
- 新しいレイヤー・コンポーネントを追加した場合
|
|
481
|
+
- アーキテクチャパターンを変更した場合
|
|
482
|
+
- 新しい依存関係を追加した場合
|
|
483
|
+
|
|
484
|
+
#### 4.10. README.md の更新
|
|
485
|
+
|
|
486
|
+
**README.md** を開く。
|
|
487
|
+
|
|
488
|
+
**更新すべきセクション**:
|
|
489
|
+
|
|
490
|
+
**1. セットアップ手順**:
|
|
491
|
+
新しい環境変数が追加された場合:
|
|
492
|
+
```markdown
|
|
493
|
+
## 環境変数設定
|
|
494
|
+
|
|
495
|
+
`.env.example` をコピーして `.env` ファイルを作成:
|
|
496
|
+
|
|
497
|
+
```bash
|
|
498
|
+
cp .env.example .env
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
以下の環境変数を設定:
|
|
502
|
+
|
|
503
|
+
- `DATABASE_URL`: データベース接続URL
|
|
504
|
+
- `JWT_SECRET`: JWT トークンの秘密鍵
|
|
505
|
+
- `SENDGRID_API_KEY`: SendGrid API キー(新規追加)
|
|
506
|
+
- `SENDGRID_FROM_EMAIL`: 送信元メールアドレス(新規追加)
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
**2. 機能一覧**:
|
|
510
|
+
新機能を追加:
|
|
511
|
+
```markdown
|
|
512
|
+
## 主な機能
|
|
513
|
+
|
|
514
|
+
- ユーザー登録・ログイン
|
|
515
|
+
- **メール認証(新規追加)**
|
|
516
|
+
- パスワードリセット
|
|
517
|
+
- プロフィール管理
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
**3. API ドキュメント**:
|
|
521
|
+
新しいエンドポイントへのリンク:
|
|
522
|
+
```markdown
|
|
523
|
+
## API ドキュメント
|
|
524
|
+
|
|
525
|
+
詳細は [API 仕様書](docs/04-design/05-api-spec.md) を参照してください。
|
|
526
|
+
|
|
527
|
+
主要なエンドポイント:
|
|
528
|
+
- `POST /api/auth/register`: ユーザー登録
|
|
529
|
+
- `POST /api/auth/login`: ログイン
|
|
530
|
+
- `POST /api/auth/send-verification-email`: メール検証メール送信(新規追加)
|
|
531
|
+
- `POST /api/auth/verify-email`: メール検証(新規追加)
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
#### 4.11. CHANGELOG.md の更新
|
|
535
|
+
|
|
536
|
+
**CHANGELOG.md** を開く。
|
|
537
|
+
|
|
538
|
+
**変更履歴の追加**:
|
|
539
|
+
```markdown
|
|
540
|
+
# Changelog
|
|
541
|
+
|
|
542
|
+
All notable changes to this project will be documented in this file.
|
|
543
|
+
|
|
544
|
+
## [Unreleased]
|
|
545
|
+
|
|
546
|
+
### Added
|
|
547
|
+
- メール認証機能を実装(task000001-email-verification)
|
|
548
|
+
- ユーザー登録時にメール検証メールを送信
|
|
549
|
+
- メール検証用のエンドポイント(`POST /api/auth/verify-email`)
|
|
550
|
+
- メール検証トークン管理(有効期限 24 時間)
|
|
551
|
+
- SendGrid 統合によるメール送信
|
|
552
|
+
|
|
553
|
+
### Changed
|
|
554
|
+
- User テーブルに `email_verified`, `email_verification_token`, `email_verification_expires_at` カラムを追加
|
|
555
|
+
|
|
556
|
+
### Fixed
|
|
557
|
+
- (該当する場合)
|
|
558
|
+
|
|
559
|
+
## [1.0.0] - 2024-01-10
|
|
560
|
+
|
|
561
|
+
### Added
|
|
562
|
+
- 初期リリース
|
|
563
|
+
- ユーザー登録・ログイン機能
|
|
564
|
+
```
|
|
565
|
+
|
|
566
|
+
#### 4.12. .env.example の更新
|
|
567
|
+
|
|
568
|
+
**.env.example** を開く。
|
|
569
|
+
|
|
570
|
+
**新しい環境変数の追加**:
|
|
571
|
+
```bash
|
|
572
|
+
# データベース
|
|
573
|
+
DATABASE_URL=postgresql://user:password@localhost:5432/myapp
|
|
574
|
+
|
|
575
|
+
# JWT
|
|
576
|
+
JWT_SECRET=your-jwt-secret-key
|
|
577
|
+
|
|
578
|
+
# メール送信(新規追加)
|
|
579
|
+
SENDGRID_API_KEY=your-sendgrid-api-key
|
|
580
|
+
SENDGRID_FROM_EMAIL=noreply@example.com
|
|
581
|
+
|
|
582
|
+
# アプリケーション
|
|
583
|
+
APP_URL=http://localhost:3000
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
### 5. ドキュメント整合性の検証
|
|
587
|
+
|
|
588
|
+
#### 5.1. クロスリファレンスの確認
|
|
589
|
+
|
|
590
|
+
**ドキュメント間の一貫性を確認**:
|
|
591
|
+
|
|
592
|
+
- [ ] **要件 ↔ ドメインモデル**: features-implemented.md に記載された機能が domain-model.md に反映されているか
|
|
593
|
+
- [ ] **ドメインモデル ↔ データモデル**: domain-model.md のエンティティが data-model.md のテーブルに対応しているか
|
|
594
|
+
- [ ] **ドメインモデル ↔ API 仕様**: domain-model.md の振る舞いが api-spec.md のエンドポイントに対応しているか
|
|
595
|
+
- [ ] **API 仕様 ↔ 実装**: api-spec.md のエンドポイントが実際に実装されているか
|
|
596
|
+
- [ ] **データモデル ↔ 実装**: data-model.md のテーブル定義が実際のマイグレーションファイルと一致しているか
|
|
597
|
+
|
|
598
|
+
#### 5.2. 用語の一貫性確認
|
|
599
|
+
|
|
600
|
+
**ユビキタス言語の一貫性**:
|
|
601
|
+
- [ ] ドキュメント全体で同じ用語を使用しているか
|
|
602
|
+
- [ ] ubiquitous-language.md に記載された用語が各ドキュメントで使用されているか
|
|
603
|
+
- [ ] コード内のクラス名・変数名がドメイン用語と一致しているか
|
|
604
|
+
|
|
605
|
+
#### 5.3. リンク切れの確認
|
|
606
|
+
|
|
607
|
+
**ドキュメント間のリンクを確認**:
|
|
608
|
+
- [ ] 内部リンクが正しいパスを指しているか
|
|
609
|
+
- [ ] 参照先のドキュメント・セクションが存在するか
|
|
610
|
+
|
|
611
|
+
### 6. Git コミット
|
|
612
|
+
|
|
613
|
+
#### 6.1. 変更されたドキュメントの確認
|
|
614
|
+
|
|
615
|
+
```bash
|
|
616
|
+
# 変更されたドキュメントを確認
|
|
617
|
+
git status
|
|
618
|
+
|
|
619
|
+
# 差分を確認
|
|
620
|
+
git diff docs/
|
|
621
|
+
```
|
|
622
|
+
|
|
623
|
+
#### 6.2. ドキュメント更新のコミット
|
|
624
|
+
|
|
625
|
+
**ステージング**:
|
|
626
|
+
```bash
|
|
627
|
+
# タスクドキュメントをステージング
|
|
628
|
+
git add docs/tasks/task{task-id}-{スラッグ}/
|
|
629
|
+
|
|
630
|
+
# プロジェクトドキュメントをステージング
|
|
631
|
+
git add docs/01-requirements/
|
|
632
|
+
git add docs/03-domain/
|
|
633
|
+
git add docs/04-design/
|
|
634
|
+
|
|
635
|
+
# その他のドキュメント
|
|
636
|
+
git add README.md
|
|
637
|
+
git add CHANGELOG.md
|
|
638
|
+
git add .env.example
|
|
639
|
+
```
|
|
640
|
+
|
|
641
|
+
**コミット**:
|
|
642
|
+
```bash
|
|
643
|
+
git commit -m "docs(task-{task-id}): update documentation for {機能名}
|
|
644
|
+
|
|
645
|
+
Task-level documentation:
|
|
646
|
+
- Update a-definition.md with implementation results
|
|
647
|
+
- Update b-research.md with discovered best practices
|
|
648
|
+
- Update c-implementation.md with implementation notes and retrospective
|
|
649
|
+
|
|
650
|
+
Project-level documentation:
|
|
651
|
+
- Add {機能名} to features-implemented.md
|
|
652
|
+
- Update domain-model.md
|
|
653
|
+
- Add terms to ubiquitous-language.md
|
|
654
|
+
- Update data-model.md
|
|
655
|
+
- Update api-spec.md
|
|
656
|
+
- Update README.md with setup instructions
|
|
657
|
+
- Add changelog entry
|
|
658
|
+
|
|
659
|
+
Related: task{task-id}-{スラッグ}"
|
|
660
|
+
```
|
|
661
|
+
|
|
662
|
+
### 7. PRへの反映とレビュー依頼
|
|
663
|
+
|
|
664
|
+
#### 7.1. PRの更新(該当する場合)
|
|
665
|
+
|
|
666
|
+
既にPRが作成されている場合、ドキュメントの更新をプッシュします。
|
|
667
|
+
|
|
668
|
+
```bash
|
|
669
|
+
git push origin task/{task-id}-{スラッグ}
|
|
670
|
+
```
|
|
671
|
+
|
|
672
|
+
#### 7.2. PR作成(まだ作成していない場合)
|
|
673
|
+
|
|
674
|
+
もし `/c-001-ImplementTask` でPRを作成していない場合は、ここで作成します。
|
|
675
|
+
|
|
676
|
+
**GitHub CLI を使用する場合**:
|
|
677
|
+
```bash
|
|
678
|
+
gh pr create --title "feat(task-{id}): {タスク概要}" --body-file docs/tasks/task{id}-{スラッグ}/pr-description.md
|
|
679
|
+
```
|
|
680
|
+
※ `pr-description.md` がない場合は、`c-implementation.md` の内容を参考に作成してください。
|
|
681
|
+
|
|
682
|
+
#### 7.3. レビュー観点
|
|
683
|
+
|
|
684
|
+
**ドキュメント品質の確認**:
|
|
685
|
+
- [ ] **正確性**: 実装内容と一致しているか
|
|
686
|
+
- [ ] **完全性**: すべての変更が記載されているか
|
|
687
|
+
- [ ] **明確性**: 第三者が理解できる内容か
|
|
688
|
+
- [ ] **一貫性**: ドキュメント間で用語・形式が統一されているか
|
|
689
|
+
- [ ] **最新性**: 古い情報が削除されているか
|
|
690
|
+
|
|
691
|
+
#### 7.4. チームレビューの依頼(オプション)
|
|
692
|
+
|
|
693
|
+
**レビュー依頼**:
|
|
694
|
+
- ドキュメント更新が大規模な場合、チームレビューを依頼
|
|
695
|
+
- PR/MR のレビューコメントで「ドキュメント更新を確認してください」と依頼
|
|
696
|
+
|
|
697
|
+
### 8. 次のタスクへのフィードバック
|
|
698
|
+
|
|
699
|
+
#### 8.1. 振り返り内容の共有
|
|
700
|
+
|
|
701
|
+
**c-implementation.md の振り返りセクション**を確認:
|
|
702
|
+
- うまくいったこと
|
|
703
|
+
- 改善すべきこと
|
|
704
|
+
- 次のタスクへのフィードバック
|
|
705
|
+
|
|
706
|
+
**フィードバックの適用**:
|
|
707
|
+
- [ ] 共通化すべきコンポーネント・ライブラリを特定
|
|
708
|
+
- [ ] 次のタスクのリサーチ時に活用すべきベストプラクティスを記録
|
|
709
|
+
- [ ] プロジェクト全体のプロセス改善項目を記録
|
|
710
|
+
|
|
711
|
+
#### 8.2. テンプレートの更新(必要に応じて)
|
|
712
|
+
|
|
713
|
+
**タスクテンプレート**(`.windsurf/templates/tasks/task-template/`)の更新:
|
|
714
|
+
- 今回のタスクで有効だった形式・セクションをテンプレートに反映
|
|
715
|
+
- 次回のタスクで使いやすいテンプレートに改善
|
|
716
|
+
|
|
717
|
+
## 自動化のヒント
|
|
718
|
+
|
|
719
|
+
将来的に、以下のスクリプトを作成してドキュメント更新を一部自動化することを検討してください:
|
|
720
|
+
- `scripts/update-docs.sh`: コミットログから変更内容を抽出してドラフトを作成
|
|
721
|
+
- `scripts/generate-api-docs.sh`: コードからAPI仕様書を生成
|
|
722
|
+
|
|
723
|
+
## 完了条件
|
|
724
|
+
|
|
725
|
+
- [ ] 実装完了が確認されている(全ステップ完了、全テスト通過)
|
|
726
|
+
- [ ] 実装内容と計画の差異が特定されている
|
|
727
|
+
- [ ] タスクドキュメント(a-definition.md, b-research.md, c-implementation.md)が更新されている
|
|
728
|
+
- [ ] プロジェクトドキュメント(features-implemented.md, domain-model.md, data-model.md, api-spec.md など)が更新されている
|
|
729
|
+
- [ ] README.md, CHANGELOG.md, .env.example が更新されている
|
|
730
|
+
- [ ] ドキュメント間の整合性が確認されている
|
|
731
|
+
- [ ] ドキュメント更新がコミットされている
|
|
732
|
+
- [ ] 次のタスクへのフィードバックが記録されている
|
|
733
|
+
|
|
734
|
+
## エスカレーション
|
|
735
|
+
|
|
736
|
+
- **実装が完了していない場合**:
|
|
737
|
+
- 「タスクの実装がまだ完了していません。先に `/c-001-ImplementTask` を実行してください。」
|
|
738
|
+
- 未完了のステップを確認し、実装を完了させる
|
|
739
|
+
|
|
740
|
+
- **計画との差異が大きい場合**:
|
|
741
|
+
- 「計画時の想定と実装内容に大きな差異があります。関係者に共有してください。」
|
|
742
|
+
- 差異の理由と影響範囲を明確にする
|
|
743
|
+
- 必要に応じてアーキテクチャレビューを実施
|
|
744
|
+
|
|
745
|
+
- **ドキュメント更新が複雑な場合**:
|
|
746
|
+
- 「ドキュメント更新が複雑です。段階的に更新することを推奨します。」
|
|
747
|
+
- タスクドキュメント → プロジェクトドキュメント の順に更新
|
|
748
|
+
- 一度にすべて更新せず、重要度の高いものから優先
|
|
749
|
+
|
|
750
|
+
- **用語の不一致が見つかった場合**:
|
|
751
|
+
- 「ドキュメント間で用語の不一致が見つかりました。ubiquitous-language.md を確認してください。」
|
|
752
|
+
- チームで用語を統一
|
|
753
|
+
- 既存ドキュメントを一括修正
|
|
754
|
+
|
|
755
|
+
- **実装コードとドキュメントの乖離が大きい場合**:
|
|
756
|
+
- 「コードとドキュメントの乖離が大きいです。コードレビューで指摘された可能性があります。」
|
|
757
|
+
- コードとドキュメントのどちらが正しいか確認
|
|
758
|
+
- 必要に応じてコードまたはドキュメントを修正
|
|
759
|
+
|
|
760
|
+
## ベストプラクティス
|
|
761
|
+
|
|
762
|
+
- **実装直後に更新**: 実装完了後すぐにドキュメントを更新し、記憶が新しいうちに記録する
|
|
763
|
+
- **差異を記録**: 計画と実装の差異は必ず記録し、次のタスクへのフィードバックとする
|
|
764
|
+
- **スクリーンショット活用**: UI 変更の場合、スクリーンショットを添付して視覚的に記録
|
|
765
|
+
- **リンクを活用**: ドキュメント間でリンクを張り、関連情報にすぐアクセスできるようにする
|
|
766
|
+
- **バージョン管理**: ドキュメントもコードと同様に Git で管理し、変更履歴を追跡
|
|
767
|
+
- **段階的更新**: 大規模なドキュメント更新は段階的に行い、一度に全てを更新しない
|
|
768
|
+
- **レビューを受ける**: 重要なドキュメント更新はチームレビューを受け、正確性を担保
|
|
769
|
+
- **テンプレート活用**: 繰り返し更新するドキュメントはテンプレート化し、効率化
|
|
770
|
+
- **自動化**: 可能な部分は自動化(API ドキュメント生成、データモデル図生成など)
|
|
771
|
+
- **定期的な棚卸し**: ドキュメント全体を定期的にレビューし、古い情報を削除
|
|
772
|
+
|
|
773
|
+
## 参考: ドキュメント構造
|
|
774
|
+
|
|
775
|
+
**タスクレベル**(`docs/tasks/task{id}-{スラッグ}/`):
|
|
776
|
+
- `a-definition.md`: タスク定義(目的、ユーザーストーリー、受け入れ基準)
|
|
777
|
+
- `b-research.md`: リサーチ(ベストプラクティス、技術選定)
|
|
778
|
+
- `c-implementation.md`: 実装タスクリスト(フェーズ、ステップ)
|
|
779
|
+
|
|
780
|
+
**プロジェクトレベル**(`docs/`):
|
|
781
|
+
- `01-requirements/`: 要件定義
|
|
782
|
+
- `02-features-implemented.md`: 実装済み機能
|
|
783
|
+
- `03-features-planned.md`: 計画中機能
|
|
784
|
+
- `05-user-stories.md`: ユーザーストーリー
|
|
785
|
+
- `03-domain/`: ドメイン
|
|
786
|
+
- `01-domain-model.md`: ドメインモデル
|
|
787
|
+
- `02-ubiquitous-language.md`: ユビキタス言語
|
|
788
|
+
- `04-design/`: 設計
|
|
789
|
+
- `03-screen-design.md`: 画面設計
|
|
790
|
+
- `04-data-model.md`: データモデル
|
|
791
|
+
- `05-api-spec.md`: API 仕様
|
|
792
|
+
- `06-architecture.md`: アーキテクチャ
|
|
793
|
+
|
|
794
|
+
**その他**:
|
|
795
|
+
- `README.md`: プロジェクト概要、セットアップ手順
|
|
796
|
+
- `CHANGELOG.md`: 変更履歴
|
|
797
|
+
- `.env.example`: 環境変数テンプレート
|