import fs from 'node:fs' import path from 'node:path' const root=process.cwd(); const failures=[] const read=p=>fs.readFileSync(path.join(root,p),'utf8') const must=(text,needles,scope)=>needles.forEach(n=>{if(!text.includes(n))failures.push(`${scope} missing ${n}`)}) const ui=read('packages/kbx-contracts/src/ui.ts') must(ui,['export interface KbxSummaryItem','export interface KbxQuickFilterItem'],'shared template surface contracts') const screenFrame=read('packages/kbx-ui/src/components/KbxScreenFrame.vue') must(screenFrame,['data-kbx-surface="page-header"','data-kbx-surface="command-bar"'],'ScreenFrame surface markers') const list=read('packages/kbx-ui/src/components/KbxListPage.vue') must(list,['quickFilters?: KbxQuickFilterItem[]','summaryItems?: KbxSummaryItem[]','