結論
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])"
}
}
処理の流れ
apps/web/content配下の全.mdファイルを再帰的に取得- 各ファイルの内容を読み込み
- 正規表現で
path:フィールドに/prompts/が含まれるかチェック - 問題が見つかった場合、エラーメッセージを収集
- エラーがあれば
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)
まとめ
このバリデーションにより、誤ったパス設定のまま本番環境にデプロイすることを防止できる。デプロイ前の自動チェックとして機能し、問題のある記事を事前に検出する。