$ErrorActionPreference = 'Stop' $page = Get-Content -Raw 'pages/genealogy/g01-my-genealogies.vue' function Assert-Contains([string]$Content, [string]$Pattern, [string]$Message) { if (-not $Content.Contains($Pattern)) { throw $Message } } Assert-Contains $page 'v-for="item in visibleShortcuts"' 'G01 must render the membership-filtered shortcut list' Assert-Contains $page '{{ currentRoleLabel }}' 'G01 must render the membership-derived role label' Assert-Contains $page 'currentGenealogy.value?.membership === "created"' 'G01 must derive owner state from membership' Assert-Contains $page 'item.key !== "applications"' 'G01 must remove application review for joined members' Write-Output 'G01-ROLE-SHORTCUT-CONTRACT PASS'