Skip to content

check-lint-coverage.mjs 的文件头注释是 #3261 那个「三条 object-ui/* 规则」错数的第三份副本(配置里是四条) #3279

Description

@xuyushun441-sys

在修 #3274(PR #3278,去掉 lint.yml 与 scripts/check-lint-coverage.mjs 里那个手工维护的 warning 数字)时,在同一个文件里发现的另一处缺陷。按 Prime Directive #10 单独记录,不夹带进那个 PR —— #3274 的 PM 划了明确边界:那单只处理 warning 计数这一个事实,而这条是另一个数字、另一个事实(object-ui/* error 规则的条数),正是 #3261 的主题。

现象

scripts/check-lint-coverage.mjs:11-14(文件头 docblock):

 * The stakes are concrete: `eslint.config.js` sets three `object-ui/*` rules to
 * `error` specifically so a new violation fails CI (ADR-0054 Phase 5, #2879,
 * and the objectql.ts type-discipline ratchet). Those ratchets are worthless in
 * a package that never runs ESLint.

这是 #3261 修掉的那句话的逐字副本:同样手工点数「three」,同样括号里手工列举来源(而且同样短了一个)。#3261 只改了 .github/workflows/lint.yml,这一份原样留着。

它现在就是错的(与 #3274 不同)

#3274 的那个 warning 数字没有证据说它今天是错的,修的是「它注定会错」。这一条不一样 —— 它已经错了,和 #3261 当初错的方式一模一样。eslint.config.js 里设成 error 的 object-ui/* 规则有四条:

行 规则 注释里给的来源 被这句话列到了吗
59 object-ui/no-synthetic-event-trigger ADR-0054 Phase 5 ratchet (C1) ✅
65 object-ui/no-try-catch-around-hook objectui#2879 ratchet ✅
98 object-ui/no-dynamic-import-in-test-hook 测试纪律(scoped 到测试文件) ❌ 漏了
111 object-ui/no-inline-spec-config objectql.ts type-discipline ratchet ✅

漏掉的正是 no-dynamic-import-in-test-hook —— 和 #3261 里漏掉的是同一条。

核对方式(四条的 severity 全是 error):

grep -n object-ui/ eslint.config.js

#3273 新增的 scripts/__tests__/lint-workflow.test.ts 会读求值后的 flat config 得到同一个答案,只是它只看 lint.yml,看不到这个文件。

为什么值得单独修

建议

改成 #3261 已经确立、且 lint.yml 和 ci-cd-pipeline.md 都在用的泛化写法:「eslint.config.js 里设成 error 的那些 object-ui/* 规则」—— 永远为真,无需维护;每条规则自己的来源(ADR/issue)就写在 eslint.config.js 里它旁边,那才是唯一诚实的清单。

顺带值得考虑(留给处理这单的人判断,不预设结论):scripts/__tests__/lint-workflow.test.ts 的守卫目前只扫 lint.yml。它的两条断言(不得点数、不得列举规则名)已经把判定逻辑写好了,把扫描面扩到这个文件基本是把路径参数化;这样第四份副本长出来时会被机械挡住,而不是靠下一次偶然发现。成本仍是毫秒级(纯文本 + 一次已有的 flat config 求值),与 #3274 里被否掉的「跑全仓 ESLint 钉住 warning 数」不是一个量级。

范围

  • scripts/check-lint-coverage.mjs(文件头 docblock,第 11-14 行)
  • 可选:scripts/__tests__/lint-workflow.test.ts(把守卫扩到这个文件)

前情

Activity

  1. self-assigned this
    on Aug 8, 2026
  2. yinlianghui commented on Aug 8, 2026

    @yinlianghui
    Collaborator

    🔒 认领(objectui 分片 PM,session_01GTRjn8xBqp75dk7kFupVRt)

    即将派发 os-dev 实施。


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions