#!/usr/bin/env node /** * verify-5-capabilities.mjs — prove ALL FIVE capability levels actually render. * * ★ WHY: the card BUILD-DXMAPS-ALL-5-CAPS-WORKING-LOW-BUG was marked done with NO end-to-end check. * "Done is a passing test, not a field value" — this is that test. First run (2026-09-20) came back * 3/5: caps 1-3 clean, caps 4-5 failing on ONE shared bug (vue-i18n code 27), which is exactly the * kind of thing a field value hides and a sweep surfaces. * * ★ THE MODEL, grounded not remembered: capability = 5 - PROFILE_TIER, where PROFILE_TIER lives in * internal/plugin-gallery/discover.mjs: * nested-mfe-spa 0 · nested-elements-mfe 1 · monolithic 2 · parameterized 3 · single 4 * One representative bundle per level. REPS is reconciled against manifest.json at startup, so a * bundle whose declared type changes makes this gate FAIL LOUDLY rather than silently certify a * level it is no longer sampling — you no longer have to remember to update it by hand. * * ★ TWO MEASUREMENT TRAPS THIS ENCODES (both cost real debugging time): * - SHADOW DOM DOES NOT PIERCE. A cap-4/cap-5 composite mounts CHILD elements with their OWN shadow * roots, so a single-level querySelector reports a working canvas as absent. Hence the recursive * deep() walk, and hence "a canvas that HOLDS a GL context" rather than "a canvas exists". * - shadowRoot.textContent INCLUDES the injected