$ErrorActionPreference = 'Stop' $root = Split-Path $PSScriptRoot -Parent $page = [System.IO.File]::ReadAllText((Join-Path $root 'pages/profile/m01-profile-home.vue'), [System.Text.Encoding]::UTF8) foreach ($expected in @('grid-template-columns: 42rpx minmax(0, 1fr)','pointer-events: none')) { if (-not $page.Contains($expected)) { throw "M01 document-flow contract missing: $expected" } } if ($page -match '(?s)\.profile-hero__label\s*\{[^}]*position\s*:\s*(absolute|fixed|sticky)\s*;') { throw 'M01 profile hero label must use the hero grid flow' } Write-Output 'M01-DOCUMENT-FLOW-CONTRACT PASS'