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,120 @@
1
+ ---
2
+ description: 技術スタックとアーキテクチャ設計を基に、インフラ構成図、環境構成、運用方針を定義するワークフロー
3
+ ---
4
+
5
+ # DefineInfrastructure (a-013)
6
+
7
+ ## 目的
8
+
9
+ - 技術スタックとアーキテクチャ設計を基に、インフラ構成を定義する。
10
+ - クラウドリソース、ネットワーク、セキュリティ、監視を含む全体構成を可視化する。
11
+ - 環境ごとの構成(開発、ステージング、本番)を明確化する。
12
+ - 高可用性、冗長化、スケーラビリティ、セキュリティの方針を定義する。
13
+
14
+ ## 前提
15
+
16
+ - `docs/project/design/01-tech-stack.md` が作成されていること(デプロイ環境、インフラ技術選定済み)。
17
+ - `docs/project/design/06-architecture.md` が作成されていること(推奨)。
18
+ - `docs/project/design/` ディレクトリが存在すること。
19
+
20
+ ## 手順
21
+
22
+ ### 1. ドキュメントと前提条件の確認
23
+
24
+ - 必要なドキュメントを読み込む:
25
+ - `docs/project/design/01-tech-stack.md`
26
+ - `docs/project/design/06-architecture.md`
27
+
28
+ - ドキュメントが不足している場合、対応するワークフローの実行を促す。
29
+
30
+ ### 2. テンプレートの準備
31
+
32
+ - テンプレートをコピーして作業用ファイルを作成する:
33
+ ```bash
34
+ cp ".windsurf/templates/project/04-design/07-infrastructure.md" "docs/project/design/07-infrastructure.md"
35
+ ```
36
+
37
+ ### 3. インフラ構成の提案
38
+
39
+ - 技術スタックとアーキテクチャ図から、必要なインフラリソース(VPC, ALB, EC2/ECS, RDS等)を抽出する。
40
+ - **インフラ構成案の提示**:
41
+ - 「以下の構成を提案します:」
42
+ - 「[Cloud Provider] 上に [Pattern] (例: VPC + Public/Private Subnet) を構築」
43
+ - 「DBは [Managed Service] (例: RDS) を使用」
44
+
45
+ ### 4. 詳細定義(インタビュー)
46
+
47
+ ユーザーからのフィードバックを受け、詳細を定義する。
48
+
49
+ #### 4.1 ネットワークとセキュリティ
50
+ - VPC構成、サブネット分割(Public/Private/Data)
51
+ - セキュリティグループ方針、WAF、HTTPS化
52
+
53
+ #### 4.2 コンピューティングとスケーリング
54
+ - インスタンスタイプ/サイズ
55
+ - Auto Scalingポリシー(CPU負荷等)
56
+
57
+ #### 4.3 データベースとストレージ
58
+ - Multi-AZ構成、リードレプリカの有無
59
+ - バックアップ方針(頻度、保持期間)
60
+
61
+ #### 4.4 環境構成
62
+ - 開発/ステージング/本番環境の差異(リソースサイズ、冗長化)
63
+
64
+ ### 5. ドキュメント作成
65
+
66
+ - `docs/project/design/07-infrastructure.md` に決定事項を記入する。
67
+ - **必須項目**:
68
+ - インフラ構成図 (Mermaid)
69
+ - 環境構成表
70
+ - 運用方針(バックアップ、監視、セキュリティ)
71
+
72
+ ### 6. 完了条件と構造の確認
73
+
74
+ - 以下の完了条件を満たしているか、コマンドとチェックリストで確認してください:
75
+
76
+ 1. **構造確認**:
77
+ ```bash
78
+ # インフラ構成図の確認
79
+ grep "\`\`\`mermaid" docs/project/design/07-infrastructure.md && echo "OK" || echo "MISSING: Infra Diagram"
80
+ # 環境構成の確認
81
+ grep "## 環境構成" docs/project/design/07-infrastructure.md && echo "OK" || echo "MISSING: Environments"
82
+ # 運用方針の確認
83
+ grep "## 主要な運用方針" docs/project/design/07-infrastructure.md && echo "OK" || echo "MISSING: Operations"
84
+ ```
85
+
86
+ 2. **チェックリスト**:
87
+ - [ ] `docs/project/design/07-infrastructure.md` が作成されている
88
+ - [ ] 本番環境の構成(冗長化など)が明確になっている
89
+ - [ ] バックアップや監視の方針が記録されている
90
+
91
+ ### 7. Git への追加(オプション)
92
+
93
+ - ユーザーに確認:「作成したインフラ設計ドキュメントを Git に追加しますか?」
94
+ - 「はい」の場合、以下を実行:
95
+ ```bash
96
+ git add docs/project/design/07-infrastructure.md
97
+ git status
98
+ ```
99
+ - 推奨コミットメッセージ:
100
+ ```
101
+ docs: インフラ設計の定義
102
+
103
+ - インフラ構成図(Mermaid)の作成
104
+ - 環境構成と運用方針の記録
105
+ ```
106
+
107
+ ## 完了条件
108
+
109
+ - `docs/project/design/07-infrastructure.md` が作成されている。
110
+ - インフラの物理構成とネットワーク構成が可視化されている。
111
+ - 環境ごとの差異が明確になっている。
112
+ - 運用上の重要事項(バックアップ、セキュリティ)が定義されている。
113
+ - ユーザーが内容を承認している。
114
+
115
+ ## エスカレーション
116
+
117
+ - コストが高すぎる場合:
118
+ - 「冗長化構成によりコストが増加します。ステージング環境はSingle-AZにするなど、コスト最適化を検討しましょう。」と提案する。
119
+ - セキュリティリスクがある場合:
120
+ - 「DBがパブリックサブネットに配置されています。プライベートサブネットへの移動を強く推奨します。」と警告する。
@@ -0,0 +1,122 @@
1
+ ---
2
+ description: 設計ドキュメント間の一貫性をチェックし、要件・ドメインモデルとの整合性を検証するレビューワークフロー
3
+ auto_execution_mode: 1
4
+ ---
5
+
6
+ # ReviewDesign (a-014)
7
+
8
+ ## 目的
9
+
10
+ - 設計フェーズで作成されたすべてのドキュメント間の一貫性を体系的にチェックする。
11
+ - 設計ドキュメント間の不整合、漏れ、矛盾を検出し、修正提案を提供する。
12
+ - 技術選定、アーキテクチャ、データモデル、API仕様の整合性を確認する。
13
+ - レビュー結果レポートを作成し、修正すべき項目を優先度付きでリストアップする。
14
+
15
+ ## 前提
16
+
17
+ - 要件・ドメインレビューが完了していること(`ReviewRequirementsDomain` (a-006) 実施済み)。
18
+ - 以下の設計ドキュメントが作成されていること:
19
+ - `docs/project/design/01-tech-stack.md`
20
+ - `docs/project/design/02-repository-structure.md`
21
+ - `docs/project/design/03-screen-design.md`
22
+ - `docs/project/design/04-data-model.md`
23
+ - `docs/project/design/05-api-spec.md`
24
+ - `docs/project/design/06-architecture.md`
25
+ - `docs/project/design/07-infrastructure.md`
26
+
27
+ ## 手順
28
+
29
+ ### 1. ドキュメント存在確認
30
+
31
+ - 必要なすべての設計ドキュメントが存在するか確認する:
32
+ ```bash
33
+ ls -l docs/project/design/*.md
34
+ ```
35
+ - 不足しているドキュメントがある場合、対応するワークフローの実行を促す。
36
+
37
+ ### 2. 一貫性チェックの実行
38
+
39
+ 以下の項目について、自動検索(grep等)と手動確認を組み合わせて検証する。
40
+
41
+ #### 2.1 テックスタック ↔ アーキテクチャ
42
+ - **整合性**: 選定された技術(01-tech-stack.md)がアーキテクチャ図(06-architecture.md)のコンポーネントと一致しているか。
43
+ - **ADR**: 重要な技術選定理由がADRとして記録されているか。
44
+
45
+ #### 2.2 データモデル ↔ ドメインモデル
46
+ - **カバレッジ**: ドメインモデルのAggregate(01-domain-model.md)がデータモデル(04-data-model.md)のエンティティとして定義されているか。
47
+ - **用語統一**: テーブル名やカラム名がユビキタス言語と一致しているか。
48
+
49
+ #### 2.3 API仕様 ↔ データモデル
50
+ - **リソース**: APIリソース(05-api-spec.md)がデータモデルのエンティティに基づいているか。
51
+ - **フィールド**: APIのレスポンスフィールドがデータモデルに存在するか。
52
+
53
+ #### 2.4 画面設計 ↔ API仕様
54
+ - **カバレッジ**: 画面(03-screen-design.md)で必要なデータ取得・操作がAPIエンドポイントとして定義されているか。
55
+ - **状態**: エラー状態やロード状態に対応するレスポンス仕様があるか。
56
+
57
+ #### 2.5 インフラ ↔ アーキテクチャ
58
+ - **構成**: インフラ構成(07-infrastructure.md)がアーキテクチャ図のコンポーネントを網羅しているか。
59
+ - **非機能要件**: 可用性やセキュリティ要件がインフラ設計に反映されているか。
60
+
61
+ ### 3. レビュー結果レポートの作成
62
+
63
+ - 検出された問題(Error/Warning)をまとめ、`docs/project/DESIGN-REVIEW-REPORT.md` を作成する。
64
+
65
+ **レポートフォーマット例**:
66
+ ```markdown
67
+ # 設計ドキュメント一貫性レビュー結果
68
+ **実施日**: YYYY-MM-DD
69
+
70
+ ## サマリー
71
+ - ✅ OK: X項目
72
+ - ⚠️ Warning: X項目
73
+ - ❌ Error: X項目
74
+
75
+ ## 詳細
76
+
77
+ ### 1. テックスタック ↔ アーキテクチャ
78
+ - ✅ OK: 選定技術はアーキテクチャパターンに適合しています。
79
+
80
+ ### 2. データモデル ↔ ドメインモデル
81
+ - ❌ **Error**: Aggregate「Order」に対応するテーブル定義が見つかりません。
82
+
83
+ ### 3. API仕様 ↔ データモデル
84
+ - ⚠️ **Warning**: APIレスポンスのフィールド `user_rank` がデータモデルにありません。
85
+
86
+ ### 4. 画面設計 ↔ API仕様
87
+ - ❌ **Error**: 「注文履歴画面」に必要な `GET /api/orders/history` が定義されていません。
88
+
89
+ ### 5. インフラ ↔ アーキテクチャ
90
+ - ✅ OK: 冗長化構成はアーキテクチャの可用性要件を満たしています。
91
+
92
+ ## 推奨アクション
93
+ 1. `DefineDataModel` (a-010) で `orders` テーブルを定義する。
94
+ 2. `DefineAPISpec` (a-011) で `GET /api/orders/history` を追加する。
95
+ ```
96
+
97
+ ### 4. 結果の報告と修正提案
98
+
99
+ - ユーザーにレポートの内容を要約して伝える。
100
+ - 重大なエラー(❌)がある場合は、優先的に修正することを提案する。
101
+ - 「修正作業を開始しますか?それともレポートをGitに保存して終了しますか?」
102
+
103
+ ### 5. Git への追加(オプション)
104
+
105
+ - ユーザーが希望する場合、レポートをコミットする。
106
+ ```bash
107
+ git add docs/project/DESIGN-REVIEW-REPORT.md
108
+ git commit -m "docs: 設計整合性レビューレポートの作成"
109
+ ```
110
+
111
+ ## 完了条件
112
+
113
+ - `docs/project/DESIGN-REVIEW-REPORT-YYYYMMDDHHMMSS.md` が作成されている。
114
+ - 全設計ドキュメント間の整合性がチェックされ、結果(OK/Warning/Error)が記録されている。
115
+ - 具体的な修正アクションが提案されている。
116
+
117
+ ## エスカレーション
118
+
119
+ - 致命的な不整合がある場合:
120
+ - 「データモデルとAPI仕様の間に大きな乖離があります。実装手戻りを防ぐため、設計の見直しを強く推奨します。」
121
+ - ドメインモデルとの乖離がある場合:
122
+ - 「設計がドメインモデルの意図を反映していません。ビジネスロジックの破綻につながる恐れがあります。」
@@ -0,0 +1,71 @@
1
+ ---
2
+ description: 新規タスク用のディレクトリを作成し、タスクIDを採番するワークフロー
3
+ auto_execution_mode: 1
4
+ ---
5
+
6
+ # CreateTaskDirectory (b-001)
7
+
8
+ ## 目的
9
+
10
+ - 新しいタスクのための専用ディレクトリを作成する。
11
+ - タスクIDの採番ルール(`taskXXXXXX`)を統一し、管理しやすくする。
12
+ - **注意**: このワークフローはディレクトリ作成のみを行います。タスク定義書などのドキュメント作成は後続のワークフロー(`b-001` 等)で実施します。
13
+
14
+ ## 前提
15
+
16
+ - `docs/tasks/` ディレクトリが存在すること。
17
+
18
+ ## 手順
19
+
20
+ ### 1. 既存タスクの確認とID採番
21
+
22
+ - 既存のタスクディレクトリを確認し、次のタスクIDを決定する。
23
+ ```bash
24
+ ls -d docs/tasks/task*
25
+ ```
26
+ - **採番ルール**:
27
+ - 形式: `task{6桁連番}-{スラッグ}`
28
+ - 例: `task000001-email-auth`
29
+ - 既存がない場合は `task000001` から開始。
30
+ - 既存がある場合は最大番号 + 1。
31
+
32
+ ### 2. タスク名の決定
33
+
34
+ - ユーザーにタスクのキーワード(スラッグ)を質問する。
35
+ - 「タスクの内容を3-5語の英数字とハイフンで表現してください(例: `user-profile-edit`)。」
36
+
37
+ ### 3. ディレクトリの作成
38
+
39
+ - 決定したIDとスラッグを使用してディレクトリを作成する。
40
+ ```bash
41
+ mkdir -p docs/tasks/task{ID}-{SLUG}
42
+ ```
43
+ 例:
44
+ ```bash
45
+ mkdir -p docs/tasks/task000001-email-auth
46
+ ```
47
+
48
+ ### 4. 作成確認
49
+
50
+ - ディレクトリが正しく作成されたか確認する。
51
+ ```bash
52
+ ls -ld docs/tasks/task{ID}-{SLUG} && echo "OK" || echo "FAILED"
53
+ ```
54
+
55
+ ### 5. 次のステップの案内
56
+
57
+ - ユーザーに次のアクションを提案する:
58
+ - 「ディレクトリ `docs/tasks/task{ID}-{SLUG}` を作成しました。」
59
+ - 「続いてタスク定義書を作成しますか? (`CreateTaskDefinition` / b-001)」
60
+
61
+ ## 完了条件
62
+
63
+ - `docs/tasks/task{ID}-{SLUG}/` ディレクトリが作成されている。
64
+ - ユーザーにディレクトリパスが報告されている。
65
+
66
+ ## エスカレーション
67
+
68
+ - `docs/tasks/` が見つからない場合:
69
+ - `mkdir -p docs/tasks` を実行するか、`SetupDocStructure` (a-001) の確認を促す。
70
+ - 命名規則違反:
71
+ - タスク名にスペースや特殊文字が含まれる場合、修正を求める。
@@ -0,0 +1,165 @@
1
+ ---
2
+ description: ユーザーストーリーとインタビューからタスク定義ドキュメントを作成し、目的・変更内容・受け入れ基準を明確化するワークフロー
3
+ ---
4
+
5
+ # CreateTaskDefinition (b-002)
6
+
7
+ ## 目的
8
+
9
+ - 新しいタスクの背景・目的・スコープを明確化する。
10
+ - ユーザーストーリーと変更内容を整理し、後続のリサーチ・実装計画に渡す。
11
+ - 測定可能な受け入れ基準を定義し、完了条件を共有する。
12
+
13
+ ## 前提
14
+
15
+ - `docs/tasks/task{ID}-{SLUG}/` が `CreateTaskDirectory (b-001)` で作成済みであること。
16
+ - テンプレート: `.windsurf/templates/tasks/task-template/a-definition.md`
17
+ - タスクの概要が関係者と共有済みであること。
18
+
19
+ ## 手順
20
+
21
+ ### 1. タスクディレクトリとテンプレートの確認
22
+
23
+ 1. タスク候補を一覧し、作業対象を特定する。
24
+ ```bash
25
+ ls -d docs/tasks/task*
26
+ ```
27
+ 2. テンプレートが未配置の場合はコピーする。
28
+ ```bash
29
+ cp ".windsurf/templates/tasks/task-template/a-definition.md" \
30
+ "docs/tasks/task{ID}-{SLUG}/a-definition.md"
31
+ ```
32
+
33
+ ### 2. 目的・背景のヒアリング
34
+
35
+ - 以下をユーザーまたは依頼者に確認し、メモを取る。
36
+ - 「現状の課題・不具合は何か?」
37
+ - 「誰が困っているのか?(ユーザー/開発/運用など)」
38
+ - 「このタスクが完了すると、どのような価値・KPI 改善があるか?」
39
+ - 数値・頻度・Before/After を含め、具体的に記載する。
40
+
41
+ ### 3. ユーザーストーリーの整理
42
+
43
+ - ペルソナごとにストーリーを作成。
44
+ - 形式: 「[役割]として、[目的]がしたい。なぜなら[理由]だから」
45
+ - 参考質問: 「このタスクで誰が何を達成したいですか?」「その理由は?」
46
+ - 優先度や関連するストーリーID(US-001 など)を付与すると後続管理が容易。
47
+
48
+ ### 4. 変更内容の洗い出し
49
+
50
+ - タスク定義を実現するために必要な変更箇所をカテゴリ別に列挙。
51
+ - 画面/UI(例: 新規ページ、既存フォームの項目追加)
52
+ - API/サービス(例: 新規エンドポイント、仕様変更)
53
+ - データモデル/DB(例: テーブル追加、カラム変更、インデックス)
54
+ - その他(設定、翻訳、ドキュメント更新など)
55
+ - 可能な限りファイル名・エンドポイント・テーブル名など具体名を記載。
56
+
57
+ ### 5. 受け入れ基準の策定
58
+
59
+ - 「完了」を判定できる観点を整理。
60
+ - 正常系(期待する操作が成功する)
61
+ - 異常系・エラー表示(入力エラー、権限不足など)
62
+ - 性能・セキュリティ(応答時間、認可/認証、暗号化など)
63
+ - テスト要件(ユニット/統合/E2E、ログ出力、監視アラート)
64
+ - 例: 「メール認証リンクは1回のみ有効」「API レスポンスは200ms以内」「CSRF トークン必須」
65
+
66
+ ### 6. ドキュメントへの反映
67
+
68
+ 1. `docs/tasks/task{ID}-{SLUG}/a-definition.md` を編集し、以下を順に埋める。
69
+ - 目的・背景
70
+ - ユーザーストーリー一覧
71
+ - 変更内容一覧
72
+ - 受け入れ基準
73
+ - メモ/補足情報(関連Issue・制約等)
74
+ 2. HTMLコメントは削除せず残す(テンプレートのガイドとして利用)。
75
+
76
+ ### 7. 構造チェック
77
+
78
+ ```bash
79
+ # セクション存在確認
80
+ grep "## 目的" docs/tasks/task{ID}-{SLUG}/a-definition.md \
81
+ && grep "## ユーザーストーリー" docs/tasks/task{ID}-{SLUG}/a-definition.md \
82
+ && grep "## 変更内容" docs/tasks/task{ID}-{SLUG}/a-definition.md \
83
+ && grep "## 受け入れ基準" docs/tasks/task{ID}-{SLUG}/a-definition.md \
84
+ && echo "OK" || echo "MISSING SECTION"
85
+ ```
86
+
87
+ チェックリスト:
88
+ - [ ] 目的に数値/Before-Afterが含まれている
89
+ - [ ] すべての重要なユーザーストーリーが列挙されている
90
+ - [ ] 変更箇所がファイル名やエンドポイント単位で特定されている
91
+ - [ ] 受け入れ基準がテスト可能な表現になっている
92
+
93
+ ### 8. Git への追加(任意)
94
+
95
+ ```bash
96
+ git add docs/tasks/task{ID}-{SLUG}/a-definition.md
97
+ git commit -m "docs(task): タスク定義書の作成 task{ID}"
98
+ ```
99
+ - テンプレートに従い、以下を記載:
100
+ - **目的**(解決する問題、提供する価値)
101
+ - **ユーザーストーリー一覧**(ストーリーID、ストーリー)
102
+ - **変更内容一覧**(カテゴリ、変更内容)
103
+ - **受け入れ基準**(正常系、異常系、エッジケース、テスト、パフォーマンス、セキュリティ)
104
+ - **メモ**(補足情報)
105
+
106
+ - **HTMLコメントは削除せず残す**
107
+
108
+ ### 8. レビューと確認
109
+
110
+ - 作成したドキュメントをユーザーに提示:
111
+ - 「タスク定義ドキュメントが完成しました。内容を確認してください。」
112
+ - 「目的は明確ですか?」
113
+ - 「変更内容は網羅されていますか?」
114
+ - 「受け入れ基準は具体的で測定可能ですか?」
115
+
116
+ ### 9. 完成と次のステップ
117
+
118
+ - タスクディレクトリ内の `a-definition.md` が保存されたことを確認
119
+ - 例: `docs/tasks/task000001-email-verification/a-definition.md`
120
+
121
+ - 次のステップを提案:
122
+ - 「タスク定義が完了しました。次はリサーチドキュメントを作成しますか?(`/b-002-CreateTaskResearch`)」
123
+
124
+ ## 完了条件
125
+
126
+ - タスクディレクトリ内に `a-definition.md` が作成されている
127
+ - 例: `docs/tasks/task000001-{スラッグ}/a-definition.md`
128
+ - 以下のセクションがすべて記載されている:
129
+ - 目的(解決する問題、提供する価値)
130
+ - ユーザーストーリー一覧(最低1個以上)
131
+ - 変更内容一覧(該当するカテゴリがすべて含まれている)
132
+ - 受け入れ基準(正常系、異常系、テスト要件)
133
+ - 目的が具体的で測定可能である
134
+ - ユーザーストーリーが「[役割]として、[目的]がしたい、なぜなら[理由]」形式で記載されている
135
+ - 変更内容が具体的なファイル名やコンポーネント名を含んでいる
136
+ - 受け入れ基準が具体的で測定可能である
137
+ - ユーザーが内容を確認し、承認している
138
+
139
+ ## エスカレーション
140
+
141
+ - タスクの目的が曖昧な場合:
142
+ - 「タスクの目的が曖昧です。具体的な問題と解決後の状態を明確にしてください。」
143
+ - 追加の質問で深掘り
144
+
145
+ - 変更内容が不明確な場合:
146
+ - 「変更内容が抽象的すぎます。具体的なファイル名、コンポーネント名、カラム名を含めてください。」
147
+
148
+ - 受け入れ基準が曖昧な場合:
149
+ - 「受け入れ基準が曖昧です。テスト可能な基準を定義してください。」
150
+ - 例:「使いやすい」→「登録完了まで3クリック以内」
151
+
152
+ - ユーザーストーリーが技術的すぎる場合:
153
+ - 「ユーザーストーリーが技術的すぎます。ユーザー視点の価値を記載してください。」
154
+ - 例:「React Hook Form を使用したい」→「入力エラーを即座に確認したい」
155
+
156
+ - タスクのスコープが大きすぎる場合:
157
+ - 「このタスクは範囲が広すぎます。複数のタスクに分割することを推奨します。」
158
+ - 1タスクは1-5日で完了できる粒度が理想
159
+
160
+ - 受け入れ基準にセキュリティ要件が欠けている場合:
161
+ - 「セキュリティに関する受け入れ基準が不足しています。以下を検討してください:」
162
+ - 入力バリデーション
163
+ - XSS、CSRF、SQL Injection 対策
164
+ - 認証・認可
165
+ - データの暗号化