From 3d502830e237de4135071ac7b3ddc44bc4a612c7 Mon Sep 17 00:00:00 2001 From: Michal Ferber Date: Sun, 6 Sep 2026 06:56:40 +0000 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20correct=20the=20xss-fixture=20ignore?= =?UTF-8?q?=20comment=20(DS=20=C2=A715=20trap=209)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The rename does not make the test go green with zero findings — it swallows the fixture and both assertions go red. Re-vendored from tgwab-standards templates/eslint.config.js after #131. Refs MichalAFerber/tgwab-standards#132 Fleet: grok Agent: grok Ticket: MichalAFerber/tgwab-standards#132 --- eslint.config.js | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index 4513865..13a572c 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -82,9 +82,31 @@ export default [ // DO NOT rename the test's synthetic lint path to match this pattern. The // test lints the fixture's TEXT under `src/__xss-lint-fixture__.js`; the // leading and trailing underscores are why this ignore does not swallow - // it. Rename it to `src/xss-lint-fixture.js` and the test goes green - // reporting zero findings — a control that passes by not running, which - // is the exact failure this fixture exists to prevent. + // it. Rename it to `src/xss-lint-fixture.js` and this ignore swallows the + // fixture: ESLint returns one "File ignored" warning and no findings, so + // `flaggedCases()` is `[]` and BOTH assertions go RED — `toEqual([case1 + // ..case5])` and `toContain('case1')`. THE TEST FAILS LOUDLY. Measured + // 2026-09-05 on eslint@10.10.0 against this config: the underscored path + // reports 5 cases and both assertions green; the renamed path reports 0. + // + // THIS COMMENT SAID "the test goes green reporting zero findings" UNTIL + // 2026-09-05, and shipped that to eleven adopters — counted in + // `eslint.config.{js,mjs}` at each default branch, which is a different + // population from the fixture generations. The kit's own test + // file had already been corrected; this half had not, so the two halves + // of one kit contradicted each other and the wrong half was the one every + // adopter reads. The reason to keep the underscores is that the rename + // DESTROYS THE MEASUREMENT, not that it hides the failure — a control + // that passed by not running is the failure this fixture exists to + // prevent, and this one does not do that. Re-derive before editing this + // paragraph; it has been wrong once. (DS §15 trap 9.) + // + // That outcome is WHOLE ADOPTION — a repo carrying this config, so this + // ignore is present. A repo that merged the §15 blocks into its own + // config need not have it, and there the rename changes nothing: the run + // still reports 5 and still passes. `xss-lint-fixture.test.js` carries + // the full treatment of both shapes. Read which one you are in before + // concluding anything from a rename. '**/xss-lint-fixture.js', ], }, From 859fabcb2576706948beaf5c39e3d2ece0c0d789 Mon Sep 17 00:00:00 2001 From: Michal Ferber Date: Sun, 6 Sep 2026 04:05:36 -0400 Subject: [PATCH 2/2] eslint.config: cite the version this repo actually pins Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01YCuqgLNmW73GV8ocz7XTLQ --- eslint.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eslint.config.js b/eslint.config.js index 13a572c..ef114e6 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -86,7 +86,7 @@ export default [ // fixture: ESLint returns one "File ignored" warning and no findings, so // `flaggedCases()` is `[]` and BOTH assertions go RED — `toEqual([case1 // ..case5])` and `toContain('case1')`. THE TEST FAILS LOUDLY. Measured - // 2026-09-05 on eslint@10.10.0 against this config: the underscored path + // 2026-09-05 on eslint@10.9.1 against this config: the underscored path // reports 5 cases and both assertions green; the renamed path reports 0. // // THIS COMMENT SAID "the test goes green reporting zero findings" UNTIL