yodogawa 1.0.3 → 1.0.4
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/scripts/setup-docs.sh +92 -92
- package/.windsurf/templates/project/03-domain/01-domain-model.md +1 -0
- package/.windsurf/templates/project/04-design/01-tech-stack.md +7 -0
- package/.windsurf/templates/project/04-design/02-repository-structure.md +3 -2
- package/.windsurf/templates/project/04-design/03-screen-design.md +14 -4
- package/.windsurf/templates/project/04-design/05-api-spec.md +5 -0
- package/.windsurf/templates/tasks/task-template/c-implementation.md +3 -0
- package/.windsurf/workflows/a-001-SetupDocStructure.md +3 -0
- package/.windsurf/workflows/a-002-InitializeProject.md +8 -0
- package/.windsurf/workflows/a-003-CreateScenarios.md +10 -0
- package/.windsurf/workflows/a-004-DefineDomainModel.md +9 -0
- package/.windsurf/workflows/a-005-CreateDomainDiagram.md +5 -0
- package/.windsurf/workflows/a-006-ReviewRequirementsDomain.md +12 -1
- package/.windsurf/workflows/a-007-DefineTechStack.md +7 -0
- package/.windsurf/workflows/a-008-DefineRepositoryStructure.md +9 -0
- package/.windsurf/workflows/a-009-DefineScreenDesign.md +7 -0
- package/.windsurf/workflows/a-010-DefineDataModel.md +8 -0
- package/.windsurf/workflows/a-011-DefineAPISpec.md +8 -0
- package/.windsurf/workflows/a-012-DefineArchitecture.md +8 -0
- package/.windsurf/workflows/a-013-DefineInfrastructure.md +9 -0
- package/.windsurf/workflows/a-014-ReviewDesign.md +10 -1
- package/.windsurf/workflows/b-001-CreateTaskDirectory.md +7 -1
- package/.windsurf/workflows/b-002-CreateTaskDefinition.md +5 -0
- package/.windsurf/workflows/b-003-CreateTaskResearch.md +40 -0
- package/.windsurf/workflows/b-004-CreateTaskImplementation.md +1 -0
- package/.windsurf/workflows/b-005-ReviewTask.md +11 -0
- package/.windsurf/workflows/c-001-ImplementTask.md +28 -1
- package/.windsurf/workflows/c-002-UpdateDocumentation.md +56 -1
- package/README.md +152 -234
- package/package.json +9 -2
- package/.windsurf/workflows/x-Accessibility-Check.md +0 -469
- package/.windsurf/workflows/x-Bundle-Optimize.md +0 -386
- package/.windsurf/workflows/x-CI-FixFailure.md +0 -636
- package/.windsurf/workflows/x-CI-Setup.md +0 -641
- package/.windsurf/workflows/x-Code-Refactor.md +0 -71
- package/.windsurf/workflows/x-Code-ResearchAndReview.md +0 -78
- package/.windsurf/workflows/x-Component-Create.md +0 -359
- package/.windsurf/workflows/x-Context-CatchUp.md +0 -63
- package/.windsurf/workflows/x-Database-Seed.md +0 -300
- package/.windsurf/workflows/x-Dependencies-Update.md +0 -315
- package/.windsurf/workflows/x-DevEnvironment-Setup.md +0 -437
- package/.windsurf/workflows/x-Logging-Add.md +0 -682
- package/.windsurf/workflows/x-Migration-Create.md +0 -354
- package/.windsurf/workflows/x-Problem-RootCauseAnalysis.md +0 -65
- package/.windsurf/workflows/x-Repository-Push.md +0 -375
- package/.windsurf/workflows/x-Repository-PushToGithub.md +0 -72
- package/.windsurf/workflows/x-Requirements-Clarify.md +0 -61
- package/.windsurf/workflows/z-CreateWorkflow.md +0 -77
|
@@ -1,92 +1,92 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
# setup-docs.sh
|
|
4
|
-
# プロジェクトのドキュメントディレクトリ構造を作成するスクリプト
|
|
5
|
-
|
|
6
|
-
set -e
|
|
7
|
-
|
|
8
|
-
DOCS_DIR="docs"
|
|
9
|
-
|
|
10
|
-
echo "📂 ドキュメント構造のセットアップを開始します..."
|
|
11
|
-
|
|
12
|
-
# 1. 現在の状態確認
|
|
13
|
-
if [ -d "$DOCS_DIR" ]; then
|
|
14
|
-
echo "⚠️ '$DOCS_DIR' ディレクトリは既に存在します。"
|
|
15
|
-
read -p "既存の構造を保持したまま、不足しているディレクトリを追加しますか? (y/N): " confirm
|
|
16
|
-
if [[ ! "$confirm" =~ ^[Yy]$ ]]; then
|
|
17
|
-
echo "❌ 中断しました。"
|
|
18
|
-
exit 0
|
|
19
|
-
fi
|
|
20
|
-
fi
|
|
21
|
-
|
|
22
|
-
# 2. ディレクトリ構造の作成
|
|
23
|
-
echo "🔨 ディレクトリを作成中..."
|
|
24
|
-
mkdir -p "$DOCS_DIR/project/01-requirements"
|
|
25
|
-
mkdir -p "$DOCS_DIR/project/02-behavior"
|
|
26
|
-
mkdir -p "$DOCS_DIR/project/03-domain"
|
|
27
|
-
mkdir -p "$DOCS_DIR/project/04-design"
|
|
28
|
-
mkdir -p "$DOCS_DIR/tasks"
|
|
29
|
-
|
|
30
|
-
# 3. docs/README.md の作成
|
|
31
|
-
README_FILE="$DOCS_DIR/README.md"
|
|
32
|
-
if [ -f "$README_FILE" ]; then
|
|
33
|
-
echo "⚠️ '$README_FILE' は既に存在します。"
|
|
34
|
-
read -p "上書きしますか? (y/N): " confirm_readme
|
|
35
|
-
if [[ ! "$confirm_readme" =~ ^[Yy]$ ]]; then
|
|
36
|
-
echo "ℹ️ READMEの作成をスキップしました。"
|
|
37
|
-
else
|
|
38
|
-
CREATE_README=true
|
|
39
|
-
fi
|
|
40
|
-
else
|
|
41
|
-
CREATE_README=true
|
|
42
|
-
fi
|
|
43
|
-
|
|
44
|
-
if [ "$CREATE_README" = true ]; then
|
|
45
|
-
echo "📝 README.md を作成中..."
|
|
46
|
-
cat > "$README_FILE" <<EOF
|
|
47
|
-
# プロジェクトドキュメント
|
|
48
|
-
|
|
49
|
-
このディレクトリには、プロジェクト全体のドキュメントと個別タスクのドキュメントを管理します。
|
|
50
|
-
|
|
51
|
-
## 構成
|
|
52
|
-
|
|
53
|
-
### project/
|
|
54
|
-
プロジェクト全体のドキュメント。要件定義、設計、アーキテクチャなど、プロジェクトスコープ全体に関わる情報を記載します。
|
|
55
|
-
|
|
56
|
-
- **01-requirements/**: 要件定義(システム概要、機能要件、非機能要件、ユーザーストーリーなど)
|
|
57
|
-
- **02-behavior/**: 振る舞い定義(シナリオ、ユースケース、ユーザージャーニーなど)
|
|
58
|
-
- **03-domain/**: ドメインモデル(エンティティ、用語集など)
|
|
59
|
-
- **04-design/**: 設計(アーキテクチャ、データモデル、API仕様など)
|
|
60
|
-
|
|
61
|
-
### tasks/
|
|
62
|
-
個別タスクのドキュメント。Issue やチケット単位で作成します。
|
|
63
|
-
|
|
64
|
-
## 更新方針
|
|
65
|
-
|
|
66
|
-
### プロジェクト全体のドキュメント (project/)
|
|
67
|
-
- プロジェクトのスコープ全体に影響する情報を記載
|
|
68
|
-
- チーム全体で共有すべき要件・設計・アーキテクチャを管理
|
|
69
|
-
- 更新時は関係者にレビューを依頼
|
|
70
|
-
|
|
71
|
-
### 個別タスクのドキュメント (tasks/)
|
|
72
|
-
- 特定の Issue やチケットに紐づく情報を記載
|
|
73
|
-
- タスク単位で作成・完了・アーカイブ
|
|
74
|
-
- 完了後は参照資料として保持、または削除
|
|
75
|
-
|
|
76
|
-
## ドキュメント作成ガイドライン
|
|
77
|
-
|
|
78
|
-
- **具体的**: 抽象的な表現を避け、数値・期限・制約を明確に記載
|
|
79
|
-
- **測定可能**: 成功基準やパフォーマンス目標を定量化
|
|
80
|
-
- **最新**: 変更があれば速やかに更新し、古い情報を残さない
|
|
81
|
-
- **簡潔**: 必要最低限の情報に絞り、詳細はコードやリンク先に委ねる
|
|
82
|
-
EOF
|
|
83
|
-
fi
|
|
84
|
-
|
|
85
|
-
# 4. 完了報告
|
|
86
|
-
echo ""
|
|
87
|
-
echo "✅ ドキュメントディレクトリ構造のセットアップが完了しました!"
|
|
88
|
-
echo ""
|
|
89
|
-
find "$DOCS_DIR" -maxdepth 2 | sort
|
|
90
|
-
echo ""
|
|
91
|
-
echo "次のステップ:"
|
|
92
|
-
echo " - 必要に応じて 'git add $DOCS_DIR' を実行してください。"
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# setup-docs.sh
|
|
4
|
+
# プロジェクトのドキュメントディレクトリ構造を作成するスクリプト
|
|
5
|
+
|
|
6
|
+
set -e
|
|
7
|
+
|
|
8
|
+
DOCS_DIR="docs"
|
|
9
|
+
|
|
10
|
+
echo "📂 ドキュメント構造のセットアップを開始します..."
|
|
11
|
+
|
|
12
|
+
# 1. 現在の状態確認
|
|
13
|
+
if [ -d "$DOCS_DIR" ]; then
|
|
14
|
+
echo "⚠️ '$DOCS_DIR' ディレクトリは既に存在します。"
|
|
15
|
+
read -p "既存の構造を保持したまま、不足しているディレクトリを追加しますか? (y/N): " confirm
|
|
16
|
+
if [[ ! "$confirm" =~ ^[Yy]$ ]]; then
|
|
17
|
+
echo "❌ 中断しました。"
|
|
18
|
+
exit 0
|
|
19
|
+
fi
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
# 2. ディレクトリ構造の作成
|
|
23
|
+
echo "🔨 ディレクトリを作成中..."
|
|
24
|
+
mkdir -p "$DOCS_DIR/project/01-requirements"
|
|
25
|
+
mkdir -p "$DOCS_DIR/project/02-behavior"
|
|
26
|
+
mkdir -p "$DOCS_DIR/project/03-domain"
|
|
27
|
+
mkdir -p "$DOCS_DIR/project/04-design"
|
|
28
|
+
mkdir -p "$DOCS_DIR/tasks"
|
|
29
|
+
|
|
30
|
+
# 3. docs/README.md の作成
|
|
31
|
+
README_FILE="$DOCS_DIR/README.md"
|
|
32
|
+
if [ -f "$README_FILE" ]; then
|
|
33
|
+
echo "⚠️ '$README_FILE' は既に存在します。"
|
|
34
|
+
read -p "上書きしますか? (y/N): " confirm_readme
|
|
35
|
+
if [[ ! "$confirm_readme" =~ ^[Yy]$ ]]; then
|
|
36
|
+
echo "ℹ️ READMEの作成をスキップしました。"
|
|
37
|
+
else
|
|
38
|
+
CREATE_README=true
|
|
39
|
+
fi
|
|
40
|
+
else
|
|
41
|
+
CREATE_README=true
|
|
42
|
+
fi
|
|
43
|
+
|
|
44
|
+
if [ "$CREATE_README" = true ]; then
|
|
45
|
+
echo "📝 README.md を作成中..."
|
|
46
|
+
cat > "$README_FILE" <<EOF
|
|
47
|
+
# プロジェクトドキュメント
|
|
48
|
+
|
|
49
|
+
このディレクトリには、プロジェクト全体のドキュメントと個別タスクのドキュメントを管理します。
|
|
50
|
+
|
|
51
|
+
## 構成
|
|
52
|
+
|
|
53
|
+
### project/
|
|
54
|
+
プロジェクト全体のドキュメント。要件定義、設計、アーキテクチャなど、プロジェクトスコープ全体に関わる情報を記載します。
|
|
55
|
+
|
|
56
|
+
- **01-requirements/**: 要件定義(システム概要、機能要件、非機能要件、ユーザーストーリーなど)
|
|
57
|
+
- **02-behavior/**: 振る舞い定義(シナリオ、ユースケース、ユーザージャーニーなど)
|
|
58
|
+
- **03-domain/**: ドメインモデル(エンティティ、用語集など)
|
|
59
|
+
- **04-design/**: 設計(アーキテクチャ、データモデル、API仕様など)
|
|
60
|
+
|
|
61
|
+
### tasks/
|
|
62
|
+
個別タスクのドキュメント。Issue やチケット単位で作成します。
|
|
63
|
+
|
|
64
|
+
## 更新方針
|
|
65
|
+
|
|
66
|
+
### プロジェクト全体のドキュメント (project/)
|
|
67
|
+
- プロジェクトのスコープ全体に影響する情報を記載
|
|
68
|
+
- チーム全体で共有すべき要件・設計・アーキテクチャを管理
|
|
69
|
+
- 更新時は関係者にレビューを依頼
|
|
70
|
+
|
|
71
|
+
### 個別タスクのドキュメント (tasks/)
|
|
72
|
+
- 特定の Issue やチケットに紐づく情報を記載
|
|
73
|
+
- タスク単位で作成・完了・アーカイブ
|
|
74
|
+
- 完了後は参照資料として保持、または削除
|
|
75
|
+
|
|
76
|
+
## ドキュメント作成ガイドライン
|
|
77
|
+
|
|
78
|
+
- **具体的**: 抽象的な表現を避け、数値・期限・制約を明確に記載
|
|
79
|
+
- **測定可能**: 成功基準やパフォーマンス目標を定量化
|
|
80
|
+
- **最新**: 変更があれば速やかに更新し、古い情報を残さない
|
|
81
|
+
- **簡潔**: 必要最低限の情報に絞り、詳細はコードやリンク先に委ねる
|
|
82
|
+
EOF
|
|
83
|
+
fi
|
|
84
|
+
|
|
85
|
+
# 4. 完了報告
|
|
86
|
+
echo ""
|
|
87
|
+
echo "✅ ドキュメントディレクトリ構造のセットアップが完了しました!"
|
|
88
|
+
echo ""
|
|
89
|
+
find "$DOCS_DIR" -maxdepth 2 | sort
|
|
90
|
+
echo ""
|
|
91
|
+
echo "次のステップ:"
|
|
92
|
+
echo " - 必要に応じて 'git add $DOCS_DIR' を実行してください。"
|
|
@@ -172,6 +172,7 @@
|
|
|
172
172
|
### 初期フェーズ(プロジェクト開始時)
|
|
173
173
|
|
|
174
174
|
**決定すべき技術**:
|
|
175
|
+
|
|
175
176
|
- プログラミング言語、フレームワーク
|
|
176
177
|
- データベース(RDBMS/NoSQL)
|
|
177
178
|
- インフラプロバイダー(AWS/GCP/Azure)
|
|
@@ -182,6 +183,7 @@
|
|
|
182
183
|
**理由**: これらは後から変更するコストが非常に高い。アーキテクチャの基盤となる技術。
|
|
183
184
|
|
|
184
185
|
**例**:
|
|
186
|
+
|
|
185
187
|
- フロントエンド: React, Vue, Angular の選択
|
|
186
188
|
- バックエンド: Node.js, Python, Go の選択
|
|
187
189
|
- データベース: PostgreSQL, MySQL, MongoDB の選択
|
|
@@ -192,6 +194,7 @@
|
|
|
192
194
|
### 中期フェーズ(主要機能実装後)
|
|
193
195
|
|
|
194
196
|
**決定すべき技術**:
|
|
197
|
+
|
|
195
198
|
- E2E テストフレームワーク(Playwright, Cypress)
|
|
196
199
|
- パフォーマンステストツール
|
|
197
200
|
- セキュリティスキャンツール
|
|
@@ -200,6 +203,7 @@
|
|
|
200
203
|
**理由**: UI/UX がある程度安定してから導入すべき。初期は画面変更が多く、E2E テストの保守コストが高い。
|
|
201
204
|
|
|
202
205
|
**導入タイミングの目安**:
|
|
206
|
+
|
|
203
207
|
- 主要画面の実装完了
|
|
204
208
|
- MVP(Minimum Viable Product)リリース前
|
|
205
209
|
- ユーザーストーリーの 70% 完了時点
|
|
@@ -209,6 +213,7 @@
|
|
|
209
213
|
### 後期フェーズ(本番運用開始時)
|
|
210
214
|
|
|
211
215
|
**決定すべき技術**:
|
|
216
|
+
|
|
212
217
|
- 監視・Observability ツール(Sentry, Datadog, New Relic)
|
|
213
218
|
- ログ集約(CloudWatch Logs, ELK Stack)
|
|
214
219
|
- APM(Application Performance Monitoring)
|
|
@@ -219,6 +224,7 @@
|
|
|
219
224
|
**理由**: 本番環境の実際の負荷やエラーパターンを見てから導入する方が効果的。初期導入はコストのみで価値が低い。
|
|
220
225
|
|
|
221
226
|
**導入タイミングの目安**:
|
|
227
|
+
|
|
222
228
|
- 本番リリース 1-2 週間前(監視ツール)
|
|
223
229
|
- パフォーマンス問題が顕在化した時点(キャッシュ層)
|
|
224
230
|
- ユーザー数が一定規模を超えた時点(例: 月間 10,000 アクティブユーザー)
|
|
@@ -228,6 +234,7 @@
|
|
|
228
234
|
### 随時フェーズ(必要に応じて)
|
|
229
235
|
|
|
230
236
|
**決定すべき技術**:
|
|
237
|
+
|
|
231
238
|
- 特定の機能要件に必要なライブラリ
|
|
232
239
|
- 開発効率化ツール
|
|
233
240
|
- 実験的なツール(A/B テスト、Feature Flag など)
|
|
@@ -218,8 +218,8 @@ components/ → features/ (NG、コンポーネントは汎用部品)
|
|
|
218
218
|
| **ファイル・ディレクトリ** | | |
|
|
219
219
|
| React コンポーネント | PascalCase、拡張子 .tsx | `UserProfile.tsx`, `LoginForm.tsx` |
|
|
220
220
|
| TypeScript ファイル | camelCase、拡張子 .ts | `formatDate.ts`, `apiClient.ts` |
|
|
221
|
-
| CSS Modules | *.module.css
|
|
222
|
-
| テストファイル | *.test.ts
|
|
221
|
+
| CSS Modules | *.module.css,*.module.scss | `Button.module.css` |
|
|
222
|
+
| テストファイル | *.test.ts,*.spec.ts | `user.test.ts`, `auth.spec.ts` |
|
|
223
223
|
| 設定ファイル | ドット始まり、特定の名前 | `.eslintrc.json`, `.env`, `tsconfig.json` |
|
|
224
224
|
| ディレクトリ | kebab-case または camelCase | `user-management/` または `userManagement/` |
|
|
225
225
|
| **コード要素** | | |
|
|
@@ -300,6 +300,7 @@ components/ → features/ (NG、コンポーネントは汎用部品)
|
|
|
300
300
|
**採用戦略**: <!-- 例: 機能別コロケーション -->
|
|
301
301
|
|
|
302
302
|
**配置例**:
|
|
303
|
+
|
|
303
304
|
```
|
|
304
305
|
features/user/
|
|
305
306
|
├── UserProfile.tsx # コンポーネント
|
|
@@ -166,12 +166,14 @@ Mermaidの記法:
|
|
|
166
166
|
- flowchart TD: 上から下へのフロー
|
|
167
167
|
- flowchart LR: 左から右へのフロー
|
|
168
168
|
- A[画面名] --> B[画面名]: 遷移
|
|
169
|
-
|
|
169
|
+
|
|
170
|
+
- A --> |条件| B: 条件付き遷移
|
|
170
171
|
|
|
171
172
|
よくあるパターン:
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
173
|
+
|
|
174
|
+
- 未認証 → ログイン → ダッシュボード → 各機能画面
|
|
175
|
+
- エラー画面 → トップページ
|
|
176
|
+
- 管理画面は別フローで記載
|
|
175
177
|
-->
|
|
176
178
|
|
|
177
179
|
```mermaid
|
|
@@ -239,6 +241,7 @@ flowchart TD
|
|
|
239
241
|
**役割**: ユーザーの認証・認可を管理し、システムへの安全なアクセスを提供
|
|
240
242
|
|
|
241
243
|
**含まれる画面**:
|
|
244
|
+
|
|
242
245
|
- ログイン画面(SCR-001)
|
|
243
246
|
- サインアップ画面(SCR-002)
|
|
244
247
|
- パスワードリセット画面(SCR-003)
|
|
@@ -256,6 +259,7 @@ flowchart TD
|
|
|
256
259
|
**役割**: システムの主要な業務機能を提供
|
|
257
260
|
|
|
258
261
|
**含まれる画面**:
|
|
262
|
+
|
|
259
263
|
- ダッシュボード(SCR-010)
|
|
260
264
|
- ユーザー一覧(SCR-011)
|
|
261
265
|
- ユーザー詳細(SCR-012)
|
|
@@ -332,6 +336,7 @@ flowchart TD
|
|
|
332
336
|
| **2xl** (2X Large) | `≥ 1536px` | 大型デスクトップ、4Kモニター | 最大コンテンツ幅制限 |
|
|
333
337
|
|
|
334
338
|
**実装例(Tailwind CSS形式)**:
|
|
339
|
+
|
|
335
340
|
```css
|
|
336
341
|
/* tailwind.config.js */
|
|
337
342
|
module.exports = {
|
|
@@ -348,6 +353,7 @@ module.exports = {
|
|
|
348
353
|
```
|
|
349
354
|
|
|
350
355
|
**CSS変数での実装例**:
|
|
356
|
+
|
|
351
357
|
```css
|
|
352
358
|
:root {
|
|
353
359
|
--breakpoint-sm: 640px;
|
|
@@ -380,6 +386,7 @@ module.exports = {
|
|
|
380
386
|
| **大型モニター (4K)** | 検討中 | 1920px 以上 | コンテンツ最大幅で制限 (max-width: 1536px) |
|
|
381
387
|
|
|
382
388
|
**モバイルファースト戦略を採用**:
|
|
389
|
+
|
|
383
390
|
- デザイン・実装はスマートフォン画面から開始
|
|
384
391
|
- 段階的にタブレット、デスクトップに対応
|
|
385
392
|
- パフォーマンス最適化をモバイル基準で実施
|
|
@@ -452,6 +459,7 @@ module.exports = {
|
|
|
452
459
|
| **動画** | モバイルは自動再生オフ、データ通信量考慮 | `preload="metadata"`, 解像度別エンコード |
|
|
453
460
|
|
|
454
461
|
**実装例**:
|
|
462
|
+
|
|
455
463
|
```html
|
|
456
464
|
<picture>
|
|
457
465
|
<source srcset="image.avif" type="image/avif">
|
|
@@ -484,6 +492,7 @@ module.exports = {
|
|
|
484
492
|
| **ピンチズーム** | 画像ギャラリーで有効化 | `user-scalable=yes` を設定 |
|
|
485
493
|
|
|
486
494
|
**アクセシブルなボタン実装例**:
|
|
495
|
+
|
|
487
496
|
```css
|
|
488
497
|
.button {
|
|
489
498
|
min-width: 44px;
|
|
@@ -522,6 +531,7 @@ module.exports = {
|
|
|
522
531
|
| **TTI (Time to Interactive)** | < 3.5秒(3G回線) | Critical CSS インライン化、遅延ローディング |
|
|
523
532
|
|
|
524
533
|
**モバイルネットワーク対応**:
|
|
534
|
+
|
|
525
535
|
- 3G回線でのテストを実施(Chrome DevTools のネットワークスロットリング使用)
|
|
526
536
|
- オフライン時の適切なフォールバック表示
|
|
527
537
|
- プログレッシブWebアプリ(PWA)化を検討
|
|
@@ -146,6 +146,7 @@ API のセキュリティ方式の基本情報
|
|
|
146
146
|
### 成功レスポンス
|
|
147
147
|
|
|
148
148
|
**基本構造**:
|
|
149
|
+
|
|
149
150
|
```json
|
|
150
151
|
{
|
|
151
152
|
"data": { /* リソースデータ */ },
|
|
@@ -154,6 +155,7 @@ API のセキュリティ方式の基本情報
|
|
|
154
155
|
```
|
|
155
156
|
|
|
156
157
|
**単一リソース取得の例**:
|
|
158
|
+
|
|
157
159
|
```json
|
|
158
160
|
{
|
|
159
161
|
"data": {
|
|
@@ -166,6 +168,7 @@ API のセキュリティ方式の基本情報
|
|
|
166
168
|
```
|
|
167
169
|
|
|
168
170
|
**リスト取得の例**:
|
|
171
|
+
|
|
169
172
|
```json
|
|
170
173
|
{
|
|
171
174
|
"data": [
|
|
@@ -183,6 +186,7 @@ API のセキュリティ方式の基本情報
|
|
|
183
186
|
### エラーレスポンス
|
|
184
187
|
|
|
185
188
|
**基本構造**:
|
|
189
|
+
|
|
186
190
|
```json
|
|
187
191
|
{
|
|
188
192
|
"error": {
|
|
@@ -193,6 +197,7 @@ API のセキュリティ方式の基本情報
|
|
|
193
197
|
```
|
|
194
198
|
|
|
195
199
|
**バリデーションエラーの例**:
|
|
200
|
+
|
|
196
201
|
```json
|
|
197
202
|
{
|
|
198
203
|
"error": {
|
|
@@ -154,6 +154,7 @@
|
|
|
154
154
|
-->
|
|
155
155
|
|
|
156
156
|
### フェーズ 1 の受け入れ基準
|
|
157
|
+
|
|
157
158
|
- [ ] データベースマイグレーションが成功する
|
|
158
159
|
- [ ] 型定義が正しく適用される(TypeScript コンパイルエラーなし)
|
|
159
160
|
- [ ] メール送信 API がトークンを生成し、メールを送信する
|
|
@@ -161,6 +162,7 @@
|
|
|
161
162
|
- [ ] トークンの有効期限切れが正しく検出される
|
|
162
163
|
|
|
163
164
|
### フェーズ 2 の受け入れ基準
|
|
165
|
+
|
|
164
166
|
- [ ] メール認証ページが正しく表示される
|
|
165
167
|
- [ ] 認証成功時に成功メッセージが表示される
|
|
166
168
|
- [ ] 認証失敗時にエラーメッセージが表示される
|
|
@@ -168,6 +170,7 @@
|
|
|
168
170
|
- [ ] 認証済みユーザーは全ての機能にアクセスできる
|
|
169
171
|
|
|
170
172
|
### フェーズ 3 の受け入れ基準
|
|
173
|
+
|
|
171
174
|
- [ ] 全てのユニットテストが通る
|
|
172
175
|
- [ ] 全ての統合テストが通る
|
|
173
176
|
- [ ] E2E テストが通る(CI 環境でも実行)
|
|
@@ -43,6 +43,7 @@ auto_execution_mode: 1
|
|
|
43
43
|
|
|
44
44
|
- スクリプトの実行結果を確認し、エラーがないことを確認してください。
|
|
45
45
|
- 生成された構造:
|
|
46
|
+
|
|
46
47
|
```
|
|
47
48
|
docs/
|
|
48
49
|
├── README.md
|
|
@@ -58,10 +59,12 @@ auto_execution_mode: 1
|
|
|
58
59
|
|
|
59
60
|
- ユーザーに確認:「作成したディレクトリ構造を Git に追加しますか?」
|
|
60
61
|
- 「はい」の場合、以下を実行:
|
|
62
|
+
|
|
61
63
|
```bash
|
|
62
64
|
git add docs/
|
|
63
65
|
git status
|
|
64
66
|
```
|
|
67
|
+
|
|
65
68
|
- Git status の結果を表示し、コミットメッセージの提案をする:
|
|
66
69
|
|
|
67
70
|
```
|
|
@@ -36,20 +36,24 @@ auto_execution_mode: 1
|
|
|
36
36
|
1. **コードベースの規模確認**:
|
|
37
37
|
|
|
38
38
|
- プロジェクトのルートにあるファイルやディレクトリを確認する。
|
|
39
|
+
|
|
39
40
|
```bash
|
|
40
41
|
ls -F
|
|
41
42
|
```
|
|
43
|
+
|
|
42
44
|
- **スキップ判断**:
|
|
43
45
|
- ファイルがほとんど存在しない(例: `.git` ディレクトリのみ、あるいは `README.md` だけなど)、または有意なソースコードが見当たらない場合は、このステップをスキップする。
|
|
44
46
|
- スキップする場合、ユーザーに「コードベースが空、または十分な情報がないため、自動分析をスキップします。」と通知し、次のステップへ進む。
|
|
45
47
|
|
|
46
48
|
2. **詳細調査と分析(コードが存在する場合)**:
|
|
47
49
|
- `README.md`, `package.json`, および主要なソースコードを読み込む。
|
|
50
|
+
|
|
48
51
|
```bash
|
|
49
52
|
cat package.json 2>/dev/null
|
|
50
53
|
cat README.md 2>/dev/null
|
|
51
54
|
find src app lib -maxdepth 2 2>/dev/null
|
|
52
55
|
```
|
|
56
|
+
|
|
53
57
|
- 読み込んだ情報を基に、以下の内容を分析・推測し、ユーザーに提示する。
|
|
54
58
|
- **システム概要**: プロジェクトの目的、主要な技術スタック。
|
|
55
59
|
- **実装済み機能**: ファイル構造やコードから推測される機能。
|
|
@@ -91,12 +95,14 @@ auto_execution_mode: 1
|
|
|
91
95
|
2. **コードベースの調査と提案**:
|
|
92
96
|
|
|
93
97
|
- プロジェクト内のソースコードを簡易検索し、実装済みの兆候を探す。
|
|
98
|
+
|
|
94
99
|
```bash
|
|
95
100
|
# 主要なソースディレクトリの構造を確認(例)
|
|
96
101
|
find src app lib -maxdepth 2 -type d 2>/dev/null
|
|
97
102
|
# 特徴的なファイル名を検索
|
|
98
103
|
find . -type f -name "*Controller*" -o -name "*Service*" -o -name "*Component*" | head -n 20
|
|
99
104
|
```
|
|
105
|
+
|
|
100
106
|
- 検出されたディレクトリ名やファイル名から機能を推測し、ユーザーに提案する。
|
|
101
107
|
- 「`src/auth` ディレクトリが見つかりました。認証機能(ログイン、登録など)は実装済みですか?」
|
|
102
108
|
- 「`PaymentController` があります。決済機能は稼働していますか?」
|
|
@@ -246,10 +252,12 @@ auto_execution_mode: 1
|
|
|
246
252
|
|
|
247
253
|
- ユーザーに確認:「作成した要件定義ドキュメントを Git に追加しますか?」
|
|
248
254
|
- 「はい」の場合、以下を実行:
|
|
255
|
+
|
|
249
256
|
```bash
|
|
250
257
|
git add docs/project/requirements/
|
|
251
258
|
git status
|
|
252
259
|
```
|
|
260
|
+
|
|
253
261
|
- Git status の結果を表示し、コミットメッセージの提案をする:
|
|
254
262
|
|
|
255
263
|
```
|
|
@@ -21,6 +21,7 @@ description: ユーザーストーリーから具体的なGherkinシナリオを
|
|
|
21
21
|
### 1. ディレクトリと前提条件の確認
|
|
22
22
|
|
|
23
23
|
- `docs/project/behavior/` ディレクトリの存在を確認:
|
|
24
|
+
|
|
24
25
|
```bash
|
|
25
26
|
ls -la docs/project/behavior/ 2>/dev/null || echo "ディレクトリが存在しません"
|
|
26
27
|
```
|
|
@@ -34,6 +35,7 @@ description: ユーザーストーリーから具体的なGherkinシナリオを
|
|
|
34
35
|
### 2. テンプレートの準備
|
|
35
36
|
|
|
36
37
|
- テンプレートをコピーして作業用ファイルを作成する:
|
|
38
|
+
|
|
37
39
|
```bash
|
|
38
40
|
cp ".windsurf/templates/project/02-behavior/01-scenarios.md" "docs/project/behavior/01-scenarios.md"
|
|
39
41
|
```
|
|
@@ -52,19 +54,23 @@ description: ユーザーストーリーから具体的なGherkinシナリオを
|
|
|
52
54
|
各機能について、以下の順序でヒアリングを行い、`docs/project/behavior/01-scenarios.md` を更新する。
|
|
53
55
|
|
|
54
56
|
#### 4.1 Feature情報の定義
|
|
57
|
+
|
|
55
58
|
- 機能名、説明、対応するユーザーストーリー(As a/I want/So that)を記入する。
|
|
56
59
|
- **Background**(共通前提条件)がある場合は定義する。
|
|
57
60
|
|
|
58
61
|
#### 4.2 シナリオの作成(ハッピーパス)
|
|
62
|
+
|
|
59
63
|
- 「最も基本的な成功シナリオを教えてください。」
|
|
60
64
|
- **Given**(前提)、**When**(アクション)、**Then**(結果)を確認し、Gherkin形式で記述する。
|
|
61
65
|
- UI操作の詳細ではなく、ユーザーの意図を記述するよう注意する。
|
|
62
66
|
|
|
63
67
|
#### 4.3 エラーケース・境界値の作成
|
|
68
|
+
|
|
64
69
|
- 「エラーケースや境界値(エッジケース)はありますか?」
|
|
65
70
|
- 必要に応じて **Scenario Outline**(パラメータ化)の使用を提案し、Examplesテーブルを作成する。
|
|
66
71
|
|
|
67
72
|
#### 4.4 タグ付け
|
|
73
|
+
|
|
68
74
|
- シナリオID(`@SC-XXX`)を採番する。
|
|
69
75
|
- 適切なタグ(`@smoke`, `@happy-path`, `@error-handling` など)を付与する。
|
|
70
76
|
|
|
@@ -84,6 +90,7 @@ description: ユーザーストーリーから具体的なGherkinシナリオを
|
|
|
84
90
|
- 以下の完了条件を満たしているか、コマンドとチェックリストで確認してください:
|
|
85
91
|
|
|
86
92
|
1. **構造確認**:
|
|
93
|
+
|
|
87
94
|
```bash
|
|
88
95
|
# シナリオ一覧テーブルの確認
|
|
89
96
|
grep "| シナリオID | 機能 |" docs/project/behavior/01-scenarios.md && echo "OK" || echo "MISSING: Table Header"
|
|
@@ -103,11 +110,14 @@ description: ユーザーストーリーから具体的なGherkinシナリオを
|
|
|
103
110
|
|
|
104
111
|
- ユーザーに確認:「作成したシナリオドキュメントを Git に追加しますか?」
|
|
105
112
|
- 「はい」の場合、以下を実行:
|
|
113
|
+
|
|
106
114
|
```bash
|
|
107
115
|
git add docs/project/behavior/
|
|
108
116
|
git status
|
|
109
117
|
```
|
|
118
|
+
|
|
110
119
|
- 推奨コミットメッセージ:
|
|
120
|
+
|
|
111
121
|
```
|
|
112
122
|
docs: 振る舞い仕様(シナリオ)の作成
|
|
113
123
|
|
|
@@ -21,6 +21,7 @@ description: Event Storming形式でドメインモデルを定義し、ユビ
|
|
|
21
21
|
### 1. ディレクトリと前提条件の確認
|
|
22
22
|
|
|
23
23
|
- `docs/project/domain/` ディレクトリの存在を確認:
|
|
24
|
+
|
|
24
25
|
```bash
|
|
25
26
|
ls -la docs/project/domain/ 2>/dev/null || echo "ディレクトリが存在しません"
|
|
26
27
|
```
|
|
@@ -34,6 +35,7 @@ description: Event Storming形式でドメインモデルを定義し、ユビ
|
|
|
34
35
|
### 2. テンプレートの準備
|
|
35
36
|
|
|
36
37
|
- テンプレートをコピーして作業用ファイルを作成する:
|
|
38
|
+
|
|
37
39
|
```bash
|
|
38
40
|
cp ".windsurf/templates/project/03-domain/01-domain-model.md" "docs/project/domain/01-domain-model.md"
|
|
39
41
|
cp ".windsurf/templates/project/03-domain/02-ubiquitous-language.md" "docs/project/domain/02-ubiquitous-language.md"
|
|
@@ -51,15 +53,18 @@ description: Event Storming形式でドメインモデルを定義し、ユビ
|
|
|
51
53
|
**同時に、新しい用語が登場するたびに `02-ubiquitous-language.md` にも追記する。**
|
|
52
54
|
|
|
53
55
|
#### 4.1 概要とアクター
|
|
56
|
+
|
|
54
57
|
- Contextの責務と主要な責任
|
|
55
58
|
- 登場するアクター(Actors)とその役割
|
|
56
59
|
|
|
57
60
|
#### 4.2 コマンドとイベント (Event Storming)
|
|
61
|
+
|
|
58
62
|
- アクターが実行するアクション(**Commands**、命令形)
|
|
59
63
|
- その結果発生するビジネス上の出来事(**Domain Events**、過去形)
|
|
60
64
|
- 自動化ルール(**Policies**、"Whenever ..., then ...")
|
|
61
65
|
|
|
62
66
|
#### 4.3 集約とモデル
|
|
67
|
+
|
|
63
68
|
- 一貫性を保つエンティティの塊(**Aggregates**)
|
|
64
69
|
- 画面表示用の参照モデル(**Read Models**)
|
|
65
70
|
- 連携する外部システム(**External Systems**)
|
|
@@ -87,6 +92,7 @@ description: Event Storming形式でドメインモデルを定義し、ユビ
|
|
|
87
92
|
- 以下の完了条件を満たしているか、コマンドとチェックリストで確認してください:
|
|
88
93
|
|
|
89
94
|
1. **構造確認**:
|
|
95
|
+
|
|
90
96
|
```bash
|
|
91
97
|
# Bounded Context定義の確認
|
|
92
98
|
grep "Bounded Context:" docs/project/domain/01-domain-model.md && echo "OK" || echo "MISSING: Bounded Context definition"
|
|
@@ -105,11 +111,14 @@ description: Event Storming形式でドメインモデルを定義し、ユビ
|
|
|
105
111
|
|
|
106
112
|
- ユーザーに確認:「作成したドメインモデルドキュメントを Git に追加しますか?」
|
|
107
113
|
- 「はい」の場合、以下を実行:
|
|
114
|
+
|
|
108
115
|
```bash
|
|
109
116
|
git add docs/project/domain/
|
|
110
117
|
git status
|
|
111
118
|
```
|
|
119
|
+
|
|
112
120
|
- 推奨コミットメッセージ:
|
|
121
|
+
|
|
113
122
|
```
|
|
114
123
|
docs: ドメインモデルとユビキタス言語の定義
|
|
115
124
|
|
|
@@ -20,6 +20,7 @@ description: ドメインモデルをMermaid図で視覚化し、Context MapやA
|
|
|
20
20
|
### 1. ドキュメントの確認
|
|
21
21
|
|
|
22
22
|
- `docs/project/domain/01-domain-model.md` を読み込み、内容を確認する。
|
|
23
|
+
|
|
23
24
|
```bash
|
|
24
25
|
ls -la docs/project/domain/01-domain-model.md 2>/dev/null || echo "ファイルが存在しません"
|
|
25
26
|
```
|
|
@@ -70,6 +71,7 @@ description: ドメインモデルをMermaid図で視覚化し、Context MapやA
|
|
|
70
71
|
- 以下の完了条件を満たしているか、コマンドとチェックリストで確認してください:
|
|
71
72
|
|
|
72
73
|
1. **構造確認**:
|
|
74
|
+
|
|
73
75
|
```bash
|
|
74
76
|
# Mermaidブロックの存在確認
|
|
75
77
|
grep "\`\`\`mermaid" docs/project/domain/01-domain-model.md && echo "OK" || echo "MISSING: Mermaid diagram"
|
|
@@ -86,11 +88,14 @@ description: ドメインモデルをMermaid図で視覚化し、Context MapやA
|
|
|
86
88
|
|
|
87
89
|
- ユーザーに確認:「更新したドメインモデルドキュメントを Git に追加しますか?」
|
|
88
90
|
- 「はい」の場合、以下を実行:
|
|
91
|
+
|
|
89
92
|
```bash
|
|
90
93
|
git add docs/project/domain/01-domain-model.md
|
|
91
94
|
git status
|
|
92
95
|
```
|
|
96
|
+
|
|
93
97
|
- 推奨コミットメッセージ:
|
|
98
|
+
|
|
94
99
|
```
|
|
95
100
|
docs: ドメインモデル図(Context Map)の追加
|
|
96
101
|
|