$ErrorActionPreference = 'Stop' function Read-Utf8([string]$Path) { [System.IO.File]::ReadAllText( (Join-Path (Join-Path $PSScriptRoot '..') $Path), [System.Text.Encoding]::UTF8 ) } function Assert-Contains { param([string]$Content, [string]$Expected, [string]$Message) if (-not $Content.Contains($Expected)) { throw $Message } } $page = Read-Utf8 'pages/family/f06-article-editor.vue' $catalog = Read-Utf8 'data/page-catalog.js' foreach ($expected in @( 'class="article-editor-page"', 'article-editor-state--${editorState}', ' {', 'ModulePageBackground', 'AppLoading', 'AppButton', 'border-image-source: url("/static/assets/modules/family/transparent/module-content-frame.png");', 'border-image-slice: 72 fill;', 'border-image-width: 64rpx;', 'border-image-repeat: stretch;' )) { Assert-Contains $page $expected "F06 dedicated editor contract missing: $expected" } foreach ($forbidden in @('