发现于:#4645 Phase A(PR #5618)的反向验证,原始测量记录在该 PR body「liveness evidence 路径守卫」一节。发现者为该单 dev,按其报告转由 PM 立单(查重已做:check:liveness in:title 零命中,liveness 泛搜零命中)。
实测(objectstack,#4645 Phase A 分支)
把 packages/spec/liveness/query.json 的 5 条 evidence 路径故意改坏(指回迁移后已不存在的 packages/plugins/driver-sql/...),跑 pnpm --filter @objectstack/spec check:liveness(scripts/liveness/check-liveness.mts 的 checkEvidence):
⚠ 5 'live' entr(ies) cite a missing file:
query/fields → packages/plugins/driver-sql/src/sql-driver.ts
query/where → packages/plugins/driver-sql/src/sql-driver.ts
query/orderBy → packages/plugins/driver-sql/src/sql-driver.ts
query/limit → packages/plugins/driver-sql/src/sql-driver.ts
query/offset → packages/plugins/driver-sql/src/sql-driver.ts
- 逐条点名 ✅ —— 但这是
⚠ 警告,不是 ✗,退出码两种状态下都是 0。
- 摘要行
evidence paths: 330 resolved against this checkout 里的 330 是 local 路径总数,不是解析成功数 —— 改坏 5 条之后它仍然显示 330,"resolved" 一词失真。
影响
ADR-0087 的证据链断裂不挡任何 CI:目录重组、文件更名这类常规动作可以让 live 判定引用一个不存在的文件而无人发现 —— declared(「证据在此」)≠ enforced(无 gate 兜底)。#4645 这次是 dev 主动做反向验证才发现;下一次大概率是静默腐烂。
注意的反面(先回答再动手)
同一 reporter 里 ⚠ 与 ✗ 的分级在别处是刻意设计(发现 dev 的观察)。把 stale-evidence 升级为 ✗ 之前,需先核对该分级的原始意图 —— 若「证据路径可指向未来/跨仓」是有意的宽容,收紧要带边界(local 路径 + live 判定才判红,cross-repo attribution 的 101 条不受影响)。
处置建议
live 条目引用本仓缺失文件 → ✗ 判红(cross-repo attribution 维持现状);
- 摘要行改为真实解析计数,或把 "resolved" 改成 "declared"。
发现于:#4645 Phase A(PR #5618)的反向验证,原始测量记录在该 PR body「liveness evidence 路径守卫」一节。发现者为该单 dev,按其报告转由 PM 立单(查重已做:
check:livenessin:title 零命中,liveness 泛搜零命中)。实测(objectstack,#4645 Phase A 分支)
把
packages/spec/liveness/query.json的 5 条 evidence 路径故意改坏(指回迁移后已不存在的packages/plugins/driver-sql/...),跑pnpm --filter @objectstack/spec check:liveness(scripts/liveness/check-liveness.mts的checkEvidence):⚠警告,不是✗,退出码两种状态下都是 0。evidence paths: 330 resolved against this checkout里的 330 是 local 路径总数,不是解析成功数 —— 改坏 5 条之后它仍然显示 330,"resolved" 一词失真。影响
ADR-0087 的证据链断裂不挡任何 CI:目录重组、文件更名这类常规动作可以让
live判定引用一个不存在的文件而无人发现 —— declared(「证据在此」)≠ enforced(无 gate 兜底)。#4645 这次是 dev 主动做反向验证才发现;下一次大概率是静默腐烂。注意的反面(先回答再动手)
同一 reporter 里 ⚠ 与 ✗ 的分级在别处是刻意设计(发现 dev 的观察)。把 stale-evidence 升级为 ✗ 之前,需先核对该分级的原始意图 —— 若「证据路径可指向未来/跨仓」是有意的宽容,收紧要带边界(local 路径 +
live判定才判红,cross-repo attribution 的 101 条不受影响)。处置建议
live条目引用本仓缺失文件 →✗判红(cross-repo attribution 维持现状);