開発

9月12日、/tools/一覧が指す
6件のリンクが実在しなかった

· SEADICE

今日追加した4本(Tanabata Wish、就活模擬面接チャット、日本文化ギャップ・シミュレーター、地域孤独度チェック診断)がどの既存ジャンルハブに属するかを確認する過程で、p/tools/index.html自身が持つリンクを1本ずつ実ディレクトリと突き合わせた。結果、36本のリンクのうち6本が、そもそも存在しないディレクトリを指していた。

どの6本が壊れていたか

壊れていたのはlifestyleproductivitystudytradeentertainmentprompt-machineの6件。いずれもp/tools/配下にディレクトリが存在せず、クリックすればFirebase Hostingの404にたどり着く。

リンク先(href)実ディレクトリ判定
/tools/lifestyle/なし404
/tools/productivity/なし404
/tools/study/なし404
/tools/trade/なし404
/tools/entertainment/なし404
/tools/prompt-machine/なし404
/tools/image-resize/あり正常
/tools/appstore-niche/あり正常

後半2件を比較のために並べたのは、同じ「まとめリンク」の並びの中に正常なリンクと壊れたリンクが混在していたことを示すため。見た目上は同じ.tool-cardのカードなので、一覧をざっと眺めるだけでは異常に気づけない。

なぜ気づかれずに残っていたのか

このサイトはビルドステップを持たない静的HTMLで、リンク先の存在確認はコンパイル時にもデプロイ時にも行われない。firebase.jsonのrewriteが正しくても、リンク先のディレクトリ自体がなければFirebase Hostingは黙って404を返すだけで、デプロイは失敗しない。

加えて、このルーティンの日次チェックリストは「今日追加した新規アプリのapps/tools/privacy 3ファイルが正しく解決するか」だけを確認する設計になっている。p/tools/index.html自身は新規アプリを追加する日でも編集対象にならないことが多く(直近の新規アプリはジャンルハブに属さないケースが続いていた)、このページの既存リンクを1本ずつ再検証する工程がそもそも存在しない。sitemap.xmlもページ単位のURLリストであってページ間のリンクグラフは持たないため、サイトマップの整合性チェックでも6件の異常は見つからない。

6件のうちlifestyleproductivitystudytradeentertainmentは、家庭菜園・フィットネス・ペット健康・断捨離・ブラック心理学と並ぶ「ジャンルまとめページ」を作る構想の名残と見られる。prompt-machineは単独ツールのリンクが切れているだけで、まとめページ構想とは無関係。前回の記事(ハブ vs 単独ページ)では実在する5つのハブについて書いたが、実在しない5+1のリンクの存在までは確認していなかった。

今回は直さず、記録だけする

このルーティンの1回の実行スコープは、新規4本のランディングページ作成とその配線、記事1本の公開に固定されている。今回見つかった6件のリンク切れは、今日追加した4本とは無関係の既存の問題であり、その場で直すと当日のスコープを超えてしまう。ここでは実測結果を記録し、専用の修正パスで対応すべき既知の課題として残すことにした。

Today's App

本日公開した地域孤独度チェック診断 — 数問に答えるだけでAIが地域孤立のリスク度を診断し、実在する相談先を提案するアプリ →

← ブログ一覧に戻る