計画v2.2: B-119 src/content/問題の修正反映
B-119 計画v2.2 差分レポート(v2.1からの変更点)
本レポートは、再レビュー(19c977adbaf)のCritical 1件・Minor 2件を計画v2.1(19c97779e81)に反映した差分である。変更箇所には【v2.2修正】タグを付記している。
変更一覧
| 指摘ID | 種別 | 内容 | 反映先セクション |
|---|---|---|---|
| C-1 | Critical | src/content/ にblogだけが残る問題(Astro誤認シグナル) | 1-3, 2-3, 2-4, 2-5, フェーズ6, フェーズ8, セクション5 |
| N-1 | Minor | 配置ルール表の更新 + 将来のMarkdownコンテンツ配置ルール追加 | 2-4 |
| N-2 | Minor | 完成の定義に「Astro誤認シグナルの除去」項目追加 | 1-3 |
差分詳細
1. セクション1-3「完成の定義」への追加【v2.2修正: C-1, N-2反映】
既存の13項目の末尾に以下を追加:
- src/content/ ディレクトリが存在しないこと(Astroの Content Collections と誤認されるリスクを排除)
2. セクション2-3「最終ディレクトリ構造」の修正【v2.2修正: C-1反映】
2-3-a. 前回計画からの変更点リストの修正
以下の行を削除:
- src/content/blog/ はそのまま
以下の行を追加:
- src/content/blog/ は src/blog/content/ に移動し、src/content/ ディレクトリ自体を廃止する
2-3-b. ディレクトリツリーの修正
以下のブロックを削除:
content/ # コンテンツデータ(変更なし)
blog/ # ブログMarkdownファイル
以下のように src/blog/ セクションを修正(content/ サブディレクトリを追加):
blog/ # 新設: lib/blog.ts + components/blog/ を統合
_components/ # BlogCard, BlogListView, BlogLayout等
# BlogListView.tsx のCSS依存をアンチパターン修正
_lib/ # blog.ts(lib.ts ではなく元のファイル名を維持)
content/ # ブログMarkdownファイル(src/content/blog/ から移動)
3. セクション2-4「ディレクトリの責任と配置ルール」の修正【v2.2修正: C-1, N-1反映】
3-a. 配置ルール表の修正
以下の行を削除:
| コンテンツ | src/content/ | 非コード資産(Markdownファイル等) | ブログ記事MD |
以下の行を追加:
| コンテンツ | src/{feature}/content/ | フィーチャー固有のMarkdownコンテンツ | ブログ記事MD(src/blog/content/) |
3-b. 「新しいフィーチャーを追加する場合の判断基準」への追記
既存の6項目の末尾に以下を追加:
- Markdownコンテンツ(記事、ドキュメント等)を持つフィーチャーは src/{feature-name}/content/ に配置する。src/content/ ディレクトリは使用しない(Astroプロジェクトとの誤認防止)
4. セクション2-5「将来のスケーラビリティ対応」の修正【v2.2修正: C-1反映】
以下の行を修正:
現時点でsrc/直下のフィーチャーディレクトリは8個(tools, cheatsheets, games, dictionary, quiz, blog, memos + content)
修正後:
現時点でsrc/直下のフィーチャーディレクトリは7個(tools, cheatsheets, games, dictionary, quiz, blog, memos)
(content/ が廃止されたため、カウントを8から7に修正し、「+ content」を削除)
5. フェーズ6「blog の移行」の修正【v2.2修正: C-1反映】
5-a. 手順5の修正
以下を削除:
- blog/_lib/blog.ts 内の BLOG_DIR パスは変更なし(process.cwd() + 'src/content/blog' のまま)
以下に置換:
- blog/_lib/blog.ts 内の BLOG_DIR パスを変更: process.cwd() + 'src/content/blog' を process.cwd() + 'src/blog/content' に更新
5-b. 手順6の修正
以下を削除:
- src/content/blog/ はそのまま(Markdownファイルは移動しない)
以下に置換:
- src/content/blog/ の全Markdownファイルを src/blog/content/ に git mv で移動
- 移動完了後、src/content/ ディレクトリが空であることを確認し、削除する
(以降の手順番号を+1シフト: 旧7->8, 旧8->9, 旧9->10, 旧10->11, 旧11->12)
5-c. 影響ファイル数の修正
以下を修正:
影響ファイル: 約15ファイルのインポートパス変更 + AP-1修正
修正後:
影響ファイル: 約15ファイルのインポートパス変更 + AP-1修正 + blog.ts パス変更1行 + Markdownファイル移動(約35ファイル)
6. フェーズ8「最終クリーンアップ・ドキュメント・検証」への追加【v2.2修正: C-1反映】
6-a. 作業内容への追加
既存の手順5の後に以下を追加:
- 【v2.2修正: C-1反映】src/content/ ディレクトリが完全に消滅していることを確認する。存在する場合はエラーとして報告する。
(以降の手順番号を+1シフト)
6-b. ドキュメント作成セクションへの追記
docs/new-feature-guide.md の作成項目に以下を追加:
- Markdownコンテンツの配置先ルール(src/{feature}/content/ パターン)
- src/content/ ディレクトリを使用しない理由(Astro Content Collections との誤認防止)
7. セクション5「リスクと対策」への追加【v2.2修正: C-1反映】
リスク8の後に以下を追加:
【v2.2修正: C-1反映】リスク9: blog Markdownファイル移動時のパス不整合
- 説明: src/content/blog/ から src/blog/content/ への移動時、blog.ts の BLOG_DIR パスが正しく更新されていないとビルドが失敗する。ただし影響箇所は blog.ts の BLOG_DIR 定義1行のみであり、他のファイルは全て blog.ts の関数経由でアクセスしているため波及は限定的。
- 対策: フェーズ6の検証時に npm run build でブログページの生成を確認する。加えて、移動後に src/content/ ディレクトリが空であることを ls コマンドで確認し、空でなければ残存ファイルを調査する。
8. セクション7「レビュー指摘への対応サマリー」への追加【v2.2修正】
v2.1レビュー指摘の表に以下を追加:
| 指摘ID | 内容 | 対応箇所 |
|---|---|---|
| C-1 | src/content/ にblogだけが残る問題(Astro誤認) | 完成の定義に項目14追加。2-3のツリーから content/ 削除し blog/content/ 追加。2-4の配置ルール表更新。2-5のカウント修正。フェーズ6手順5,6,7修正。フェーズ8に消滅確認追加。リスク9追加 |
| N-1 | 配置ルール表の更新 + 将来のMarkdown配置ルール | 2-4の配置ルール表を修正。判断基準に項目7を追加 |
| N-2 | 完成の定義にAstro誤認シグナル除去を追加 | 完成の定義の項目14として追加 |
修正の影響範囲サマリー
今回の修正はコードの実装影響が非常に小さい:
- blog.ts の BLOG_DIR パス文字列1行の変更
- Markdownファイル約35本の git mv(内容変更なし)
- src/content/ ディレクトリの削除
他のファイルは全て blog.ts の関数経由でブログコンテンツにアクセスしているため、パス変更の影響は blog.ts 1ファイルに閉じる。フェーズ6の作業量は微増するが、ownerの根本課題(AIエージェントのAstro誤認)を完全に解決できる。
参照メモ
- 19c97779e81: 計画v2.1(修正対象)
- 19c977adbaf: 再レビュー結果(指摘事項)
- 19c977b762a: 修正依頼(今回の作業指示)