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,386 @@
1
+ ---
2
+ description: ビルド成果物のサイズを分析し、コード分割・遅延ロード・Tree Shakingで最適化するワークフロー
3
+ auto_execution_mode: 1
4
+ ---
5
+
6
+ # Bundle-Optimize (x-Bundle-Optimize)
7
+
8
+ ## 目的
9
+
10
+ - ビルド成果物のサイズを分析し、ページロード時間を改善する。
11
+ - 不要な依存関係を特定し、削除または軽量な代替に置き換える。
12
+ - コード分割と遅延ロードを実装し、初回ロード時間を短縮する。
13
+ - Tree Shaking を活用し、未使用コードを削減する。
14
+ - Core Web Vitals(LCP, FID, CLS)を改善する。
15
+
16
+ ## 前提
17
+
18
+ - ビルドツールが設定されている(任意のバンドラー/ビルドツール)。
19
+ - 本番ビルドが可能である。
20
+ - パフォーマンス測定ツールが利用可能である(ブラウザ DevTools, Lighthouse等)。
21
+ - Git リポジトリが初期化されている。
22
+
23
+ ## 手順
24
+
25
+ ### 1. 現在のビルドサイズの測定
26
+
27
+ **ベースライン測定**:
28
+
29
+ 本番ビルドを実行してサイズを確認:
30
+ ```bash
31
+ # ビルドコマンド例
32
+ npm run build
33
+ # または
34
+ yarn build
35
+ # または
36
+ <build-command>
37
+ ```
38
+
39
+ **ビルド出力の確認**:
40
+ - メインバンドル/チャンクのサイズ
41
+ - CSS ファイルのサイズ
42
+ - アセット(画像、フォント等)のサイズ
43
+ - 圧縮後のサイズ(gzip, brotli)
44
+
45
+ **サイズの目安**:
46
+ - **< 100 KB** (gzipped): 優秀
47
+ - **100-200 KB**: 良好
48
+ - **200-500 KB**: 改善の余地あり
49
+ - **> 500 KB**: 最適化が必要
50
+
51
+ ### 2. バンドル/ビルド分析
52
+
53
+ **分析ツールの選択と実行**:
54
+
55
+ **バンドル可視化ツール**:
56
+ - webpack-bundle-analyzer (Webpack)
57
+ - rollup-plugin-visualizer (Rollup/Vite)
58
+ - next-bundle-analyzer (Next.js)
59
+ - source-map-explorer (汎用)
60
+ - bundle-buddy (汎用)
61
+
62
+ **分析の実施**:
63
+ ```bash
64
+ # ビルドツールに応じたアナライザーを実行
65
+ <build-command> --analyze
66
+ # または
67
+ <analyzer-command>
68
+ ```
69
+
70
+ **分析すべき項目**:
71
+ - [ ] 最も大きいパッケージ/モジュール
72
+ - [ ] 重複しているパッケージ
73
+ - [ ] 未使用または不要なコード
74
+ - [ ] サードパーティライブラリのサイズ
75
+ - [ ] アプリケーションコードとベンダーコードの比率
76
+
77
+ ### 3. 問題のあるパッケージの特定
78
+
79
+ **よくある問題パッケージと代替案**:
80
+
81
+ **日付ライブラリ**:
82
+ - 問題: moment.js (500KB+)
83
+ - 代替: date-fns, day.js, Temporal API (ネイティブ)
84
+
85
+ **ユーティリティライブラリ**:
86
+ - 問題: lodash (全体インポート)
87
+ - 代替: 個別関数インポート、ネイティブJSメソッド
88
+
89
+ **ポリフィル**:
90
+ - 問題: core-js (古いポリフィル)
91
+ - 代替: 必要なもののみインポート、ターゲットブラウザに応じた選択
92
+
93
+ **パッケージサイズの確認方法**:
94
+ ```bash
95
+ # bundlephobia CLI
96
+ npx bundlephobia <package-name>
97
+
98
+ # または https://bundlephobia.com でWeb検索
99
+ ```
100
+
101
+ ### 4. 依存関係の最適化
102
+
103
+ **軽量化の戦略**:
104
+
105
+ **1. 大きいパッケージの置き換え**:
106
+ - サイズの小さい代替ライブラリに置き換え
107
+ - ネイティブAPI で代替可能か検討
108
+ - 必要な機能のみを提供する最小限のライブラリを選択
109
+
110
+ **2. Tree Shaking の有効化**:
111
+ - ES Modules (ESM) を使用
112
+ - 副作用のないモジュールを明示
113
+ - Dead Code Elimination の設定確認
114
+
115
+ **3. 個別インポートの使用**:
116
+ ```javascript
117
+ // 避ける: 全体インポート
118
+ import _ from 'lodash';
119
+
120
+ // 推奨: 個別インポート
121
+ import debounce from 'lodash/debounce';
122
+ // または
123
+ import { debounce } from 'lodash-es';
124
+ ```
125
+
126
+ **4. 未使用パッケージの削除**:
127
+ ```bash
128
+ # 未使用パッケージの検出
129
+ npx depcheck
130
+
131
+ # 削除
132
+ npm uninstall <unused-package>
133
+ ```
134
+
135
+ **5. 重複パッケージの統一**:
136
+ ```bash
137
+ # 重複確認
138
+ npm ls <package-name>
139
+
140
+ # package.json で解決(npm 8.3+)
141
+ {
142
+ "overrides": {
143
+ "package-name": "^1.2.3"
144
+ }
145
+ }
146
+ ```
147
+
148
+ ### 5. コード分割の実装
149
+
150
+ **コード分割の戦略**:
151
+
152
+ **1. ルートベース分割**:
153
+ - ページ/ルートごとにコードを分割
154
+ - 動的インポートを使用
155
+ - 初回ロードに不要なコードを遅延ロード
156
+
157
+ **2. 機能ベース分割**:
158
+ - 重いライブラリを遅延ロード
159
+ - 条件付きで使用される機能を分割
160
+ - ユーザーインタラクション後にロード
161
+
162
+ **3. ベンダー/サードパーティ分割**:
163
+ - アプリケーションコードとライブラリを分離
164
+ - 頻繁に変更されないコードを別チャンクに
165
+
166
+ **動的インポートの例**:
167
+ ```javascript
168
+ // 遅延ロード
169
+ const HeavyComponent = lazy(() => import('./HeavyComponent'));
170
+
171
+ // 条件付きロード
172
+ if (userNeedsChart) {
173
+ const ChartLibrary = await import('chart-library');
174
+ ChartLibrary.renderChart(data);
175
+ }
176
+ ```
177
+
178
+ ### 6. Tree Shaking の最適化
179
+
180
+ **Tree Shaking が機能する条件**:
181
+
182
+ **1. ES Modules を使用**:
183
+ - import/export 構文を使用
184
+ - CommonJS (require) ではなくESMを使用
185
+
186
+ **2. 副作用の明示**:
187
+ ```json
188
+ // package.json
189
+ {
190
+ "sideEffects": false
191
+ }
192
+
193
+ // または特定ファイルのみ
194
+ {
195
+ "sideEffects": ["*.css", "*.scss", "polyfills.js"]
196
+ }
197
+ ```
198
+
199
+ **3. ビルドツールの設定**:
200
+ - Production モードでビルド
201
+ - Minification を有効化
202
+ - Dead Code Elimination を有効化
203
+
204
+ ### 7. アセットの最適化
205
+
206
+ **画像最適化**:
207
+ - 適切な形式を使用(WebP, AVIF)
208
+ - 適切なサイズにリサイズ
209
+ - 遅延ロード(Lazy Loading)
210
+ - CDN の使用
211
+ - スプライトシートまたはアイコンフォント
212
+
213
+ **フォント最適化**:
214
+ - サブセット化(必要な文字のみ)
215
+ - WOFF2 形式を優先
216
+ - font-display: swap を使用
217
+ - preload で重要なフォントを先読み
218
+
219
+ **その他のアセット**:
220
+ - SVG の最適化(SVGO)
221
+ - JSON の圧縮
222
+ - 不要なメタデータの削除
223
+
224
+ ### 8. パフォーマンス測定
225
+
226
+ **測定ツール**:
227
+
228
+ **ブラウザ DevTools**:
229
+ - Network タブでリソースサイズ確認
230
+ - Performance タブでロード時間確認
231
+ - Coverage タブで未使用コード確認
232
+
233
+ **Lighthouse**:
234
+ ```bash
235
+ npx lighthouse <url> --view
236
+ ```
237
+
238
+ **Core Web Vitals の目標値**:
239
+ - **LCP (Largest Contentful Paint)**: < 2.5s
240
+ - **FID (First Input Delay)**: < 100ms
241
+ - **CLS (Cumulative Layout Shift)**: < 0.1
242
+ - **Total Blocking Time**: < 200ms
243
+
244
+ **バンドルサイズ予算の設定**:
245
+ - ビルドツールに size budget を設定
246
+ - CI/CD で自動チェック
247
+ - 閾値を超えた場合はビルドを失敗させる
248
+
249
+ ### 9. 最適化結果の検証
250
+
251
+ **再ビルドと比較**:
252
+ ```bash
253
+ # 最適化後のビルド
254
+ npm run build
255
+
256
+ # サイズ比較
257
+ # Before: 500KB → After: 200KB (-60%)
258
+ ```
259
+
260
+ **検証項目**:
261
+ - [ ] ビルドサイズが削減された
262
+ - [ ] ページロード時間が改善された
263
+ - [ ] Core Web Vitals が改善された
264
+ - [ ] アプリケーションが正常に動作する
265
+ - [ ] エラーが発生していない
266
+
267
+ **削減目標**:
268
+ - **10-20%**: 良好
269
+ - **20-50%**: 優秀
270
+ - **50%+**: 大幅改善
271
+
272
+ ### 10. 継続的な監視
273
+
274
+ **モニタリングの設定**:
275
+ - バンドルサイズの推移をトラッキング
276
+ - CI/CD でサイズチェックを自動化
277
+ - パフォーマンス予算を設定
278
+ - 定期的なレビューを実施
279
+
280
+ **自動化の例**:
281
+ ```json
282
+ // package.json
283
+ {
284
+ "scripts": {
285
+ "build": "...",
286
+ "analyze": "...",
287
+ "size-check": "bundlesize"
288
+ }
289
+ }
290
+ ```
291
+
292
+ ### 11. Git コミット
293
+
294
+ ```bash
295
+ git add .
296
+
297
+ git commit -m "perf: optimize build size
298
+
299
+ - Replace heavy library with lightweight alternative (saved 400KB)
300
+ - Implement route-based code splitting
301
+ - Enable tree shaking for utility libraries
302
+ - Remove unused dependencies
303
+ - Optimize images and assets
304
+ - Build size reduced from 500KB to 200KB (-60%)
305
+
306
+ Metrics:
307
+ - LCP: 4.2s → 2.1s
308
+ - FID: 150ms → 80ms
309
+ - Bundle size: 500KB → 200KB
310
+
311
+ 🤖 Generated with [Claude Code](https://claude.com/claude-code)
312
+
313
+ Co-Authored-By: Claude <noreply@anthropic.com)"
314
+ ```
315
+
316
+ ## 完了条件
317
+
318
+ - ビルドサイズが測定されている
319
+ - バンドル分析で問題が特定されている
320
+ - 不要な依存関係が削除されている
321
+ - コード分割が実装されている
322
+ - Tree Shaking が有効化されている
323
+ - 最適化後のビルドが成功している
324
+ - ビルドサイズが削減されている(目標10%以上)
325
+ - パフォーマンス測定で改善が確認されている
326
+
327
+ ## エスカレーション
328
+
329
+ - **ビルドサイズが削減できない**:
330
+ - 大きいパッケージの代替案を再検討
331
+ - 未使用コードの徹底的な削除
332
+ - 動的インポートの追加実装
333
+ - アセットの最適化を強化
334
+
335
+ - **コード分割でエラーが発生**:
336
+ - ローディング状態の適切な処理
337
+ - エラーバウンダリの実装
338
+ - チャンクロード失敗時のフォールバック
339
+
340
+ - **Tree Shaking が機能しない**:
341
+ - ES Modules を使用しているか確認
342
+ - package.json の "sideEffects" を設定
343
+ - ビルドツールの設定を確認
344
+
345
+ - **パフォーマンスが改善しない**:
346
+ - ネットワークのボトルネックを確認
347
+ - サーバーサイドのパフォーマンスを確認
348
+ - キャッシュ戦略を見直す
349
+
350
+ ## ベストプラクティス
351
+
352
+ - **継続的な監視**: Lighthouse CI で定期的に測定
353
+ - **予算設定**: ビルドサイズの上限を設定
354
+ - **段階的な最適化**: 小さな改善を積み重ねる
355
+ - **プログレッシブエンハンスメント**: 必要な機能から順にロード
356
+ - **CDN 活用**: 静的アセットは CDN から配信
357
+ - **圧縮**: Gzip または Brotli 圧縮を有効化
358
+ - **キャッシュ戦略**: 長期キャッシュを活用
359
+ - **差分ビルド**: 変更されたファイルのみ再ビルド
360
+ - **並列処理**: ビルドプロセスを並列化
361
+
362
+ ## 参考: ツール別のパターン
363
+
364
+ **ビルドツール**:
365
+ - Webpack, Rollup, esbuild
366
+ - Vite, Turbopack, Parcel
367
+ - Next.js, Nuxt, SvelteKit (内蔵)
368
+
369
+ **バンドル分析ツール**:
370
+ - webpack-bundle-analyzer
371
+ - rollup-plugin-visualizer
372
+ - source-map-explorer
373
+ - bundle-buddy
374
+ - bundlephobia
375
+
376
+ **パフォーマンス測定**:
377
+ - Lighthouse, PageSpeed Insights
378
+ - Chrome DevTools (Network, Performance, Coverage)
379
+ - WebPageTest
380
+ - Core Web Vitals (CrUX)
381
+
382
+ **最適化ツール**:
383
+ - Terser, UglifyJS (minification)
384
+ - PurgeCSS (未使用CSSの削除)
385
+ - ImageOptim, Squoosh (画像圧縮)
386
+ - SVGO (SVG最適化)