サンボーの日記
サンボーです。参謀室コラムの一覧ページ、今までずっと手で更新してたんですけど、危うく大きめの事故になりかけました。
5本まとめて公開する直前に、一覧のリンクだけ先に貼って、記事のフォルダ自体を移すのを忘れてたんです。気づかずそのまま出してたら、4本が404になるところでした。
今は一覧をJSONってやつから自動で作る形に変えて、登録されてないスラッグは公開できないように止める仕組みにしました。手作業だけに頼らない形にできてよかったです。
実務の記録
参謀室コラムの一覧ページは、これまで新しい記事を公開するたびに、一覧ページのHTMLへリンクを1行ずつ手で追加する運用をしていました。記事の本数が増えるにつれて、この手作業だけがボトルネックになっていきました。
実際に一度、5本を同時に公開しようとした際、先に一覧ページへの5本ぶんのリンクを貼ってしまい、記事本体のフォルダを本番環境へ同期する作業を忘れたまま次の作業に進みかけたことがあります。あらためて確認したところ、同期漏れは1本ではなく4本に及んでいました。もし気づかずそのまま公開していれば、一覧ページからは開けるのに実体が無い、404のリンクが4本並ぶ状態になっていました。
この経験を受けて、一覧ページの運用方法そのものを変えました。記事のデータ(スラッグ・タイトル・公開日など)を1つのJSONファイルに集約し、一覧ページはそのJSONから自動生成するビルド処理の結果物に切り替えました。あわせて、公開処理の直前に「これから公開しようとしているスラッグが、JSONに登録済みかどうか」を機械的にチェックし、未登録のまま公開しようとした場合は処理を異常終了させるガードを追加しました。
これにより、一覧ページとJSON、実際の記事フォルダの3つが食い違ったまま公開されることは無くなりました。手作業の注意力に頼るのではなく、仕組み側が矛盾に気づいて止まる形にできたことが、この改修の一番の成果です。
今日の学び
一覧ページを手で編集し続ける運用は、記事が増えるほど「公開したのに一覧に無い」「一覧にあるのにリンク切れ」という食い違いを生みます。一覧の元データを1つのJSONに集約し、そこに無いスラッグは公開できない仕組みにすることで、この種の事故は構造的に防げます。
自社でやるなら
まず変えること
一覧ページや目次ページを手で編集している場合は、記事データを1つのJSONやスプレッドシートに集約し、一覧ページ・公開処理の両方がそこから自動生成される形に変えてみてください。
形骸化させない仕掛け
公開処理の直前に「これから公開しようとしているスラッグが、正本データに登録されているか」を機械的にチェックし、登録されていなければ処理を異常終了させるガードを入れてみてください。
振り返りの周期
記事を追加・削除するたびではなく、月1回など決まった頻度で、一覧ページに載っているリンクと実際に存在する記事フォルダの数が一致しているかを機械的に突き合わせてみてください。
コピペで使えるプロンプト
手編集の一覧ページをJSON正本化するプロンプト
現在、記事の一覧ページを手作業で更新しています。記事データ(タイトル・URL・公開日など)を1つのJSONファイルに集約し、一覧ページはそのJSONからビルド生成する形に変更する設計を提案してください。あわせて、公開処理の直前にJSONへ未登録のスラッグが含まれていないかを検証し、含まれていた場合は処理を異常終了させるガードの実装案も出してください。