$ErrorActionPreference = 'Stop' $root = Split-Path -Parent $PSScriptRoot $list = Get-Content -LiteralPath (Join-Path $root 'pages/notification/n01-message-center.vue') -Raw -Encoding UTF8 $detail = Get-Content -LiteralPath (Join-Path $root 'pages/notification/n02-message-detail.vue') -Raw -Encoding UTF8 foreach ($token in @('unreadCount', '/pages/notification/n02-message-detail?id=', 'openNotice', ':action="unreadCount > 0')) { if (-not $list.Contains($token)) { throw "N01-N02 flow missing: $token" } } foreach ($token in @('noticeDetail', 'openNoticeTarget', 'markAsRead')) { if (-not $detail.Contains($token)) { throw "N02 business detail missing: $token" } } Write-Output 'N01-N02-MESSAGE-FLOW-CONTRACT PASS'