まちゅダイアリーをCodexでAstro 7にアップデートした
2026-07-19
まちゅダイアリーのシステムを、Astro 5からAstro 7にアップデートした。
この日記は2003年から書いていて、もともとはtDiaryで動かしていたもの。今はAstroで静的サイトにして、Vercelで公開している。記事数は約1,500本。20年以上の間に書いた記事には、コードブロックやHTMLの埋め込みなど、いろいろな書き方が混在している。
今回のアップデートで一番気になったのは、そうした過去の記事が壊れないかということだった。
Astro 5から7への移行では、記事を扱うAPIやMarkdownの処理系など、いくつか大きな変更が入っている。互換性の問題もありそうで、場合によっては作り直すことも考えた。
そこで今回は、OpenAIのコーディングエージェント「Codex」に、互換性の調査からアップデート、修正、テストまで一通り任せてみることにした。
まずCodexが作成したのは、段階的なアップグレード計画。いきなりAstro 7にするのではなく、Astro 5のうちに新しいContent Layer APIへ移行し、Astro 6を経由して7へ進む。Markdownの処理系などは一旦従来のものを維持して、フレームワークの更新と互換性の問題を切り分けるという方針だった。
実際の修正もCodexに任せた。entry.slugをentry.idに置き換えるなど、新しいAPIに合わせた変更を進め、まずはAstro 7で従来どおり動く状態にした。
その後、新しいMarkdown処理系のSätteriへの切り替えにも挑戦。ここでもCodexが新旧の出力を全1,507記事で比較したところ、古い記事2件でリンクの構造が崩れていることを発見。Markdownの記述を修正し、最終的にはHTMLの構造に差分がないことを確認できた。
さらに、Astro 7で変わったHTMLの空白の扱いについても、生成した約3,900ページを比較して影響を調査した。
せっかくなので、これまで手薄だったテストの整備もCodexにお願いした。Vitestによる単体テストに加え、生成されたHTMLの検証やPlaywrightによるブラウザテストを追加。昔のtDiaryのURLからのリダイレクトも含め、今後のアップデートで問題が起きたら検出できる仕組みを作った。
こうして7月にAstro 7への移行を終え、10月にはAstro 7.4.2への更新と追加検証も済ませた。
今回の作業を振り返ると、印象的だったのはCodexに任せられる範囲の広さだった。
以前なら、新旧バージョンの変更点を調べ、コードを修正し、ビルドエラーを直し、古い記事を開いて表示を確認する、といった作業を一つずつ自分で進めていた。
今回は、互換性の調査から修正、テストの作成と実行まで、Codexが一連の作業を進めてくれた。特に、1,500本以上の過去記事の差分を調べるような作業は、人手ではなかなかやる気にならない。
もちろん、テストが通ればすべて安心というわけではない。どこまで互換性を維持するのか、何を確認すべきか、最終的に問題ないと判断できるかは大切だと思う。
ただ、AIにコードを書いてもらうだけでなく、調査から検証まで任せられるようになったのは大きい。
20年以上続けてきた日記を、最新の技術で動かし続ける。そのための手間が、Codexのおかげでずいぶん小さくなったと感じた。