正本: docs/maintenance.md / 基準日: 2026-09-05

更新・公開・切り戻し手順

更新日: 2026-09-06。Markdownが正本、siteは生成物です。既存Cloudflare Pagesプロジェクトは llm-engineering-guide、本番ブランチは production、公開URLは https://llm-engineering-guide.pages.dev/ です。2026-09-06のPages APIで確認しました。新規プロジェクトは作成しません。

再生成と検証

python3 -B scripts/build_site.py
python3 -B scripts/verify_site.py
python3 -B -m unittest discover -s scripts -p 'test_*.py'
node --check static/search.js
python3 -B -m http.server 8000 --directory site

サーバー起動後、localhost:8000でトップ・3原稿・全レビュー・運用資料を確認します。file:// で開くと検索JSONのfetchが制限されるためHTTPを使います。ブラウザ自動検証の実行条件は scripts/test_browser.cjs を参照してください。実機iOS Safariでの確認はChromeでの検証と区別します。

サイト生成は指定された原稿・docs・staticのみを対象とします。.taskdesk/(添付・差分・テスト依存・作業ログ)、.wrangler/(アカウント関連キャッシュ)、Git情報、スクリプトを公開ディレクトリへコピーしないでください。デプロイするのは常に site/ だけです。

出典を更新する手順

  1. 監査日と原稿の資料基準日を分け、過去日時点の履歴が確認できなければ明記する。
  2. source-ledgerから公式本文を開く。検索snippetで済ませない。
  3. 主張ごとに原稿章、URL、該当節、確認日、仕様版、判定、修正内容を記録する(Pass 1)。
  4. 権限・承認・tool実行・state・MCP版など重要事項を別の公式資料と照合する(Pass 2)。
  5. 図・コード・比較表を横断し、モデル/API/Host/SDK/製品の境界を確認する(Pass 3)。
  6. 全原稿を再生成・検証し、最終レビュー報告へ実際の結果と未確認を記録する。

月次、またはAPI・MCP・Claude Code・Codexの仕様更新、deprecated告知で実施します。SDKが旧MCP版を話すことと、プロトコルの最新版が公開されたことは別の事実です。

既存Pagesプロジェクトの更新

公開前にPagesの現在のproduction branchと直前の成功deployment IDを確認します。以下のWrangler版は今回使用した版で固定しています。認証は既存の許可されたアカウントを利用し、未ログインの環境でのみログインを行います。

npx wrangler@4.129.0 pages project list
npx wrangler@4.129.0 pages deployment list --project-name llm-engineering-guide
npx wrangler@4.129.0 pages deploy site --project-name llm-engineering-guide --branch review

previewを確認した後、許可された本番更新を実行します。

npx wrangler@4.129.0 pages deploy site --project-name llm-engineering-guide --branch production
curl -I https://llm-engineering-guide.pages.dev/
curl -I https://llm-engineering-guide.pages.dev/not-found/deep/path

本番はトップ・3原稿・全docs・検索JSON・CSS/JSを取得し、ローカル生成物とのSHA-256一致、ステータス、Content-Type、CSP等を確認します。深い未存在パスは404、CSS/検索/ナビはルートから取得できることを確認します。プレビューの成功だけで本番の一致や権限を確認済みにしないでください。

今回のセッションはgit反映と本番デプロイの明示許可があります。ただし対象にはGitリポジトリもremoteもないため、push先は未設定です。新規remoteを推測して作りません。今後の更新ではgit反映と本番デプロイを別の許可として扱ってください。

Direct Uploadプロジェクトは同じプロジェクトのままGit integrationへ変更できません。将来のGit連携は別途設計します。

Sources

公開ヘッダーとMermaid

static/_headers がビルド時に site/_headers へコピーされ、Pagesが静的レスポンスへ適用します。CSP、nosniff、Referrer-Policy、frame制限等はこのファイルで管理します。将来Functionsを追加した場合、そのレスポンスには別途ヘッダー実装が必要です。

Mermaidは固定版を使い、読み込み・構文エラー時は図のソースと失敗表示を残します。CSPの外部script許可は固定された配布先へ絞っています。図のSVGに必要なstyle許可とJavaScriptのinline許可を混同しないでください。CSPの変更後は図と検索を再検証します。

Sources

閲覧制限を設ける場合

現時点では匿名アクセスで本番HTMLを取得できました。CSPやrobotsは閲覧者の認証ではありません。閲覧者・許可グループが未指定のため今回Accessのアカウント設定は変更しません。

非公開化する場合は、まず許可する人・組織を決めます。その後以下のURLを漏れなく設定・検証します。

URL範囲設定・確認
本番 llm-engineering-guide.pages.devPagesのEnable access policyで作成されたApplicationをManageし、公開hostnameのwildcardを削除して本番hostnameを保護する
previewのハッシュURLとブランチ別名本番用変更後にPagesのEnable access policyを再度有効化し、*.llm-engineering-guide.pages.dev 用の別Applicationを作る。古いハッシュURLと最新のreview別名の両方を検査
将来のカスタムドメインZero TrustのSelf-hosted Applicationで各hostnameを追加し、同じ閲覧方針を設定する。本番pages.devだけの保護では不足

設定後はログアウト状態で各URLのHTML・検索JSON・assetへのアクセスが認証に遷移するか、許可ユーザーが読めるか、許可外ユーザーが読めないかを確認します。Pagesのpreview専用Accessスイッチだけでは本番pages.devやカスタムドメインは保護されません。古いpreviewは別名が更新されても残るため確認対象です。

Sources

切り戻し

PagesダッシュボードのDeploymentsで直前の成功したproduction deploymentを選び、Rollback to this deploymentを実行します。preview deploymentはrollback対象にできません。切り戻し後も本番URLのHTML・検索・図・ヘッダーを再確認します。

今回の更新前に確認した切り戻し候補は 1e371595-8e7a-40fa-a001-e78db1994933(2026-09-05 12:36:45 UTC、production、success)です。以降の更新ではその時点の直前の成功IDへ置き換えてください。ローカル修正前の原稿・生成処理は非公開の .taskdesk/review-before/ に保存しています。

Sources