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
The 2026-08-06 08:06Z hold set one condition: "#5278 落地后按选项 1 … 晋级入队", because the two issues share scripts/check-type-check-coverage.mjs and #5278 was in flight.
evaluate()still never compares them. The only reads of the derived count are :800 (pkg.excludesTests && pkg.testFiles > 0) and :820 (the "has a TEST_DEBT entry but no longer excludes its tests" branch). Neither asserts tests === testFiles. The two-sources-of-truth shape the finding describes is unchanged.
Option 1 as the filer recommended and the prior grader endorsed: delete the hand-written tests field and derive it from pkg.testFiles, which testCoverage() already computes on every run (sub-second, no build). Summary line and the note prose that cite "how many files are hidden" read the derived value instead.
Rationale for pre-selecting the direction rather than sending this to the decision box: options 2–4 were all argued down in the filing and none has a live advocate. Option 2 (hard-fail on mismatch) bills a green action — adding a clean test file — which contradicts #5278's own ruling that 改善不得制造记账 churn; option 3 (informational line) manufactures standing noise, and standing noise is how a gate gets ignored; option 4 (periodic re-measure) is the option #5278 already rejected. Option 1 is the only one that removes the drift by construction and it leaves less code than the status quo.
Scope note for the dev: the shape change touches all 19 TEST_DEBT entries plus the JSDoc typedef at :781 and the three unit-test fixtures at :1209 / :1259 / :1266 that construct testDebt entries with a tests key.
Not target:v17 — internal gate ledger, no shipped surface.
必答题(是否还有其它「闸门已算却手写」的数字):数据层此类已闭合;散文层三处弱实例(:7 的「66 of 77」、:250、:415)是历史陈述而非现时声明、无逻辑读取、且锚定在具体 sweep sha 上——采纳 dev 的判断,不立单。若将来它们开始误导,最便宜的修法是删句中裸总数,而不是加机制。
Activity
os-zhuang commentedon Aug 6, 2026
存量裁决轮(维护者 2026-08-06 委托,session_01LeEfA7CFwbJb7JJmXm2KM3):维持持有,补两条关系记录——① 本单未被 #5278 覆盖(其派发面框定在 errors 棘轮 + 数字更新;
evaluate()至今不比对 tests 与 testFiles,删手写 tests 字段属形状变更、明确出其范围);② 但两单同文件(check-type-check-coverage.mjs)且 #5278 在飞,现在入队必然撞车。重启条件:#5278 落地后按选项 1(删手写 tests 字段、改由闸门实时导出 pkg.testFiles,按构造消除漂移)晋级入队。Generated by Claude Code
claude commentedon Aug 7, 2026
Findings triage (#4949 discipline): promoted —
finding→pm:queue.domain:spec-toolingunchanged.Restart condition fired
The 2026-08-06 08:06Z hold set one condition: "#5278 落地后按选项 1 … 晋级入队", because the two issues share
scripts/check-type-check-coverage.mjsand #5278 was in flight.origin/mainas5e1ea65— "ci(dx): DEBT/TEST_DEBT 台账数字改为每次重测的真棘轮 —— 实测 > 记录即红 ([finding] DEBT ledger counts in check-type-check-coverage.mjs drift silently — @objectstack/metadata-protocol records 28, actually reports 63 #5278) (ci(dx): DEBT/TEST_DEBT 台账数字改为每次重测的真棘轮 —— 实测 > 记录即红 (#5278) #5827)".origin/main@ee3bde1).Stale-premise check — the finding survives #5278 intact
Read off
origin/main, not off the issue body:tests:numbers are still there, 19 entries' worth (:419,:426,:450,:462,:482,:493,:514,:523,:534–:539,:541,:549–:552). [finding] DEBT ledger counts in check-type-check-coverage.mjs drift silently — @objectstack/metadata-protocol records 28, actually reports 63 #5278 re-measurederrors; it did not remove or reconciletests.evaluate()still never compares them. The only reads of the derived count are:800(pkg.excludesTests && pkg.testFiles > 0) and:820(the "has a TEST_DEBT entry but no longer excludes its tests" branch). Neither assertstests === testFiles. The two-sources-of-truth shape the finding describes is unchanged.Direction
Option 1 as the filer recommended and the prior grader endorsed: delete the hand-written
testsfield and derive it frompkg.testFiles, whichtestCoverage()already computes on every run (sub-second, no build). Summary line and thenoteprose that cite "how many files are hidden" read the derived value instead.Rationale for pre-selecting the direction rather than sending this to the decision box: options 2–4 were all argued down in the filing and none has a live advocate. Option 2 (hard-fail on mismatch) bills a green action — adding a clean test file — which contradicts #5278's own ruling that 改善不得制造记账 churn; option 3 (informational line) manufactures standing noise, and standing noise is how a gate gets ignored; option 4 (periodic re-measure) is the option #5278 already rejected. Option 1 is the only one that removes the drift by construction and it leaves less code than the status quo.
Scope note for the dev: the shape change touches all 19 TEST_DEBT entries plus the JSDoc typedef at
:781and the three unit-test fixtures at:1209/:1259/:1266that constructtestDebtentries with atestskey.Not
target:v17— internal gate ledger, no shipped surface.本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
os-zhuang commentedon Aug 7, 2026
认领:PM 循环第 5 轮(spec-tooling 车道,座位登记 #6018;分诊座位已核 #5278 restart condition 触发并晋级)
会话:
session_014wsZeReNTqiceBfLb5Pyf5分支:
claude/issue-5826-test-debt-tests-derivedWorktree:
objectstack-issue-5826域:
domain:spec-tooling文件面:
scripts/check-type-check-coverage.mjs(tests字段改由闸门实时导出)+ 其--self-test用例 +.changeset/*.md或 skip 标签(按发布面实测定档)。⛔ 不碰任何包源码/tsconfig/typecheck 脚本(不做毕业)、不碰packages/spec/scripts/**(本轮四单并行其中)。(越界即停,报告说明)定价输入(#5278 / PR #5827 已于 03:5xZ 合入,机制已变):①
errors现已是真棘轮(每次--re-measure重测),本单处理的是另一个手写数字tests;② #5827 已把 12 个漂移的tests更新到实测值,所以今天的差值可能是 0——这不改变本单的价值(机制未变,明天加一个测试文件就又漂),但正文的实测表已过期,⛔ 不沿用,以现状重量;③ #5827 新增了五条 Option A 记档余量(objectql/rest/lint/service-storage/mcp 的errors记录值高于实测),改tests时不得触碰那些errors值与其 note。Generated by Claude Code
os-zhuang commentedon Aug 7, 2026
验收:ACCEPT → PR #6196(转 ready 入队)
亲核:21 检查零非绿(ESLint / TypeScript Type Check / Check Changeset 均 success——首跑那次是标签时序竞态,重投即翻绿);单文件改动,零越界,#5827 的五条 Option A 余量与全部
errors值/note 未被触碰。三点值得记:
tests键的条目,而不是把手写值与实测值对比判红——理由说得准:比较会让一个干净的新测试文件也要付一次记账税,那正是 [finding] DEBT ledger counts in check-type-check-coverage.mjs drift silently — @objectstack/metadata-protocol records 28, actually reports 63 #5278 裁决否掉的形状(「an improvement must not have to pay a bookkeeping toll to land」)。删字段让漂移按构造消失,不是靠巡查。find交叉核对)——这是「机制没变、明天就再漂」最好的证据,也说明本单不因 ci(dx): DEBT/TEST_DEBT 台账数字改为每次重测的真棘轮 —— 实测 > 记录即红 (#5278) #5827 刷过一次而失去价值。tests: 130后门红,且两种状态下导出总数都是 543——证明被恢复的那份副本喂不到任何逻辑,即它从来就是纯描述性的第二事实源。必答题(是否还有其它「闸门已算却手写」的数字):数据层此类已闭合;散文层三处弱实例(
:7的「66 of 77」、:250、:415)是历史陈述而非现时声明、无逻辑读取、且锚定在具体 sweep sha 上——采纳 dev 的判断,不立单。若将来它们开始误导,最便宜的修法是删句中裸总数,而不是加机制。Generated by Claude Code