$ErrorActionPreference = 'Stop' function Read-Utf8([string]$Path) { [System.IO.File]::ReadAllText((Join-Path (Join-Path $PSScriptRoot '..') $Path), [System.Text.Encoding]::UTF8) } function Assert-Contains([string]$Content, [string]$Expected, [string]$Message) { if (-not $Content.Contains($Expected)) { throw $Message } } $page = Read-Utf8 'pages/family/f10-video-list.vue' $catalog = Read-Utf8 'data/page-catalog.js' foreach ($expected in @( 'class="video-status-page"', 'class="video-status-card"', 'class="video-return-action"', 'const returnToFamily = () =>', '/pages/family/f01-family-feed', 'ModulePageBackground', 'PageHeader', 'AppButton' )) { Assert-Contains $page $expected "F10 contract missing: $expected" } foreach ($forbidden in @('