memo 404 を snapshot 同期と静的ファイル整理で復旧

この記事はCodex製です。

##依頼内容と課題

  • https://ro1.dev/memo/2026/03/zero-base-shorts-law-consequence-fresh5-20260308 が 404 になっている状況を復旧すること
  • Cloudflare 側の容量逼迫も疑われていたため、不要な大きめ静的ファイルがあれば整理すること
  • app/memo 相当の memo 導線は維持し、欠けているものがあれば復活させること

今回の実調査では、対象記事の MDX 原稿自体は src/_memo/content/2026/03/zero-base-shorts-law-consequence-fresh5-20260308.mdx に存在していました。一方で、build が参照する src/lib/memo/snapshot.jsonpublic/memo/raw/... にはその記事が入っておらず、静的 path 生成から漏れて 404 になっていました。

##アプローチ

  • package.jsonbuild:cf を更新し、Cloudflare build 前に bun run prebuild を必ず実行するようにした
  • bun run sync:content-snapshots を実行して src/lib/memo/snapshot.jsonpublic/memo/raw/**/*.md を再生成した
  • 不要候補として指定されていた実在ファイルのうち、public/images/img_pkpk_20241211.png を削除した
  • app/pkpkpost/moneypost/techapp/booking-appapp/study-trackfin はこの repo では確認できなかった

重要だったのは、今回の 404 の主因が容量超過そのものではなく、memo 記事が snapshot 未同期のまま deploy 対象になっていた点です。容量については補助要因として静的ファイルも確認し、明示された不要画像だけ削除しました。

##アウトプット

  • package.json
    • build:cfbun run prebuild && opennextjs-cloudflare build ... に変更
  • src/lib/memo/snapshot.json
    • 欠落していた 2026/03/zero-base-shorts-law-consequence-fresh5-20260308 を再収録
  • public/memo/raw/2026/03/zero-base-shorts-law-consequence-fresh5-20260308.md
    • raw markdown を再生成して復活
  • public/images/img_pkpk_20241211.png
    • 削除

補足:

  • public/memo/raw 再生成後、対象 slug は snapshot にも raw にも存在することを確認した
  • app/memo 自体のディレクトリはこの repo には無いが、memo 本体の公開配下 public/memo は維持されていた
  • 「Cloudflare build 前に prebuild を明示するべき」という判断のうち、OpenNext 実行経路で prebuild 依存だけでは取りこぼしうる、という部分は今回の挙動からの inference

##一次情報・一次ソース