$ErrorActionPreference = 'Stop' $source = Get-Content 'pages/profile/m01-profile-home.vue' -Raw -Encoding UTF8 $required = @( 'profile-state--ready', 'profile-state--error', 'm01-profile-summary-card.png', 'brand-seal.png', 'auth-divider-knot.png', 'chevron-right.png', 'root-header-hall.png', 'a01-scroll-primary-v3.png', 'a01-icon-lock-v1.png', 'notice.png', 'AppButton', '/pages/profile/m02-edit-profile', '/pages/notification/n01-message-center', '/pages/profile/m03-security-settings', '/pages/profile/m06-help-center', '/pages/profile/m10-about-settings' ) foreach ($token in $required) { if (-not $source.Contains($token)) { throw "M01 missing contract token: $token" } } foreach ($forbidden in @('m01-profile-notice-card.png', 'm01-profile-menu-frame.png', 'g03-create-flow-panel.png', 'application-status-card.png', 'g06-search-input-wide.png')) { if ($source.Contains($forbidden)) { throw "M01 must not reuse opaque business asset: $forbidden" } } Write-Output 'M01-MODULE-BASELINE-CONTRACT PASS'