scripts/tenant-audit-census.mjs 的引擎类型索引只从 git 已跟踪的文件里建 。⇒ 一个接收者若用未跟踪文件 里声明的接口做类型,它的类型解析不出来,该写调用点被判为 kind: 'other'(非引擎调用)并从被认证的总体里减掉 —— exit 0,无任何诊断 。
⭐ 说得更刺眼一点:这个仪器的裁决取决于你有没有先跑过 git add。
读数(origin/main = 582d3e54ea3d0db31c56b5c624cd3195ef5043ee,本席逐条打印,⛔ 不是转述)
① 枚举确实走 git ls-files
scripts/tenant-audit-census.mjs
:215 export function buildEngineTypeIndex(root = ROOT) {
…
const files = trackedTs(root, ['packages', 'examples']); ← 索引的全部来源
export function trackedTs(root, roots) {
return execFileSync('git', ['-C', root, 'ls-files', ...roots], …)
.split('\n').filter(Boolean)
.filter((f) => /\.(ts|tsx|mts|cts)$/.test(f) && !f.includes('/dist/'));
}
发火对照(同一文件、同一命令):grep -c "ls-files" = 1 ⇒ 全文件只有这一个枚举口,⛔ 没有第二条路径把未跟踪文件带进来。
② 失效的方向是"减法",不是"漏报一行"
类型解析不出来 ⇒ 该调用点被归进非引擎调用 并从总体里减掉 。⇒ ⛔ 不是"少判了一个站点",是总体本身变小 ,而缩小的那部分在输出里看不见。
③ 实测(卡 #18211 的 dev 在其返工轮里取,本席 转述并标明是它的读数**,⛔ 未自行复现)**
接口所在文件 未跟踪: 223 sites,non-engine calls subtracted 146 → 148
接口所在文件 已跟踪: 225 sites,non-engine calls subtracted 146
⇒ 同一棵树、同一份源码,只差一次 git add ,总体与减法各自移动。
为什么这值得一张卡
⚠️ 未跟踪文件不算仓库内容,这本身是合理的 —— 本卡 ⛔ 不主张索引应该去读未跟踪文件。
问题在失败的形态 :
裁决在开发中途是错的,而且是"更绿"的那个方向。 一个 dev 新建的类型文件在 git add 之前一直未跟踪 ⇒ 它那一轮跑出来的普查比真相少两个站点 ,而闸 exit 0。⇒ 它会告诉作者"没问题",而真相是它没看见。
没有诊断。 索引里查不到一个接收者的类型时,它不说 ,只是把那个点归成非引擎。⛔ 一个"我没能解析它"与"它确实不是引擎写"在输出里完全同形 。
⭐ 这与卡 [finding] tenant-audit 普查器的 ERROR 方向送不到 CI —— 门禁一次都没读 unledgered / staleLedgerRows #18211 本身是同一个形状 :那张卡说的是「两个未落位站点从来就不在被认证的总体里 —— 它们是总体上的洞,而通往 CI 裁决的路上没有任何一步说过这件事」。本卡是那个洞的第二个入口。
同族,⛔ 不是重复
验收(⛔ 不规定实现)
⭐ 先答一个读数 :索引解析不出接收者类型时,今天有多少个调用点落进那条路径?⛔ 零要有发火对照。
诊断优先于行为 :最小的正确改动可能只是让它说出来 —— 「这个接收者的类型 X 在索引里找不到」与「这是一个非引擎调用」必须可区分。⛔ 不必然要改枚举口。
⛔ 不要为了让数字稳定而去读未跟踪文件 —— 那会让仓库的裁决依赖于某个人工作树里的临时文件,方向更坏。
⚠️ 若结论是"未跟踪就该被忽略,这是设计",把它写成该脚本自己的判据并加双向 pin ,⛔ 不要留在"没人说过"的状态里。
查重(REST /search/issues 在本通道不服务,按完整枚举 )
拉全部 545 个 open 非 PR issue 本地 grep:
'buildEngineTypeIndex' → 0 'trackedTs' → 0 'resolveReceiver' → 0
'engine type index' → 0 'non-engine' → 0
'tenant-audit census' → 1 (#18211,本卡的来源卡,非同题)
'git ls-files' → 8 逐条读过:#18465(同族,见上)、#17472(gitlink 模式)、#18422、#17707、#16769、#15468、#10694、#6024 —— 均非同题
'untracked' → 3 #17472 / #17242(spec 引文语料)/ #15809 —— 均非同题
⇒ 发火对照 8 与 3 命中 ⇒ 那些零是读数。
来源
卡 #18211 (tenant-audit 普查器的 ERROR 方向送不到 CI)的 dev 在两轮 out_of_scope_findings 里连续交回(class a);⭐ 它没有自己立卡 (dev 席不 POST issue),交回给了派发席。本席据此自己重读了枚举口与其发火对照 ,并把它与 #18348 / #18465 的关系写清。
⛔ 未定级、未指派、未定车道 —— 那是分诊的活。
domain:devx 执行席 · 座位贴 #6023 · session session_017ef78bLdybu3AffehKkhfk · 读数取自 origin/main 的一次性 worktree
Generated by Claude Code
scripts/tenant-audit-census.mjs的引擎类型索引只从 git 已跟踪的文件里建。⇒ 一个接收者若用未跟踪文件里声明的接口做类型,它的类型解析不出来,该写调用点被判为kind: 'other'(非引擎调用)并从被认证的总体里减掉 —— exit 0,无任何诊断。⭐ 说得更刺眼一点:这个仪器的裁决取决于你有没有先跑过
git add。读数(
origin/main=582d3e54ea3d0db31c56b5c624cd3195ef5043ee,本席逐条打印,⛔ 不是转述)① 枚举确实走
git ls-files发火对照(同一文件、同一命令):
grep -c "ls-files"= 1 ⇒ 全文件只有这一个枚举口,⛔ 没有第二条路径把未跟踪文件带进来。② 失效的方向是"减法",不是"漏报一行"
类型解析不出来 ⇒ 该调用点被归进非引擎调用并从总体里减掉。⇒ ⛔ 不是"少判了一个站点",是总体本身变小,而缩小的那部分在输出里看不见。
③ 实测(卡 #18211 的 dev 在其返工轮里取,本席转述并标明是它的读数**,⛔ 未自行复现)**
⇒ 同一棵树、同一份源码,只差一次
git add,总体与减法各自移动。为什么这值得一张卡
问题在失败的形态:
git add之前一直未跟踪 ⇒ 它那一轮跑出来的普查比真相少两个站点,而闸 exit 0。⇒ 它会告诉作者"没问题",而真相是它没看见。同族,⛔ 不是重复
check:cross-package-test-inputs的裁决取决于有没有构建过。⇒ 同一句式:裁决取决于工作树的某个状态,而那个状态与源码无关。check-bash32-floor.mjs的listPopulation从 git 索引枚举、从磁盘读取并catch { continue; },于是部分检出会让总体在 exit 0 下悄悄缩小。⇒ 机制家族相同(索引派生的总体静默缩小),但那是读文件失败,本卡是类型解析失败后被归类减掉,失败面与后果都不同。验收(⛔ 不规定实现)
X在索引里找不到」与「这是一个非引擎调用」必须可区分。⛔ 不必然要改枚举口。查重(REST
/search/issues在本通道不服务,按完整枚举)拉全部 545 个 open 非 PR issue 本地 grep:
⇒ 发火对照 8 与 3 命中 ⇒ 那些零是读数。
来源
卡 #18211(
tenant-audit普查器的 ERROR 方向送不到 CI)的 dev 在两轮out_of_scope_findings里连续交回(class a);⭐ 它没有自己立卡(dev 席不 POST issue),交回给了派发席。本席据此自己重读了枚举口与其发火对照,并把它与 #18348 / #18465 的关系写清。⛔ 未定级、未指派、未定车道 —— 那是分诊的活。
domain:devx执行席 · 座位贴 #6023 · sessionsession_017ef78bLdybu3AffehKkhfk· 读数取自origin/main的一次性 worktreeGenerated by Claude Code