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,180 @@
1
+ # インフラ設計
2
+
3
+ <!--
4
+ 何を書くか: インフラ構成図、環境構成、主要な運用方針
5
+
6
+ 目的:
7
+ - インフラ構成の全体像を可視化
8
+ - 環境ごとの違いを明確化
9
+ - 基本的な運用方針の記録
10
+
11
+ 重要性:
12
+ - 高レベルなインフラ構成の全体像を把握
13
+ - 詳細な実装(スペック、ネットワーク設定、監視設定)は Infrastructure as Code で管理
14
+
15
+ 記載のポイント:
16
+ - インフラ構成図で視覚的に表現(Multi-AZ構成など)
17
+ - 環境ごとの違い(開発、ステージング、本番)
18
+ - バックアップ・監視の基本方針
19
+
20
+ 更新頻度:
21
+ - プロジェクト初期にインフラ設計を作成
22
+ - インフラ構成変更時に更新
23
+ -->
24
+
25
+ ---
26
+
27
+ ## インフラ構成図
28
+
29
+ <!--
30
+ Mermaid を使用してインフラ全体の構成を可視化
31
+
32
+ 記載のベストプラクティス:
33
+ 1. 物理的な構成を表現(サーバー、ネットワーク、ストレージ)
34
+ 2. 冗長化構成を明記(Multi-AZ、フェイルオーバー)
35
+ 3. ネットワークセグメントを分離(パブリック、プライベート、DMZ)
36
+ 4. セキュリティグループ、ファイアウォールルールを図示
37
+ 5. 外部サービスとの接続も記載
38
+
39
+ よくあるコンポーネント:
40
+ - インターネット: 外部ネットワーク
41
+ - CDN: CloudFront, Cloudflare, Fastly
42
+ - DNS: Route 53, Cloudflare DNS
43
+ - Load Balancer: ALB, NLB, ELB
44
+ - アプリケーションサーバー: EC2, ECS, Lambda
45
+ - データベース: RDS, Aurora, DynamoDB
46
+ - キャッシュ: ElastiCache (Redis, Memcached)
47
+ - ストレージ: S3, EBS, EFS
48
+ - VPN: VPC Peering, VPN Gateway
49
+ - 監視: CloudWatch, Datadog, New Relic
50
+
51
+ Mermaid の記法:
52
+ - subgraph でネットワークセグメントをグループ化
53
+ - VPC, Subnet, Availability Zone を表現
54
+ -->
55
+
56
+ ```mermaid
57
+ graph TB
58
+ Internet[インターネット]
59
+
60
+ subgraph "AWS Cloud"
61
+ Route53[Route 53<br/>DNS]
62
+ CDN[CloudFront<br/>CDN]
63
+
64
+ subgraph "VPC"
65
+ subgraph "Availability Zone A"
66
+ subgraph "Public Subnet A"
67
+ NAT_A[NAT Gateway A]
68
+ end
69
+ subgraph "Private Subnet A"
70
+ APP1[App Server 1<br/>EC2]
71
+ Cache_A[Redis<br/>ElastiCache]
72
+ end
73
+ subgraph "Data Subnet A"
74
+ DB_Primary[PostgreSQL<br/>RDS Primary]
75
+ end
76
+ end
77
+
78
+ subgraph "Availability Zone B"
79
+ subgraph "Public Subnet B"
80
+ NAT_B[NAT Gateway B]
81
+ end
82
+ subgraph "Private Subnet B"
83
+ APP2[App Server 2<br/>EC2]
84
+ Cache_B[Redis<br/>ElastiCache]
85
+ end
86
+ subgraph "Data Subnet B"
87
+ DB_Replica[PostgreSQL<br/>RDS Replica]
88
+ end
89
+ end
90
+
91
+ ALB[Application<br/>Load Balancer]
92
+ end
93
+
94
+ S3[S3<br/>Object Storage]
95
+ CloudWatch[CloudWatch<br/>Monitoring & Logs]
96
+ end
97
+
98
+ Internet --> Route53
99
+ Route53 --> CDN
100
+ CDN --> ALB
101
+ ALB --> APP1
102
+ ALB --> APP2
103
+
104
+ APP1 --> DB_Primary
105
+ APP2 --> DB_Primary
106
+ APP1 --> DB_Replica
107
+ APP2 --> DB_Replica
108
+
109
+ APP1 --> Cache_A
110
+ APP2 --> Cache_B
111
+
112
+ APP1 --> S3
113
+ APP2 --> S3
114
+
115
+ APP1 --> NAT_A
116
+ APP2 --> NAT_B
117
+ NAT_A --> Internet
118
+ NAT_B --> Internet
119
+
120
+ APP1 -.logs.-> CloudWatch
121
+ APP2 -.logs.-> CloudWatch
122
+ DB_Primary -.metrics.-> CloudWatch
123
+ DB_Replica -.metrics.-> CloudWatch
124
+ ```
125
+
126
+ **補足**:
127
+ <!-- 例:
128
+ - Multi-AZ 構成で可用性を確保(AZ-A と AZ-B で冗長化)
129
+ - Public Subnet: インターネットゲートウェイへの経路あり(NAT Gateway)
130
+ - Private Subnet: アプリケーションサーバー(外部から直接アクセス不可)
131
+ - Data Subnet: データベース(Private Subnet からのみアクセス可能)
132
+ - RDS は Primary と Read Replica で読み取り負荷を分散
133
+ - Redis は各 AZ に配置しレプリケーション構成
134
+ - CloudWatch で全リソースの監視とログ集約
135
+ -->
136
+
137
+ ---
138
+
139
+ ## 環境構成
140
+
141
+ <!--
142
+ 開発、ステージング、本番環境の違いを明記
143
+
144
+ 環境ごとの特徴:
145
+ - 開発環境: ローカル開発、最小構成
146
+ - ステージング環境: 本番に近い構成、テスト用
147
+ - 本番環境: 高可用性、冗長化構成
148
+
149
+ 詳細なスペック(インスタンスタイプ、ストレージ容量など)は
150
+ Infrastructure as Code(Terraform/CloudFormation)で管理します。
151
+ -->
152
+
153
+ | 環境 | ホスティング | データベース | 特徴 |
154
+ |------|-------------|-------------|------|
155
+ | **開発** | <!-- ローカル(Docker) --> | <!-- PostgreSQL (Docker) --> | <!-- 最小構成、コスト最小化 --> |
156
+ | **ステージング** | <!-- AWS EC2 --> | <!-- RDS PostgreSQL<br/>Single-AZ --> | <!-- 本番に近い構成だが小規模 --> |
157
+ | **本番** | <!-- AWS EC2<br/>Auto Scaling --> | <!-- RDS PostgreSQL<br/>Multi-AZ + Read Replica --> | <!-- Multi-AZ 冗長化、高可用性 --> |
158
+
159
+ ---
160
+
161
+ ## 主要な運用方針
162
+
163
+ <!--
164
+ バックアップ、監視、セキュリティの基本方針を簡潔に記載
165
+
166
+ 詳細な設定(監視閾値、ログ設定、ネットワーク設定など)は
167
+ Infrastructure as Code とランブックで管理します。
168
+
169
+ 記載すべき内容:
170
+ - バックアップ方針
171
+ - 監視方針
172
+ - セキュリティ基本方針
173
+ -->
174
+
175
+ | 項目 | 内容 |
176
+ |------|------|
177
+ | **バックアップ** | <!-- 例: RDS 日次自動バックアップ(30日保持)、S3 バージョニング有効化 --> |
178
+ | **監視** | <!-- 例: CloudWatch でインフラ監視、Sentry でエラートラッキング --> |
179
+ | **セキュリティ** | <!-- 例: Private Subnet にアプリケーション配置、RDS/S3 暗号化、IAM 最小権限 --> |
180
+ | **災害復旧** | <!-- 例: RPO: 1時間、RTO: 4時間、Multi-AZ 構成で高可用性確保 --> |
@@ -0,0 +1,143 @@
1
+ # タスク定義ドキュメント
2
+
3
+ <!--
4
+ このドキュメントについて:
5
+ - 格納場所: docs/tasks/task000001-{スラッグ}/a-definition.md
6
+ - 作成方法: /b-001-CreateTaskDefinition ワークフローで作成
7
+ - 関連ドキュメント:
8
+ - b-research.md (リサーチドキュメント)
9
+ - c-implementation.md (実装タスクリスト)
10
+
11
+ このドキュメントの目的:
12
+ - タスクの目的と範囲を明確化
13
+ - 実装前に関係者間で認識を統一
14
+ - 受け入れ基準を事前定義
15
+ - 影響範囲の可視化
16
+
17
+ 更新タイミング:
18
+ - タスク着手前に作成
19
+ - 要件変更時に更新
20
+ - レビュー時に不明点を追記
21
+ -->
22
+
23
+ ---
24
+
25
+ ## 1. 目的
26
+
27
+ <!--
28
+ 何を書くか: このタスクで解決する問題と提供する価値
29
+
30
+ 記載のポイント:
31
+ - 「何のために」このタスクをやるのか
32
+ - ユーザーや開発者が得られる具体的なメリット
33
+ - 現状の問題点や不便さ
34
+ - このタスクで変わること
35
+
36
+ ベストプラクティス:
37
+ - 具体的な数値があれば含める(例: 「ローディング時間を3秒→1秒に短縮」)
38
+ - ステークホルダー視点で価値を記載(ユーザー、開発者、運用者など)
39
+ - Before/After が明確に想像できる表現を使う
40
+ -->
41
+
42
+ | 項目 | 内容 |
43
+ |------|------|
44
+ | 解決する問題 | <!-- 例: ユーザー登録時のメール認証フローがなく、不正なメールアドレスが登録される --> |
45
+ | 提供する価値 | <!-- 例: メール認証により、有効なメールアドレスのみ登録可能になり、通知配信の精度が向上する --> |
46
+
47
+ ---
48
+
49
+ ## 2. ユーザーストーリー一覧
50
+
51
+ <!--
52
+ 何を書くか: ユーザー視点でのタスクの要件
53
+
54
+ フォーマット: [役割]として、[目的]がしたい、なぜなら[理由]
55
+
56
+ 記載のポイント:
57
+ - 誰が(ペルソナ、役割)
58
+ - 何をしたいか(機能、操作)
59
+ - なぜそれが必要か(ビジネス価値、動機)
60
+
61
+ ベストプラクティス:
62
+ - ストーリーIDは一意に(例: US-001, US-002)
63
+ - 1つのストーリーは1つの価値に焦点を当てる
64
+ - 技術的な詳細ではなくユーザー価値を記載
65
+ - 複数の役割がある場合は分けて記載
66
+ -->
67
+
68
+ | ストーリーID | ストーリー |
69
+ |--------------|-----------|
70
+ | US-001 | <!-- 例: 新規ユーザーとして、登録時にメール認証を受けたい、なぜなら自分のメールアドレスが正しく登録されたことを確認したいから --> |
71
+ | US-002 | <!-- 例: 管理者として、認証済みユーザーのみに通知を送信したい、なぜなら配信エラーを減らしたいから --> |
72
+
73
+ ---
74
+
75
+ ## 3. 変更内容一覧
76
+
77
+ <!--
78
+ 何を書くか: このタスクで変更する具体的な要素
79
+
80
+ 記載のポイント:
81
+ - 新規追加なのか、既存の変更なのか
82
+ - 影響を受けるファイルやコンポーネント
83
+ - 削除する機能があれば明記
84
+
85
+ ベストプラクティス:
86
+ - 具体的なファイル名やコンポーネント名を含める
87
+ - 「追加」「変更」「削除」を明示
88
+ - 依存関係がある変更は順序を意識
89
+ -->
90
+
91
+ | カテゴリ | 変更内容 |
92
+ |----------|----------|
93
+ | 画面 | <!-- 例: RegisterForm.tsx にメールアドレス入力フィールド追加、EmailVerificationPage.tsx 新規作成 --> |
94
+ | データモデル | <!-- 例: User テーブルに email_verified (boolean), verification_token (string) フィールド追加 --> |
95
+ | API | <!-- 例: POST /api/auth/send-verification, POST /api/auth/verify-email エンドポイント追加 --> |
96
+ | その他 | <!-- 例: メール送信サービス (SendGrid) の API キー設定追加 --> |
97
+
98
+ ---
99
+
100
+ ## 4. 受け入れ基準
101
+
102
+ <!--
103
+ 何を書くか: タスク完了の判断基準
104
+
105
+ 記載のポイント:
106
+ - 機能が正しく動作すること
107
+ - エッジケースが処理されること
108
+ - テストが通ること
109
+ - ドキュメントが更新されていること
110
+
111
+ ベストプラクティス:
112
+ - テスト可能な基準を記載(あいまいな表現を避ける)
113
+ - 正常系だけでなく異常系も含める
114
+ - パフォーマンス要件があれば明記
115
+ - セキュリティ要件があれば明記
116
+ -->
117
+
118
+ - [ ] <!-- 例: ユーザー登録時に認証メールが送信される -->
119
+ - [ ] <!-- 例: メール内のリンクをクリックするとメールアドレスが認証される -->
120
+ - [ ] <!-- 例: 認証されていないユーザーは特定機能にアクセスできない -->
121
+ - [ ] <!-- 例: 無効なトークンでアクセスした場合、適切なエラーメッセージが表示される -->
122
+ - [ ] <!-- 例: ユニットテスト、統合テストが全て通る -->
123
+
124
+ ---
125
+
126
+ ## メモ
127
+
128
+ <!--
129
+ タスク定義に関する補足情報
130
+
131
+ 記載すべき内容:
132
+ - 技術的な制約や前提条件
133
+ - 関連する Issue や PR のリンク
134
+ - 参考資料(仕様書、デザインモックなど)
135
+ - 既知の問題や懸念事項
136
+ - 将来的な拡張予定
137
+
138
+ 例:
139
+ - 関連 Issue: #123
140
+ - 参考デザイン: https://figma.com/file/...
141
+ - 注意: メール送信は非同期処理で実装する
142
+ - 今後の拡張: SMS 認証も追加予定
143
+ -->
@@ -0,0 +1,185 @@
1
+ # リサーチドキュメント
2
+
3
+ <!--
4
+ このドキュメントについて:
5
+ - 格納場所: docs/tasks/task000001-{スラッグ}/b-research.md
6
+ - 作成方法: /b-002-CreateTaskResearch ワークフローで作成
7
+ - 前提条件: a-definition.md が作成済みであること
8
+ - 関連ドキュメント:
9
+ - a-definition.md (タスク定義ドキュメント)
10
+ - c-implementation.md (実装タスクリスト)
11
+
12
+ このドキュメントの目的:
13
+ - 実装前の技術調査結果を記録
14
+ - ベストプラクティスの収集と共有
15
+ - 既存コードの再利用可能性を確認
16
+ - 技術的なリスクや制約の洗い出し
17
+
18
+ 更新タイミング:
19
+ - タスク実装前の調査段階で作成
20
+ - 新しい知見が得られた時に追記
21
+ - レビュー時の指摘を反映
22
+ -->
23
+
24
+ ---
25
+
26
+ ## 1. ベストプラクティス
27
+
28
+ <!--
29
+ 何を書くか: 実装に関連する技術的なベストプラクティス
30
+
31
+ 記載のポイント:
32
+ - 公式ドキュメントの推奨事項
33
+ - 業界標準やコミュニティのコンセンサス
34
+ - パフォーマンス、セキュリティ、保守性の観点
35
+ - アンチパターンとその理由
36
+
37
+ 情報源:
38
+ - 公式ドキュメント(React, Next.js, etc.)
39
+ - GitHub の人気リポジトリ(類似機能の実装例)
40
+ - Stack Overflow、Qiita、Zenn などの技術記事
41
+ - チーム内の過去の実装事例
42
+
43
+ ベストプラクティス:
44
+ - 単なる個人の意見ではなく、根拠のある情報を記載
45
+ - リンクを必ず含める(情報の鮮度確認のため)
46
+ - 複数の選択肢がある場合は比較表を作成
47
+ - このプロジェクトに適用できない場合はその理由も記載
48
+ -->
49
+
50
+ | トピック | ベストプラクティス | 参考リンク |
51
+ |---------|-------------------|-----------|
52
+ | <!-- 例: フォームバリデーション --> | <!-- 例: React Hook Form + Zod を使用。パフォーマンスが良く、型安全性が高い --> | <!-- 例: [React Hook Form 公式](https://react-hook-form.com/) --> |
53
+ | <!-- 例: メール送信 --> | <!-- 例: SendGrid や Resend などのサービスを利用。自前 SMTP は避ける --> | <!-- 例: [Resend Best Practices](https://resend.com/docs) --> |
54
+
55
+ ---
56
+
57
+ ## 2. 既存コードの調査
58
+
59
+ <!--
60
+ 何を書くか: このプロジェクト内の既存実装を調査
61
+
62
+ 調査対象:
63
+ - 類似機能の実装(同じパターンで実装可能か)
64
+ - 共通ライブラリやユーティリティ(車輪の再発明を避ける)
65
+ - アーキテクチャパターン(プロジェクトの慣習に従う)
66
+ - データモデルや API 設計(既存のパターンを踏襲)
67
+
68
+ 記載のポイント:
69
+ - ファイルパスを正確に記載(Read や Grep で確認)
70
+ - コードスニペットを含める(重要な部分のみ)
71
+ - なぜそのコードを参考にすべきか理由を記載
72
+ - 改善すべき点があれば指摘
73
+
74
+ ベストプラクティス:
75
+ - 単にコードをコピペするのではなく、設計意図を理解する
76
+ - 依存関係や副作用を確認
77
+ - テストコードも参考にする(期待される振る舞いを理解)
78
+ - 最新のコードか確認(古い実装を参考にしない)
79
+ -->
80
+
81
+ | 項目 | 内容 |
82
+ |------|------|
83
+ | 類似機能のファイルパス | <!-- 例: src/features/auth/PasswordResetForm.tsx (メール送信フロー) --> |
84
+ | 実装パターン | <!-- 例: React Hook Form でフォーム管理、API 呼び出しは useMutation で非同期処理 --> |
85
+ | 参考にすべき点 | <!-- 例: エラーハンドリングのパターン、ローディング状態の管理、ユーザーへのフィードバック表示 --> |
86
+
87
+ ---
88
+
89
+ ## 3. 再利用可能なコンポーネント
90
+
91
+ <!--
92
+ 何を書くか: 既存の共通コンポーネントやライブラリで再利用できるもの
93
+
94
+ 調査対象:
95
+ - UI コンポーネント(Button, Input, Modal など)
96
+ - カスタムフック(useAuth, useFetch など)
97
+ - ユーティリティ関数(formatDate, validateEmail など)
98
+ - API クライアント、データフェッチャー
99
+
100
+ 記載のポイント:
101
+ - コンポーネント名とファイルパス
102
+ - 使用方法(Props、引数、戻り値)
103
+ - 使用例(簡単なコードスニペット)
104
+ - 制約事項や注意点
105
+
106
+ ベストプラクティス:
107
+ - 実際にコードを読んで Props や型を確認
108
+ - 他の箇所での使用例を探す(実践的な使い方を学ぶ)
109
+ - Storybook やドキュメントがあれば参照
110
+ - 古いコンポーネントの場合、リファクタリング検討
111
+ -->
112
+
113
+ | コンポーネント名 | ファイルパス | 使用方法 |
114
+ |-----------------|-------------|----------|
115
+ | `Button` | `src/components/Button.tsx` | `<Button variant="primary" onClick={handleClick}>送信</Button>` |
116
+ | `useToast` | `src/hooks/useToast.ts` | `const { showToast } = useToast(); showToast({ message: "成功", type: "success" });` |
117
+ | `apiClient` | `src/lib/apiClient.ts` | `await apiClient.post("/api/auth/verify", { token });` |
118
+
119
+ ---
120
+
121
+ ## 4. 技術選定
122
+
123
+ <!--
124
+ 何を書くか: このタスクで使用する技術やライブラリの選定理由(必要に応じて)
125
+
126
+ 記載のポイント:
127
+ - 複数の選択肢がある場合の比較
128
+ - 選定基準(パフォーマンス、型安全性、コミュニティサポート、学習コスト)
129
+ - 選定した技術のメリット・デメリット
130
+ - 既存プロジェクトとの整合性
131
+
132
+ ベストプラクティス:
133
+ - 感覚ではなくデータに基づいて選定(npm trends、GitHub スター数、メンテナンス状況)
134
+ - チーム内で合意を取る(新しいライブラリ導入は慎重に)
135
+ - ライセンスを確認(商用利用可能か)
136
+ - バンドルサイズを考慮(フロントエンドの場合)
137
+ -->
138
+
139
+ | 技術・ライブラリ | 選定理由 | 代替案との比較 |
140
+ |----------------|---------|---------------|
141
+ | <!-- 例: Zod --> | <!-- 例: TypeScript の型定義からバリデーションスキーマを自動生成可能。React Hook Form との統合が容易 --> | <!-- 例: Yup は型推論が弱い。Joi はバンドルサイズが大きい --> |
142
+
143
+ ---
144
+
145
+ ## 5. 技術的リスクと制約
146
+
147
+ <!--
148
+ 何を書くか: 実装時に想定される技術的な課題やリスク
149
+
150
+ 記載すべき内容:
151
+ - パフォーマンス上の懸念(大量データ、重い処理)
152
+ - セキュリティリスク(XSS, CSRF, SQL Injection など)
153
+ - ブラウザ互換性の問題
154
+ - 外部サービスへの依存(API の制限、障害時の影響)
155
+ - スケーラビリティの課題
156
+
157
+ ベストプラクティス:
158
+ - リスクだけでなく軽減策も記載
159
+ - 優先度をつける(高/中/低)
160
+ - 実装前にチームで共有して合意を取る
161
+ -->
162
+
163
+ | リスク | 影響 | 軽減策 |
164
+ |--------|------|--------|
165
+ | <!-- 例: メール送信の遅延 --> | <!-- 例: ユーザー登録完了までに時間がかかる --> | <!-- 例: 非同期ジョブキューで処理。即座に「メール送信中」メッセージを表示 --> |
166
+
167
+ ---
168
+
169
+ ## メモ
170
+
171
+ <!--
172
+ リサーチ全体に関する補足情報
173
+
174
+ 記載すべき内容:
175
+ - 調査中に気づいた改善点
176
+ - 今後の調査が必要な項目
177
+ - 参考になった記事や動画
178
+ - チームメンバーへの質問事項
179
+ - 調査の過程で発見した技術的負債
180
+
181
+ 例:
182
+ - 既存のメール送信機能が古い実装のため、リファクタリング検討
183
+ - パフォーマンステストが必要(大量ユーザー登録時の負荷)
184
+ - セキュリティレビューをチームリーダーに依頼
185
+ -->