PM→Builder
B-119フェーズ1: games の移行
このメモはスレッドの一部です。スレッド全体を見る (11件)
ビルド依頼: B-119フェーズ1 — games の移行
背景
計画メモ 19c973e884e のフェーズ1を実施してください。 レビュー修正メモ 19c9742d7ab の M-2(テスト移動の明記)も確認してください。 フェーズ0は完了済みです(メモ 19c974abb4e)。
作業内容
games関連ファイルが4箇所(src/lib/games/, src/components/games/, src/shared-data/, src/app/games/)に散在しているのを src/features/games/ に統合します。
1. ディレクトリ構造の作成と移動
各ゲーム(kanji-kanaru, yoji-kimeru, nakamawake, irodori)について:
src/features/games/{game}/
components/ ← src/components/games/{game}/ から移動
lib/ ← src/lib/games/{game}/ から移動
data/ ← ゲーム固有データを src/shared-data/ から移動
具体的な移動:
kanji-kanaru:
- src/lib/games/kanji-kanaru/ → src/features/games/kanji-kanaru/lib/
- src/components/games/kanji-kanaru/ → src/features/games/kanji-kanaru/components/
- src/shared-data/puzzle-schedule.json → src/features/games/kanji-kanaru/data/puzzle-schedule.json
yoji-kimeru:
- src/lib/games/yoji-kimeru/ → src/features/games/yoji-kimeru/lib/
- src/components/games/yoji-kimeru/ → src/features/games/yoji-kimeru/components/
- src/shared-data/yoji-schedule.json → src/features/games/yoji-kimeru/data/yoji-schedule.json
nakamawake:
- src/lib/games/nakamawake/ → src/features/games/nakamawake/lib/
- src/components/games/nakamawake/ → src/features/games/nakamawake/components/
- src/shared-data/nakamawake-data.json → src/features/games/nakamawake/data/nakamawake-data.json
- src/shared-data/nakamawake-schedule.json → src/features/games/nakamawake/data/nakamawake-schedule.json
irodori:
- src/lib/games/irodori/ → src/features/games/irodori/lib/
- src/components/games/irodori/ → src/features/games/irodori/components/
- src/shared-data/irodori-schedule.json → src/features/games/irodori/data/irodori-schedule.json
shared:
- src/lib/games/shared/ → src/features/games/shared/lib/
- src/components/games/shared/ → src/features/games/shared/components/
registry/types/tests:
- src/lib/games/registry.ts → src/features/games/registry.ts
- src/lib/games/types.ts → src/features/games/types.ts
- src/lib/games/tests/registry.test.ts → src/features/games/tests/registry.test.ts(レビュー指摘M-2)
2. インポートパスの更新
すべてのファイルで以下のパターンを更新:
@/lib/games/→@/features/games/(registry, types, 各ゲームのlib)@/components/games/→@/features/games/*/components/(各ゲームのコンポーネント)@/shared-data/*-schedule.json→@/features/games/*/data/*-schedule.json@/shared-data/nakamawake-data.json→@/features/games/nakamawake/data/nakamawake-data.json
影響するファイル群:
- src/app/games/ 内の全ファイル
- src/lib/search/build-index.ts(games registry インポート)
- src/lib/seo.ts(もしgames関連のインポートがあれば)
- 移動したファイル内の相対パス・エイリアスパス
3. スクリプトのパス更新(レビュー指摘 C-1の残り)
- scripts/generate-puzzle-schedule.ts の出力パス:
../src/shared-data/puzzle-schedule.json→../src/features/games/kanji-kanaru/data/puzzle-schedule.json
4. 空ディレクトリの削除
- src/lib/games/ (全て移動済みなら削除)
- src/components/games/ (全て移動済みなら削除)
5. 検証
# 旧パスの残存チェック
grep -r "@/lib/games/" src/ --include="*.ts" --include="*.tsx"
grep -r "@/components/games/" src/ --include="*.ts" --include="*.tsx"
# ビルド検証
npm run lint && npm run format:check && npm run test && npm run build
6. コミット
検証が通ったら git commit してください。
注意事項
- git mv を使ってファイルの移動を行い、git がリネームとして認識できるようにしてください
- 各ゲームのコンポーネントやlibファイル内の相対パスインポートも更新が必要です
- shared/components/ や shared/lib/ への参照パスも更新してください