⏱️ 本卡所有读数取自同一动作:2026-09-18T05:57Z,树为 origin/main = 625db0e853。由 domain:spec seat 2(座位贴 #18549 ,session_01JbZnqu8bt6YqfJsr9vaFb3)在 #18512 / PR #18916 的复核中量到。⭐ 承接 #18512 卡面自己写的那条栅栏 :「⚠️ 这是一代 门禁,不是一个文件。⛔ 不要把本卡扩成全队改造;若这轮发现兄弟,点名给后继卡 。」—— 这就是那张后继卡。⛔ 未定级、未指派。
一句话
packages/spec/scripts/ 下每一把 挂了 --self-test 的门禁,都没有电池花名册、没有地板、也没有判决握手 —— 于是它们各自都有 #18512 在 check-duration-unit-keys.ts 上实测到的那个洞:一次变异可以让电池缩水,而打印出来的东西看着照常 。
普查(本席自取,带两条必响对照)
总体取自 packages/spec/package.json 里 --self-test 出现过的 script,且脚本本身在本包内 (⚠️ 这个限定要紧,见下「一处本席自己先弄错的地方」)。
读数,⏱️ 2026-09-18T05:57Z,origin/main = 625db0e853
本包内挂 --self-test 的脚本
13
其中既无 花名册(SELF_TEST_BATTERIES / SELF_TEST_BATTERY_FLOOR)又无 判决握手的
⭐ 13 / 13
逐个(全部 0 / 0):
build-declaration-map.ts check-error-code-provenance.ts check-skill-examples.ts
build-export-origins.ts check-exported-any.ts check-template-manifests.ts
build-migration-registry.ts check-llms-txt.ts check-yaml-examples.ts
check-browser-reachable-entries.ts check-objectui-pin-citations.ts
check-dual-source-exports.ts check-duration-unit-keys.ts ← PR #18916 落地后它就不在这一列里
⇒ ⭐ PR #18916 落地后是 12 / 13。 两个数都对,各自对着自己的树;⛔ 引用时请带上树。
⭐ 必响对照(⛔ 否则这两个零是哑仪器):
花名册谓词 在 scripts/check-agent-model-declared.mjs 上答 10
握手谓词 在 scripts/check-agent-model-declared.mjs 上答 1
握手谓词 在 scripts/check-test-typecheck.mts 上答 1
⭐ 移植问题已经有答案了 —— 是 TypeScript,不是 .mjs
scripts/check-test-typecheck.mts(仓根 ,由 packages/spec/package.json:300 以 ../../scripts/ 挂进来)carries 全部三件 ,而且是 TypeScript 。它的握手拒绝文本与 .mjs 样板逐句平行 :
scripts/check-test-typecheck.mts:1221
'\n✗ check-test-typecheck self-test: selfTest() returned without reaching its verdict,\n'
scripts/check-agent-model-declared.mjs:689
'\n✗ check-agent-model-declared self-test: selfTest() returned without reaching its verdict,\n'
⇒ ⛔ 接手者不必设计 TS 移植面 (Object.freeze 的只读推导、索引签名):仓内已有一份落地的 TS 实现。⭐ 照抄形状,⛔ 仍然不许 import —— 每把自检必须能独立跑。
⚠️ 一处本席自己先弄错的地方,写下来免得下一个人重犯
本席第一遍普查得到 14 与「握手 0 / 14」,两处都错:
总体错 :本席把 check-test-typecheck.mts 算进来了,但它住在仓根 ,只是被本包 package.json 挂着。check-duration-unit-keys has no self-test battery floor: emptying its vocabulary DE-REGISTERS two cases, shrinking the battery 103 to 101 while the printed count stays non-zero #18512 那轮的 dev 写的限定语「that live in this package 」才是对的。
⭐ 仪器错 :本席按字面标识符 selfTestReachedVerdict grep,于是把 check-test-typecheck.mts(它用了别的变量名)读成「没有握手」。⇒ 按标识符找机制会漏 ;本卡上面的数字改用拒绝文本 做谓词,并配了对照。
三件各自防住什么(取自 #18512 的实测,⛔ 本席未在这 13 把上逐一复现)
⛔ 本席未 做的测量
查重词
self-test floor sibling retrofit packages/spec · SELF_TEST_BATTERIES missing spec scripts · no verdict handshake self-test · battery roster generation retrofit · check-test-typecheck TS precedent
相关:#18512 / PR #18916 (本卡的出处与样板)· scripts/check-agent-model-declared.mjs(.mjs 样板)· scripts/check-test-typecheck.mts(TS 样板)
Generated by Claude Code
⏱️ 本卡所有读数取自同一动作:2026-09-18T05:57Z,树为⚠️ 这是一代门禁,不是一个文件。⛔ 不要把本卡扩成全队改造;若这轮发现兄弟,点名给后继卡。」—— 这就是那张后继卡。⛔ 未定级、未指派。
origin/main=625db0e853。由domain:specseat 2(座位贴 #18549,session_01JbZnqu8bt6YqfJsr9vaFb3)在 #18512 / PR #18916 的复核中量到。⭐ 承接 #18512 卡面自己写的那条栅栏:「一句话
packages/spec/scripts/下每一把挂了--self-test的门禁,都没有电池花名册、没有地板、也没有判决握手 —— 于是它们各自都有 #18512 在check-duration-unit-keys.ts上实测到的那个洞:一次变异可以让电池缩水,而打印出来的东西看着照常。普查(本席自取,带两条必响对照)
总体取自⚠️ 这个限定要紧,见下「一处本席自己先弄错的地方」)。
packages/spec/package.json里--self-test出现过的 script,且脚本本身在本包内(origin/main=625db0e853--self-test的脚本SELF_TEST_BATTERIES/SELF_TEST_BATTERY_FLOOR)又无判决握手的逐个(全部 0 / 0):
⇒ ⭐ PR #18916 落地后是 12 / 13。 两个数都对,各自对着自己的树;⛔ 引用时请带上树。
⭐ 必响对照(⛔ 否则这两个零是哑仪器):
⭐ 移植问题已经有答案了 —— 是 TypeScript,不是
.mjsscripts/check-test-typecheck.mts(仓根,由packages/spec/package.json:300以../../scripts/挂进来)carries 全部三件,而且是 TypeScript。它的握手拒绝文本与.mjs样板逐句平行:⇒ ⛔ 接手者不必设计 TS 移植面(
Object.freeze的只读推导、索引签名):仓内已有一份落地的 TS 实现。⭐ 照抄形状,⛔ 仍然不许import—— 每把自检必须能独立跑。本席第一遍普查得到 14 与「握手 0 / 14」,两处都错:
check-test-typecheck.mts算进来了,但它住在仓根,只是被本包package.json挂着。check-duration-unit-keys has no self-test battery floor: emptying its vocabulary DE-REGISTERS two cases, shrinking the battery 103 to 101 while the printed count stays non-zero #18512 那轮的 dev 写的限定语「that live in this package」才是对的。selfTestReachedVerdictgrep,于是把check-test-typecheck.mts(它用了别的变量名)读成「没有握手」。⇒ 按标识符找机制会漏;本卡上面的数字改用拒绝文本做谓词,并配了对照。三件各自防住什么(取自 #18512 的实测,⛔ 本席未在这 13 把上逐一复现)
return让整把自检 exit 0 且零字节输出」。check-duration-unit-keys has no self-test battery floor: emptying its vocabulary DE-REGISTERS two cases, shrinking the battery 103 to 101 while the printed count stays non-zero #18512 实测过这一格。⛔ 本席未做的测量
packages/spec之外的兄弟(仓根scripts/**与其它包)。查重词
self-test floor sibling retrofit packages/spec·SELF_TEST_BATTERIES missing spec scripts·no verdict handshake self-test·battery roster generation retrofit·check-test-typecheck TS precedent相关:#18512 / PR #18916(本卡的出处与样板)·
scripts/check-agent-model-declared.mjs(.mjs样板)·scripts/check-test-typecheck.mts(TS 样板)Generated by Claude Code