• #cloudflare
  • #deploy
  • #powershell
  • #validation

結論

scripts\measure-deploy.ps1に追加されたPre-deploy Validationは、コンテンツファイルのfrontmatterでpath:フィールドに/prompts/が含まれている場合を検出し、デプロイを阻止するガードレール機能である。

背景

過去に/prompts/パスでルーティングやビルドの問題が発生したため、防止する仕組みとして追加された。

追加されたバリデーション

28〜49行目に以下のPre-deploy Validationが追加されている。

# Check for problematic path patterns in content files
Get-ChildItem -Path "apps/web/content" -Filter "*.md" -Recurse | ForEach-Object {
    $content = Get-Content $_.FullName -Raw -ErrorAction SilentlyContinue
    if ($content -match 'path:\s*["\x27]?(/[^"\x27\n]*\/prompts\/[^"\x27\n]*)') {
        $validationErrors += "  - $($_.Name): path contains /prompts/ → $($Matches[1])"
    }
}

処理の流れ

  1. apps/web/content配下の全.mdファイルを再帰的に取得
  2. 各ファイルの内容を読み込み
  3. 正規表現でpath:フィールドに/prompts/が含まれるかチェック
  4. 問題が見つかった場合、エラーメッセージを収集
  5. エラーがあればexit 1でデプロイを中断

エラー発生時の出力

[ERROR] Pre-deploy validation failed!
The following files have problematic path fields:
  - article.md: path contains /prompts/ → /prompts/example
Fix these paths before deploying (remove /prompts/ from path field)

まとめ

このバリデーションにより、誤ったパス設定のまま本番環境にデプロイすることを防止できる。デプロイ前の自動チェックとして機能し、問題のある記事を事前に検出する。