You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
这道门的自述把风险写得很清楚:「An unchecked test can assert a contract the compiler never checked, and then read as evidence that the contract holds」(:333-337)。对「按 glob 排除测试、测试放 src/」的包它成立;对「按目录排除、测试放 test/」的包它静默失效。而后者恰好是本仓唯一一个这样布局的包 —— 全仓扫一遍(遍历每个 package.json 所在目录,比较 src/ 内外的 *.test.ts(x) 计数),只有 examples/schema-catalog 命中:in_src=0 outside_src=5。
Why promoted rather than held: the card itself invites re-grading by the false-green family precedent, and the precedent governs — #3288 / #3378 ("ran zero tests, reported green") were both treated as first-class defects, and this is the same shape on the type-check side: the gate's own stated risk ("an unchecked test can assert a contract the compiler never checked, and then read as evidence that the contract holds") is currently true of the one package laid out this way. A scoped tooling/gate fix with named lines is auto-queue class; the "victim is CI strength, not users" argument is exactly what the family precedent already rejected.
Premise check on origin/main @ cdc0e44 (all read, not inferred):
examples/schema-catalog/tsconfig.json — "include": ["src/**/*"], "exclude": [..., "test"] verbatim; no tsconfig.test.json in the package;
scripts/check-type-check-coverage.mjs:180 — testFiles: countTestFiles(resolve(root, dir, "src")) (src-only recursion) confirmed; :182buildExcludesTests is glob-only (/\*\.test\./), blind to directory-form excludes; :296testsCovered and :299if (!pkg.hasScript || pkg.testFiles === 0) continue; both confirmed — the two independent blind spots stack exactly as described.
One count drifted: test/ holds 4*.test.tsx files on today's main (card says 5) — immaterial, in_src=0 / outside_src=4 still never enters the gate's denominator.
Dedup: repo-scoped search on check-type-check-coverage / countTestFiles / type-check coverage — no open issue or PR overlaps; #3900 (discovery site) explicitly excluded this from its scope by maintainer framing; objectstack#4118 is the TEST_DEBT ledger, a consumer of this gate's output, not a fix of it.
The card's three-part suggestion (recurse from package root; recognise directory-form excludes; then wire tsconfig.test.json for this package, entering TEST_DEBT with a measured count if red) is a complete acceptance sketch — dispatchable as-is.
Activity
os-zhuang commentedon Aug 9, 2026
Findings triage — PROMOTED:
finding→pm:queue(whole-repo seat, no domain label).Why promoted rather than held: the card itself invites re-grading by the false-green family precedent, and the precedent governs — #3288 / #3378 ("ran zero tests, reported green") were both treated as first-class defects, and this is the same shape on the type-check side: the gate's own stated risk ("an unchecked test can assert a contract the compiler never checked, and then read as evidence that the contract holds") is currently true of the one package laid out this way. A scoped tooling/gate fix with named lines is auto-queue class; the "victim is CI strength, not users" argument is exactly what the family precedent already rejected.
Premise check on
origin/main@cdc0e44(all read, not inferred):examples/schema-catalog/tsconfig.json—"include": ["src/**/*"],"exclude": [..., "test"]verbatim; notsconfig.test.jsonin the package;scripts/check-type-check-coverage.mjs:180—testFiles: countTestFiles(resolve(root, dir, "src"))(src-only recursion) confirmed;:182buildExcludesTestsis glob-only (/\*\.test\./), blind to directory-form excludes;:296testsCoveredand:299if (!pkg.hasScript || pkg.testFiles === 0) continue;both confirmed — the two independent blind spots stack exactly as described.test/holds 4*.test.tsxfiles on today's main (card says 5) — immaterial,in_src=0 / outside_src=4still never enters the gate's denominator.Dedup: repo-scoped search on
check-type-check-coverage/countTestFiles/ type-check coverage — no open issue or PR overlaps; #3900 (discovery site) explicitly excluded this from its scope by maintainer framing; objectstack#4118 is the TEST_DEBT ledger, a consumer of this gate's output, not a fix of it.The card's three-part suggestion (recurse from package root; recognise directory-form excludes; then wire
tsconfig.test.jsonfor this package, entering TEST_DEBT with a measured count if red) is a complete acceptance sketch — dispatchable as-is.本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
yinlianghui commentedon Aug 9, 2026
PM 分诊轮(session_01GTRjn8xBqp75dk7kFupVRt):
finding→ 晋级pm:queue。理由:门缺陷且两个独立原因已锚定(countTestFiles 只递归 src/ + buildExcludesTests 认不出目录形式排除),examples/schema-catalog 的 5 个测试文件零 tsc 覆盖而门报绿 —— PR3973/3984 的钉子正住在这个盲区里,修好后它们获得编译期保护。范围:①check-type-check-coverage.mjs 两处判据修正;②给 examples/schema-catalog 补 test 覆盖(tsconfig.test.json 或 include 调整);③反向钉(人为造一个不被覆盖的测试目录,门必须红)。全仓扫描确认孤例的结论沿用 dev 报告。Generated by Claude Code
yinlianghui commentedon Aug 9, 2026
🔒 认领(objectui 分片 PM,session_01GTRjn8xBqp75dk7kFupVRt,批次 6)。分支
claude/issue-3968-typecheck-coverage-gate;范围按分诊评论:check-type-check-coverage.mjs 两处判据修正 + examples/schema-catalog 的 test 目录纳入 tsc 覆盖 + 反向钉(人为造未覆盖目录门必须红)。文件面:scripts/check-type-check-coverage.mjs+examples/schema-catalog/tsconfig*+ 可能的 package.json script;与同批 #3965(同目录但只碰 src/schemas JSON 与 div.tsx)文件不相交,⛔ 不动任何src/schemas/*.json。Generated by Claude Code
fix(scripts): decide test type-check coverage from the resolved tscon…
test(scripts): console-starter is the second package with tests outsi…
fix(console-starter): close the vite alias table over its real import…
test(core,app-shell): type-check the whole test trees, retire both na…