feat(判据): §16 本身变成判据 —— 判据目录里的"未覆盖/未验/已知缺口"声明必须在余额里有对应的一笔

pi 2026-09-14:§16 一直是"靠记得问"的纪律,按 §15 它该有判据;这是同一形状的**第五次**,
这次落在规则自己身上。

新判据 `test/debt-visibility.test.mjs`(三支,均已变异验证):

1. **出现次数必须与登记一致**:某文件里新多出一处边界声明 ⇒ 红,
   报错按 §14 写「正确修法(先补一笔余额,再改次数)」与
   「最常见的错误修法(只把数字调大/把声明删掉)」。变异:给 harmony-logic 加一处 ⇒ 红。
2. **每一笔余额必须带到期前提与位置** ⇒ 变异:清空 static-criteria 的 due ⇒ 红
   (「那不是欠账,是"我们知道"」)。
3. **有边界声明的文件必须被某笔余额的 where 引用**(两处挂钩,不是各写各的)。

**自指豁免**(按文件 + 理由):本文件**定义**了那套措辞,用自己定义的词表数自己是无意义的
—— 而且它**第一次跑就把自己抓出来了**(11 处),证明计数是活的,不是走过场。

顺带把 `static-criteria` / `observability-output` 的 `where` 与具体文件挂钩(5 个静态判据文件)。
This commit is contained in:
2026-09-14 17:38:33 +08:00
parent 6eef1fd91c
commit d34342b49b
3 changed files with 93 additions and 3 deletions

View File

@ -10,8 +10,8 @@
{
"id": "static-criteria",
"count": 5,
"due": "本工作区能装、能点设备(探针三值转 true 时自动变红);**调用点出现时**判据要同时判「调用点不许自己再换算一次 px→档」——否则计数转绿而映射被绕过(直接传算好的档位),映射那条行为判据照样全绿、钉了个没人走的路(pi 2026-09-14 §3)",
"where": "client/electron/test/run-all.mjs 的 STATIC_ONLY"
"due": "本工作区能装、能点设备(探针三值转 true 时自动变红)",
"where": "client/electron/test/run-all.mjs 的 STATIC_ONLY(test/harmony-nav.test.mjs、test/harmony-appearance.test.mjs、test/harmony-logic.test.mjs、test/cross-client-theme.test.mjs、test/appearance-defaults.test.mjs)"
},
{
"id": "mails-status-derived",
@ -29,7 +29,7 @@
"id": "observability-output",
"count": 1,
"due": "页面层(MainPage.ets)接上「读 presetSubstitutedFrom 并打一行日志」时;那一步同时补判据『读侧恰好出现 1 次且在日志调用里』",
"where": "尚无判据 —— 这正是欠账的一部分(P6 第 1、2 步动 MainPage.ets 时一起做)"
"where": "尚无判据 —— 这正是欠账的一部分(P6 第 1、2 步动 MainPage.ets 时一起做);形态判据在位:test/harmony-appearance.test.mjs(bgBlur 消费侧计数)"
},
{
"id": "unknown-preset-approval",