在 #3261(修 lint.yml 头部注释「三条 object-ui/* 规则」实为四条)的过程中发现,按 Prime Directive #10 单独记录,不夹带进那个 PR —— 那单的 PM 划了硬边界:只动 lint.yml 的注释 + 一个测试文件,而修这条要动到 .github/workflows/ 之外。
现象
#3261 修掉的是同一段注释的第一段。第三段里还有一个同类的手工维护数字,原样保留着:
.github/workflows/lint.yml:
# `--max-warnings` is deliberately not set: the 7,724 warnings repo-wide are 81%
# `no-explicit-any`, plus React Compiler rules the config downgrades on purpose.
# This gate is about errors.
而且它不止一份。scripts/check-lint-coverage.mjs:30 抄了同一个数字:
// (7,724 warnings repo-wide are dominated by `no-explicit-any`; see #2923).
为什么值得单独修
和 #3261 是同一个缺陷类,只是漂移得更快:仓库里每加一个 any、每新增一个包,7,724 和 81% 就更旧一点,而且没有任何东西会在它变旧时报警。两处副本还会各自独立地旧掉 —— 已经具备了 #3212 那种「同一个事实三个数字」的全部条件。
这个数字没有实际错的证据(我没有跑全仓 ESLint 去核对,那要几分钟且不在 #3261 的范围内);要修的是它注定会错这件事。
建议
论证本身不依赖精确整数 —— 它要说的是「warning 是一个已知的、成千上万条的历史欠账,主体是 no-explicit-any 和被刻意降级的 React Compiler 规则,所以这道门禁只管 error」。把两处都改成不点精确数的写法即可,量级信息(in the thousands / dominated by)完全保得住。
不建议加断言钉住这个数字:那要在测试里跑全仓 ESLint,分钟级,代价远超收益 —— 这一点与 #3261 的判断相反,那里的守卫是纯文本 + 读求值后的 flat config,毫秒级。
范围
.github/workflows/lint.yml(第三段注释)
scripts/check-lint-coverage.mjs:30
两处应一起改,否则只会从「两份一致但过期」变成「两份互相矛盾」。
Generated by Claude Code
在 #3261(修
lint.yml头部注释「三条object-ui/*规则」实为四条)的过程中发现,按 Prime Directive #10 单独记录,不夹带进那个 PR —— 那单的 PM 划了硬边界:只动lint.yml的注释 + 一个测试文件,而修这条要动到.github/workflows/之外。现象
#3261 修掉的是同一段注释的第一段。第三段里还有一个同类的手工维护数字,原样保留着:
.github/workflows/lint.yml:而且它不止一份。
scripts/check-lint-coverage.mjs:30抄了同一个数字:为什么值得单独修
和 #3261 是同一个缺陷类,只是漂移得更快:仓库里每加一个
any、每新增一个包,7,724和81%就更旧一点,而且没有任何东西会在它变旧时报警。两处副本还会各自独立地旧掉 —— 已经具备了 #3212 那种「同一个事实三个数字」的全部条件。这个数字没有实际错的证据(我没有跑全仓 ESLint 去核对,那要几分钟且不在 #3261 的范围内);要修的是它注定会错这件事。
建议
论证本身不依赖精确整数 —— 它要说的是「warning 是一个已知的、成千上万条的历史欠账,主体是
no-explicit-any和被刻意降级的 React Compiler 规则,所以这道门禁只管 error」。把两处都改成不点精确数的写法即可,量级信息(in the thousands / dominated by)完全保得住。不建议加断言钉住这个数字:那要在测试里跑全仓 ESLint,分钟级,代价远超收益 —— 这一点与 #3261 的判断相反,那里的守卫是纯文本 + 读求值后的 flat config,毫秒级。
范围
.github/workflows/lint.yml(第三段注释)scripts/check-lint-coverage.mjs:30两处应一起改,否则只会从「两份一致但过期」变成「两份互相矛盾」。
Generated by Claude Code