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,360 @@
1
+ # テックスタック
2
+
3
+ <!--
4
+ 何を書くか: プロジェクトで使用する技術・ツール・ライブラリの一覧
5
+
6
+ 目的:
7
+ - 技術選定の透明性を確保
8
+ - チームメンバーの学習計画を支援
9
+ - 技術的負債の可視化
10
+ - セキュリティパッチやバージョンアップの計画
11
+ - 新規メンバーのオンボーディング資料
12
+
13
+ 重要性:
14
+ - アーキテクチャ決定の記録(ADR: Architecture Decision Record)の一部
15
+ - 技術選定の理由を明確化(なぜその技術を選んだか)
16
+ - 互換性や依存関係の管理
17
+ - ライセンスコンプライアンス
18
+
19
+ 記載のポイント:
20
+ - レイヤーごとに整理(フロントエンド、バックエンド、インフラなど)
21
+ - バージョンを明記(メジャーバージョンは必須)
22
+ - 選定理由をメモ欄に記載
23
+ - EOL(End of Life)を考慮
24
+
25
+ 更新頻度:
26
+ - プロジェクト初期に作成
27
+ - 新しい技術を導入する際に更新
28
+ - バージョンアップ時に更新
29
+ - 四半期ごとに見直し(セキュリティ、EOL確認)
30
+ -->
31
+
32
+ ---
33
+
34
+ ## テックスタック一覧
35
+
36
+ <!--
37
+ テーブル構成:
38
+
39
+ 【レイヤー】
40
+ プロジェクトのアーキテクチャを層で分類:
41
+ - フロントエンド: UIフレームワーク、状態管理、スタイリング
42
+ - バックエンド: サーバーサイド言語、フレームワーク、API
43
+ - データベース: RDBMS、NoSQL、検索エンジン
44
+ - キャッシュ: インメモリDB、CDN
45
+ - インフラ: クラウドプロバイダー、コンテナ、オーケストレーション
46
+ - CI/CD: 継続的インテグレーション/デリバリー
47
+ - 監視: ログ、メトリクス、エラートラッキング
48
+ - テスト: ユニットテスト、E2Eテスト、負荷テスト
49
+ - 開発ツール: IDE、リンター、フォーマッター
50
+ - セキュリティ: 認証、暗号化、脆弱性スキャン
51
+ - その他: メール、通知、ストレージなど
52
+
53
+ 【技術/ツール】
54
+ - 具体的な技術名やツール名
55
+ - 公式名称を使用(略称は避ける)
56
+ - 例: React、Next.js、PostgreSQL、Docker
57
+
58
+ 【バージョン】
59
+ - メジャーバージョンは必須(例: 18.x、20.x)
60
+ - マイナー・パッチバージョンも記載可能(例: 18.2.0)
61
+ - LTS(Long Term Support)の場合は明記
62
+ - 特定バージョンに依存する場合は具体的に記載
63
+
64
+ 【選定タイミング】
65
+ - 初期: プロジェクト開始時に必須の決定(言語、フレームワーク、データベース、インフラ、CI/CD、基本テストツール)
66
+ - 中期: 主要機能実装後に導入可能(E2Eテスト、パフォーマンステスト、高度な開発ツール)
67
+ - 後期: 本番運用フェーズで必要になる(監視、ログ集約、APM、キャッシュ層、CDN最適化)
68
+ - 随時: 必要に応じて追加(特定ライブラリ、ツール)
69
+
70
+ 【メモ】
71
+ - 選定理由(なぜこの技術を選んだか)
72
+ - 代替案との比較結果
73
+ - EOL(End of Life)の日付
74
+ - ライセンス情報(特に商用利用の場合)
75
+ - 制約事項や注意点
76
+ - 移行計画(レガシーから移行中の場合)
77
+ - タイミングが「後期」の場合は導入条件も記載(例: 「ユーザー数1000人突破時」「本番リリース1週間前」)
78
+
79
+ 記載のベストプラクティス:
80
+ - バージョンは定期的に確認・更新
81
+ - セキュリティアップデートは優先的に適用
82
+ - 技術選定の背景をメモ欄に残す(将来的な見直しに役立つ)
83
+ - EOLが近い技術は早めに移行計画を立てる
84
+ - ライセンスを確認(特にオープンソース)
85
+ -->
86
+
87
+ | レイヤー | 技術/ツール | バージョン | 選定タイミング | メモ |
88
+ |----------|------------|-----------|--------------|------|
89
+ | <!-- 例: フロントエンド --> | <!-- 例: React --> | <!-- 例: 18.x --> | <!-- 例: 初期 --> | <!-- 例: コンポーネントベース開発、エコシステム充実 --> |
90
+ | <!-- 例: フロントエンド --> | <!-- 例: Next.js --> | <!-- 例: 14.x --> | <!-- 例: 初期 --> | <!-- 例: SSR/SSG、App Router使用 --> |
91
+ | <!-- 例: バックエンド --> | <!-- 例: Node.js --> | <!-- 例: 20.x LTS --> | <!-- 例: 初期 --> | <!-- 例: 2026年4月までサポート --> |
92
+ | <!-- 例: バックエンド --> | <!-- 例: Express --> | <!-- 例: 4.x --> | <!-- 例: 初期 --> | <!-- 例: 軽量、柔軟性が高い --> |
93
+ | <!-- 例: データベース --> | <!-- 例: PostgreSQL --> | <!-- 例: 15.x --> | <!-- 例: 初期 --> | <!-- 例: ACID準拠、JSON対応 --> |
94
+ | <!-- 例: キャッシュ --> | <!-- 例: Redis --> | <!-- 例: 7.x --> | <!-- 例: 後期 --> | <!-- 例: セッション管理、キュー。パフォーマンス要件に応じて導入 --> |
95
+ | <!-- 例: インフラ --> | <!-- 例: AWS --> | <!-- 例: - --> | <!-- 例: 初期 --> | <!-- 例: EC2, RDS, S3, CloudFront使用 --> |
96
+ | <!-- 例: CI/CD --> | <!-- 例: GitHub Actions --> | <!-- 例: - --> | <!-- 例: 初期 --> | <!-- 例: .github/workflows/で管理 --> |
97
+ | <!-- 例: 監視 --> | <!-- 例: Sentry --> | <!-- 例: - --> | <!-- 例: 後期 --> | <!-- 例: エラートラッキング。本番運用開始時に導入 --> |
98
+ | <!-- 例: テスト --> | <!-- 例: Jest --> | <!-- 例: 29.x --> | <!-- 例: 初期 --> | <!-- 例: ユニットテスト --> |
99
+ | <!-- 例: テスト --> | <!-- 例: Playwright --> | <!-- 例: 1.x --> | <!-- 例: 中期 --> | <!-- 例: E2Eテスト。主要機能実装後に導入 --> |
100
+
101
+ ---
102
+
103
+ ## 技術選定の基準
104
+
105
+ <!--
106
+ 技術選定時の判断基準を記録
107
+
108
+ このセクションはオプションですが、記載することで:
109
+ - 将来的な技術選定の一貫性を保つ
110
+ - 新しいチームメンバーが判断基準を理解できる
111
+ - 技術評価のフレームワークを提供
112
+
113
+ 記載すべき項目:
114
+ 1. パフォーマンス要件
115
+ - 応答時間、スループット、スケーラビリティ
116
+
117
+ 2. 開発者体験(DX)
118
+ - 学習コスト、ドキュメント充実度、エコシステム
119
+
120
+ 3. コミュニティとサポート
121
+ - アクティブな開発、セキュリティパッチ、LTS
122
+
123
+ 4. コスト
124
+ - ライセンス費用、インフラコスト、開発コスト
125
+
126
+ 5. チームのスキルセット
127
+ - 既存の知識、学習曲線、採用市場
128
+
129
+ 6. 互換性
130
+ - 既存システムとの統合、データ移行
131
+
132
+ 7. セキュリティ
133
+ - 脆弱性履歴、セキュリティベストプラクティス
134
+
135
+ 8. ベンダーロックイン
136
+ - 特定ベンダーへの依存度、移行コスト
137
+ -->
138
+
139
+ **主要な選定基準:**
140
+
141
+ - **成熟度**: 本番環境での実績、安定性
142
+ - **コミュニティ**: アクティブな開発、豊富な資料
143
+ - **パフォーマンス**: 非機能要件を満たすか
144
+ - **チームスキル**: 既存の知識、学習容易性
145
+ - **エコシステム**: ライブラリ、ツールの充実度
146
+ - **長期サポート**: EOL、LTS、アップグレードパス
147
+
148
+ ---
149
+
150
+ ## 技術選定のタイミング戦略
151
+
152
+ <!--
153
+ 技術選定のタイミングを4つのフェーズに分類
154
+
155
+ このセクションの目的:
156
+ - プロジェクト開始時に「何を決めるべきか」「何を後回しにできるか」を明確化
157
+ - 過剰な事前設計を避け、必要なタイミングで技術を導入
158
+ - 初期コストを抑え、段階的に成熟度を高める
159
+ - チームの学習曲線を考慮した計画的な技術導入
160
+
161
+ よくある失敗パターン:
162
+ - ❌ 最初から全ての技術を決定 → 過剰設計、初期コスト増大
163
+ - ❌ 監視ツールを後回し → 本番障害の原因特定困難
164
+ - ❌ E2Eテストを初期導入 → UI変更が多い初期フェーズで保守コスト増
165
+
166
+ 推奨アプローチ:
167
+ - ✅ 初期: 変更コストが高い技術のみ決定(言語、DB、インフラ)
168
+ - ✅ 中期: 主要機能安定後に品質ツール導入(E2E、パフォーマンステスト)
169
+ - ✅ 後期: 本番運用で必要な observability を導入(監視、ログ、トレーシング)
170
+ -->
171
+
172
+ ### 初期フェーズ(プロジェクト開始時)
173
+
174
+ **決定すべき技術**:
175
+ - プログラミング言語、フレームワーク
176
+ - データベース(RDBMS/NoSQL)
177
+ - インフラプロバイダー(AWS/GCP/Azure)
178
+ - CI/CD パイプライン
179
+ - 基本的なテストツール(ユニットテスト)
180
+ - バージョン管理戦略
181
+
182
+ **理由**: これらは後から変更するコストが非常に高い。アーキテクチャの基盤となる技術。
183
+
184
+ **例**:
185
+ - フロントエンド: React, Vue, Angular の選択
186
+ - バックエンド: Node.js, Python, Go の選択
187
+ - データベース: PostgreSQL, MySQL, MongoDB の選択
188
+ - インフラ: AWS, GCP, Azure の選択
189
+
190
+ ---
191
+
192
+ ### 中期フェーズ(主要機能実装後)
193
+
194
+ **決定すべき技術**:
195
+ - E2E テストフレームワーク(Playwright, Cypress)
196
+ - パフォーマンステストツール
197
+ - セキュリティスキャンツール
198
+ - 高度な開発ツール(Storybook など)
199
+
200
+ **理由**: UI/UX がある程度安定してから導入すべき。初期は画面変更が多く、E2E テストの保守コストが高い。
201
+
202
+ **導入タイミングの目安**:
203
+ - 主要画面の実装完了
204
+ - MVP(Minimum Viable Product)リリース前
205
+ - ユーザーストーリーの 70% 完了時点
206
+
207
+ ---
208
+
209
+ ### 後期フェーズ(本番運用開始時)
210
+
211
+ **決定すべき技術**:
212
+ - 監視・Observability ツール(Sentry, Datadog, New Relic)
213
+ - ログ集約(CloudWatch Logs, ELK Stack)
214
+ - APM(Application Performance Monitoring)
215
+ - 分散トレーシング(OpenTelemetry, Jaeger)
216
+ - キャッシュ層(Redis, Memcached)- パフォーマンス要件次第
217
+ - CDN 最適化
218
+
219
+ **理由**: 本番環境の実際の負荷やエラーパターンを見てから導入する方が効果的。初期導入はコストのみで価値が低い。
220
+
221
+ **導入タイミングの目安**:
222
+ - 本番リリース 1-2 週間前(監視ツール)
223
+ - パフォーマンス問題が顕在化した時点(キャッシュ層)
224
+ - ユーザー数が一定規模を超えた時点(例: 月間 10,000 アクティブユーザー)
225
+
226
+ ---
227
+
228
+ ### 随時フェーズ(必要に応じて)
229
+
230
+ **決定すべき技術**:
231
+ - 特定の機能要件に必要なライブラリ
232
+ - 開発効率化ツール
233
+ - 実験的なツール(A/B テスト、Feature Flag など)
234
+
235
+ **理由**: プロジェクトの進行に応じて、必要性が明確になったタイミングで導入。
236
+
237
+ ---
238
+
239
+ ## 技術スタック図
240
+
241
+ <!--
242
+ 視覚的に技術構成を表現(オプション)
243
+
244
+ Mermaid図を使用してアーキテクチャを可視化:
245
+ - レイヤーごとの関係性
246
+ - データフロー
247
+ - 依存関係
248
+
249
+ 例:
250
+ Browser → Next.js → Node.js/Express → PostgreSQL
251
+
252
+ Redis
253
+
254
+ AWS S3
255
+ -->
256
+
257
+ ```mermaid
258
+ graph LR
259
+ A[Browser] --> B[Next.js<br/>React 18.x]
260
+ B --> C[Node.js 20.x<br/>Express 4.x]
261
+ C --> D[PostgreSQL 15.x]
262
+ C --> E[Redis 7.x]
263
+ C --> F[AWS S3]
264
+
265
+ G[GitHub Actions] --> H[Docker]
266
+ H --> I[AWS EC2]
267
+
268
+ J[Sentry] -.監視.-> B
269
+ J -.監視.-> C
270
+ ```
271
+
272
+ ---
273
+
274
+ ## バージョン管理方針
275
+
276
+ <!--
277
+ バージョンアップのポリシー
278
+
279
+ 明確なバージョン管理方針を持つことで:
280
+ - セキュリティリスクを最小化
281
+ - 計画的なアップグレード
282
+ - 技術的負債の蓄積を防ぐ
283
+
284
+ 記載すべき内容:
285
+ - セキュリティパッチ: 即座に適用
286
+ - マイナーアップデート: 月次/四半期で評価
287
+ - メジャーアップデート: 年次で計画、十分なテスト
288
+ - EOL対応: EOLの6ヶ月前に移行計画
289
+ - 依存関係管理: Dependabot、Renovateなどの自動化
290
+ -->
291
+
292
+ **アップデート方針:**
293
+
294
+ - **セキュリティパッチ**: 発見後1週間以内に適用
295
+ - **マイナーバージョン**: 四半期ごとに評価・適用
296
+ - **メジャーバージョン**: 年1回、計画的にアップグレード
297
+ - **EOL対応**: EOL日の6ヶ月前に移行開始
298
+ - **自動化**: Dependabot有効化、週次でPR確認
299
+
300
+ ---
301
+
302
+ ## ライセンス一覧
303
+
304
+ <!--
305
+ オープンソースライセンスの管理(オプション)
306
+
307
+ 商用利用、再配布、ライセンス互換性を確認:
308
+ - MIT: 制限が緩い、商用利用可
309
+ - Apache 2.0: 特許権付与、商用利用可
310
+ - GPL: コピーレフト、ソース公開義務
311
+ - BSD: 制限が緩い
312
+ - 商用ライセンス: 利用規約確認
313
+
314
+ ツール:
315
+ - npm license-checker
316
+ - pip-licenses
317
+ - FOSSA、Black Duck(商用)
318
+ -->
319
+
320
+ | 技術/ツール | ライセンス | 商用利用 | 注意事項 |
321
+ |------------|-----------|---------|---------|
322
+ | <!-- 例: React --> | <!-- 例: MIT --> | <!-- 例: ✅ --> | <!-- 例: 制限なし --> |
323
+ | <!-- 例: PostgreSQL --> | <!-- 例: PostgreSQL License --> | <!-- 例: ✅ --> | <!-- 例: BSDライク --> |
324
+
325
+ ---
326
+
327
+ ## メモ
328
+
329
+ <!--
330
+ 全体に関する補足情報
331
+
332
+ 記載すべき内容:
333
+ - 技術選定の背景や経緯
334
+ - 過去の技術スタックからの移行理由
335
+ - 将来的な技術変更の予定
336
+ - パフォーマンスベンチマーク結果
337
+ - 技術調査レポートへのリンク
338
+ - チーム内の技術勉強会の記録
339
+ - ベンダー/コミュニティとの関係
340
+
341
+ 技術的負債の管理:
342
+ - レガシー技術の特定
343
+ - 移行計画とタイムライン
344
+ - 技術的負債の優先度
345
+
346
+ セキュリティ:
347
+ - 脆弱性スキャンの頻度
348
+ - CVE(Common Vulnerabilities and Exposures)の追跡
349
+ - セキュリティアップデートのプロセス
350
+
351
+ コスト管理:
352
+ - インフラコストの最適化
353
+ - ライセンス費用の見直し
354
+ - 技術選定によるコスト削減効果
355
+
356
+ ドキュメント:
357
+ - 各技術の公式ドキュメントへのリンク
358
+ - 社内の技術ガイドラインへのリンク
359
+ - ベストプラクティス集
360
+ -->