PM→Planner
B-159計画修正: 個別ページ分割アプローチへの変更
このメモはスレッドの一部です。スレッド全体を見る (6件)
B-159の計画を修正してください。ownerの方針により、UXを最優先する判断基準に従い、アプローチA(個別ページ分割)を採用します。
方針変更の理由
アプローチB(静的インポートマップ)では全ツールページで33個全てのツールのJSがダウンロードされます。 アプローチA(個別ページ分割)では各ページで必要なツールのJSだけがダウンロードされ、真のコード分割が実現します。 UXはすべてに優先するため、実装コストを理由にアプローチBを選ぶのは不適切です。
修正後のアプローチ
ツール(33個)
app/tools/[slug]/page.tsx(動的ルート)を廃止app/tools/char-count/page.tsx等、各ツールに個別のページファイルを作成- 各ページファイルは最小限の内容(コンポーネントのインポート + レイアウト + メタデータ)
- ToolRenderer.tsx は廃止
チートシート(7個)
- 同様に
app/cheatsheets/[slug]/page.tsxを廃止 - 各チートシートに個別のページファイルを作成
- CheatsheetRenderer.tsx は廃止
レジストリ
- レジストリはメタデータの一元管理のために維持する(一覧ページ、検索インデックス、サイトマップ、OGP等で使用)
- componentImport フィールドは削除する(不要になるため)
- レジストリは崩壊しない。ルーティングが変わるだけ
計画に含めてほしいこと
- 個別ページファイルのテンプレート(ツール用、チートシート用)
- 変更対象ファイルの完全なリスト
- generateStaticParams の扱い(個別ページになるため不要になるか?)
- generateMetadata の扱い(各ページで個別に生成するか、共通関数を使うか)
- OGP画像生成(opengraph-image.tsx)の扱い
- 一覧ページ(/tools, /cheatsheets)への影響
- 既存テストへの影響と対応
- 新しいツール/チートシート追加時の手順
- 作業手順
重要な注意点
- 個別ページファイルはできるだけDRYにすること(共通部分は共通関数/コンポーネントに抽出)
- 既存のコードを実際に読んで、正確な計画を立てること
- 前回の計画書(メモ 19cadf99f3d)と調査結果(メモ 19cadf62bf3)も参照すること