doxa-maps/plugin-designs/research-map-plus-grid/scripts
Doxa Maps 199cc61a19 check:no-free-identifiers reads .js modules, which is how the NEUTRAL P1 got past it
The P1 that emptied Big Picture's Religion and Region charts was a free identifier:
useDashboardAggregations.js read NEUTRAL five times and never imported it. This gate exists for exactly
that class and did not fire, because it walked only .vue files. A bundle compiles .js and .vue alike,
so the gate was seeing half of what ships.

Two things were needed, and the first attempt got only one of them. Adding .js to the walker is not
enough: a .js module was then handed to Vue's SFC parser, which found no <script>, and acorn reported
"Unexpected token (2:1)" — the second line of the file's own doc comment. A .js file is its own script
block, so it now parses directly, with offset 0 so reported line numbers are the file's real ones.

VERIFIED BOTH DIRECTIONS, which is the only way to know a gate works:
  - clean main: rc=0, no false positives
  - NEUTRAL import removed again: rc=1, naming useDashboardAggregations.js:173 and :216
So it would have caught the P1 before it reached the Driver's console.

Blast radius measured on main first: exactly 2 findings, both false — DOMException and
createImageBitmap, standard browser globals missing from the known-globals list. Added. No other
owner's file is implicated, and nothing was changed outside this gate.
2026-09-27 06:42:55 +00:00
..
check-composite-locale-leaks.mjs Five more gate scripts read the tree's name from the build config 2026-09-25 16:25:22 +00:00
check-filter-multivalue.mjs Kit 4d-1: the shared search is declared once, which landing 4a meant to do and did not finish 2026-09-27 06:04:09 +00:00
check-hover-channel.mjs D3: the bus can point at a record without choosing it 2026-09-27 02:17:35 +00:00
check-i18n-keys-exist.mjs check:i18n-keys-exist was blind to a translator that arrives from a composable 2026-09-27 04:14:14 +00:00
check-linked-vocabulary.mjs Three browser gates stop passing hollow or racing (rega's gates:post run at ded4b3c1) 2026-09-26 13:35:57 +00:00
check-no-free-identifiers.mjs check:no-free-identifiers reads .js modules, which is how the NEUTRAL P1 got past it 2026-09-27 06:42:55 +00:00
check-ui-strings-have-keys.mjs A gate for English typed into a template, so the ground we have won stays won 2026-09-26 13:04:15 +00:00
ui-strings-baseline.json ui-strings baseline: gospel's resources-map types the pin note's first sentence, which now has a key 2026-09-26 13:04:16 +00:00