任务:解析时算出有效条件状态,矛盾主张只打标不裁决

依据:docs/hub-r4-kb-direction.md 第五节,B01 R[2]、B03 R[0]、词表 validity_status(node tools/show-element.ts B01 B03;contracts/generated/vocabulary.ts)。

所有者定的方向:Hub 不裁决矛盾。矛盾主张只按 B01 R[2] 作为可机器检查的反驳条件打标,两条都返回,并带来源和时间。“实际怎样”与“应该怎样”冲突时,不自动判谁胜。

现在的缺口(P05 核实时查到,docs/hub-r4-p05-review.md):运行里的主张在解析时不算有效条件状态,包版本下架了,它的主张也照样显示有效。

  • 分支和工作树:kb-validity,目录 circle-hub-kb-validity(依赖已装好)
  • 可以改的路径:hub/refs/**(解析)、hub/knowledge/** 里读主张、返回主张的那一处,以及对应的测试和 README。contracts/ 缺什么先回报。别的路径不动;候选层的写入通道由另一个终端在做,不要碰 hub/knowledge/layers.ts 和 hub/runs/engine/**。
  • 规则:同前(不推送、不建 PR、不发布、不部署;不碰 7420、钥匙串、环境配置文件和任何真实系统;测试只用合成数据;git commit -s)。
  • 验证:npx tsc --noEmit;node --test --test-concurrency=1 对 hub/refs/**、hub/knowledge/**。

要做的

  1. 解析主张时按 B01 R[2] 算有效条件状态,只算可机器检查的:
    • 规则已撤回:主张所依的包版本已下架;
    • 根据已撤回;
    • 被引片段已变:读者锁定的根里,同一路径的片段摘要和主张所引的不同;
    • 已过期;
    • 依赖的前提失效;
    • 出现矛盾主张。

    哪一项现在有数据、哪一项还没有来源,照实回报,没有来源的先不算。

  2. 矛盾打标:
    • 有一条已核验的“矛盾”关系时(来源可以是候选层的关系提议,那条通道另一个终端在做;也可以是确定性的规则),两条主张的状态都标“出现矛盾主张”。
    • 读的时候两条都返回,各带来源和时间,不选谁对。
    • 关系本身怎样存、怎样查、谁能看,按模型定,写进 README;先用合成的关系记录测,不依赖另一个终端的通道。
  3. 不裁决:测试钉住 Hub 在矛盾时不隐藏任何一方、不改任何一方的性质和依据等级。
  4. 测试:每种状态正例反例各一;矛盾的两条都带来源和时间返回;包下架后再读,主张显示规则已撤回。

完成后在终端里回报:提交号、测试数量、没做完或拿不准的地方。