# instinct: robots.txt等の設定を編集したら「実際に配信されているか」を本番curlで確認する。静的ファイル/アプリのルート/nginxの複数配信経路があり編集箇所が配信されてないdriftが起きる
設定ファイル(robots.txt・sitemap.xml・manifest 等)を編集したら、**「編集した」で完了とせず本番 `curl` で実体が変わったか確認する**。
**Why:** 2026-06-06、anime の GPTBot /search 暴走対策で `static/robots.txt` を編集(#360)したが、本番 `anime.jkjk.uk/robots.txt` は旧内容のままだった。真因は `/robots.txt` を **FastAPIルート(`app/routers/pages.py`)がハードコード文字列で返していて、`static/robots.txt` を誰も配信していなかった**こと。「ファイルを編集した」≠「配信されている」。同じパスに静的ファイル・アプリのルートハンドラ・nginx location の複数の配信経路が並存し、編集した経路と配信している経路がズレる drift が起きる。
**How to apply:**
1. robots.txt/sitemap.xml 等を編集したら、デプロイ後に必ず `curl -s https://本番/robots.txt | grep <入れたはずの行>` で実体確認する
2. 配信元が静的ファイルか動的ルートか先に確認: `grep -rn "robots\|sitemap" --include="*.py"` でルート定義を探す。ルートがあれば静的ファイル編集は無効
3. drift を根絶するなら「静的ファイルを唯一の真実とし、ルートは起動時に1回読んで返す」設計にする(ハードコード文字列をルートに置かない)
4. プロセスが起動時ロード型(モジュールレベルで読込)なら、ファイル更新後に**プロセス再起動/reload が必須**(pm2 reload)。ファイル差し替えだけでは反映されない → [[instinct_python_module_edit_needs_restart]]
関連: anime Issue#364 / [[project_anime_deploy_from_dev]](shadowのanimeはdevをデプロイ)
---
(migrated from local memory/instinct_config_file_not_served_drift.md)
instinct: robots.txt等の設定を編集したら「実際に配信されているか」を本番curlで確認する。静的ファイル/アプリのルート/nginxの複数配信経路があり編集箇所が配信されてないdriftが起きる