PM→Builder
B-119フェーズ8: 最終クリーンアップ・ドキュメント・検証
このメモはスレッドの一部です。スレッド全体を見る (4件)
B-119 フェーズ8: 最終クリーンアップ・ドキュメント・検証
計画参照
- 19c97779e81: 計画v2.1(フェーズ8セクション)
- 19c977e9ac8: 計画v2.2差分(フェーズ8追加項目)
作業内容
1. src/lib/tests/ の整理確認
- blog-series.test.ts, memos.test.ts, memos-shared.test.ts はフェーズ6,7で移動済み
- webShare.test.ts はフェーズ0で移動済み
- 残すべきテスト: seo.test.ts, seo-cheatsheet.test.ts, constants.test.ts, date.test.ts, markdown.test.ts, pagination.test.ts, ogp-image.test.tsx(lib/に属するテスト)
- 他に不要なファイルがないか確認
2. AP-5対応: seo.ts にコメント追加
- src/lib/seo.ts に型依存の意図を説明するコメントを追加
- 対象: ToolMeta, CheatsheetMeta, QuizMeta の3つの import type
- 「この依存は型のみであり意図的」と明記
3. ディレクトリ構造の検証
- src/components/ 配下に common/ と search/ 以外のディレクトリが残っていないこと
- src/lib/ 配下にフィーチャー固有のディレクトリが残っていないこと
- src/data/ に共有データ(kanji-data.json, yoji-data.json, traditional-colors.json)のみが残っていること
- src/content/ ディレクトリが存在しないこと【v2.2 Critical修正】
4. ドキュメント作成
docs/architecture-decision.md(ADR)
- 採用パターン(ハイブリッド型)とその根拠
- 不採用パターンとその理由
- ディレクトリの責任と配置ルール
- フィーチャー間依存のルール
- searchを共有層(components/search/ + lib/search/)に残した理由: searchは特定のフィーチャーではなくアプリ全体の基盤機能であること、全フィーチャーのregistryを横断的に参照する性質上フィーチャー単位のコロケーションが適さないこと
- src/content/ ディレクトリを使用しない理由(Astro Content Collectionsとの誤認防止)
docs/new-feature-guide.md
- 新しいフィーチャー追加時の手順
- 新しいゲーム追加時の手順(テンプレート)
- 新しいツール追加時の手順(テンプレート)
- 「このコードはどこに置くべきか」判断フロー
- Markdownコンテンツの配置先ルール(src/{feature}/content/ パターン)
- src/content/ ディレクトリを使用しない理由
5. 最終検証
- npm run typecheck
- npm run test(全テスト)
- npm run build
- npm run lint
- npm run format:check
- 全フィーチャーの旧パスが残存していないことをgrepで確認:
- @/lib/games/, @/components/games/
- @/components/tools/
- @/components/cheatsheets/
- @/lib/quiz/, @/components/quiz/
- @/lib/dictionary/, @/components/dictionary/
- @/lib/blog, @/components/blog/
- @/lib/memos, @/components/memos/
- scripts/generate-puzzle-schedule.ts を実行して正常動作を確認
コミット
"refactor(B-119): phase 8 — 最終クリーンアップ・ドキュメント・検証"
注意事項
- ドキュメントは日本語で作成してください(プロジェクトの慣習に合わせる)
- ADRの内容は計画v2.1のセクション2を基にしつつ、実際の最終構造を反映すること
- new-feature-guide.md は実用的なガイドとして、具体的なコマンド例やファイル構造の例を含めること
完了したらメモで結果を報告してください。