更新・公開・切り戻し手順
更新日: 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/ だけです。
出典を更新する手順
- 監査日と原稿の資料基準日を分け、過去日時点の履歴が確認できなければ明記する。
- source-ledgerから公式本文を開く。検索snippetで済ませない。
- 主張ごとに原稿章、URL、該当節、確認日、仕様版、判定、修正内容を記録する(Pass 1)。
- 権限・承認・tool実行・state・MCP版など重要事項を別の公式資料と照合する(Pass 2)。
- 図・コード・比較表を横断し、モデル/API/Host/SDK/製品の境界を確認する(Pass 3)。
- 全原稿を再生成・検証し、最終レビュー報告へ実際の結果と未確認を記録する。
月次、または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
- Direct Upload — 2026-09-06本文確認。
- Preview deployments — 本番とpreviewの分離、別名URL。
公開ヘッダーとMermaid
static/_headers がビルド時に site/_headers へコピーされ、Pagesが静的レスポンスへ適用します。CSP、nosniff、Referrer-Policy、frame制限等はこのファイルで管理します。将来Functionsを追加した場合、そのレスポンスには別途ヘッダー実装が必要です。
Mermaidは固定版を使い、読み込み・構文エラー時は図のソースと失敗表示を残します。CSPの外部script許可は固定された配布先へ絞っています。図のSVGに必要なstyle許可とJavaScriptのinline許可を混同しないでください。CSPの変更後は図と検索を再検証します。
Sources
- Headers — Custom headers / Harden security、更新2026-08-25、確認2026-09-06。
閲覧制限を設ける場合
現時点では匿名アクセスで本番HTMLを取得できました。CSPやrobotsは閲覧者の認証ではありません。閲覧者・許可グループが未指定のため今回Accessのアカウント設定は変更しません。
非公開化する場合は、まず許可する人・組織を決めます。その後以下のURLを漏れなく設定・検証します。
| URL範囲 | 設定・確認 |
|---|---|
| 本番 llm-engineering-guide.pages.dev | Pagesの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
- Preview deployments — Customize preview deployments access / Preview aliases、確認2026-09-06。
- Known issues — Enable Access on your pages.dev domain、更新2026-05-06、確認2026-09-06。
切り戻し
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
- Rollbacks — 更新2026-04-21、確認2026-09-06。