信封与声明
与运行时无关的模块包括:shared/decision-signal-provenance-contract.ts— TypeScript 词汇shared/decision-signal-provenance-families.ts— 信号族声明和 CI 注册边界shared/decision-signal-provenance.ts— 运行时验证和规范序列化适配器
contractVersion、稳定的 signalId、已声明的 familyId,以及完整的 claims 对象。每项声明只能具有以下一种状态:
unknown 和 not_applicable 声明不能携带值。这可以防止缺失字段被误解为当前、官方、独立、已验证、正常或零值的展示声明。
信号族声明
每个信号族必须将每个维度声明为required、unknown_allowed 或 not_applicable。共享参考信号族覆盖:
- 官方数值观测
- 类型化文档事件
- 运行活动记录
- 交易所披露
- 组合走廊状态
- 派生比较
required 维度只接受 known 声明;unknown_allowed 接受 known 或显式 unknown;not_applicable 只接受显式 not_applicable。任何策略下,遗漏任一维度都无效。
这些维度覆盖发布者身份、来源 URL、原始证据、语言、翻译、四种独立时间角色、修订与替代、两种独立置信度声明、佐证、传输新鲜度、内容新鲜度和派生关系。
发布者与证据身份
有来源支持的发布者保留稳定的发布者 ID,以及包含shared/source-provenance.ts 中规范来源名称、来源类型和宣传风险状态的 registryReference 快照。如果来源未声明,或快照与来源级溯源契约建立的注册表发生漂移,验证将失败。
发布者类别与置信度或佐证相互独立:
official_government表示政府直接发布者。state_controlled_media与政府部门保持明确区分。official_exchange表示官方市场或披露机构。independent_observation、independent_media、wire_service和market_publisher保留各自含义。derived_output没有来源注册表引用;其输入信号 ID 和方法必须写入必需的派生声明。unknown是显式的非正向发布者分类。
语言与翻译
原始语言与翻译状态相互独立。翻译值只能使用:unavailablenot_translatedmachine_assistedhuman_reviewed
not_applicable,不能用有利的翻译状态代替。
时间、沿袭与置信度
观测时间、生效时间、发布时间和检索时间是独立声明。每个已知时间值还携带其语义角色,因此序列化器或适配器若用一个时间戳替代另一个,验证就会失败。精度必须显式指定为instant、day、month 或 year。
修订声明保留稳定的版本 ID、单调递增序列,以及 original、revised 或 corrected 状态。替代声明则分别记录 current、corrected、cancelled 或 superseded;更正和被替代记录要链接相关信号,取消则必须提供原因。current 记录不能携带更正、取消或替换元数据。因此历史版本始终可以寻址。
提取置信度和分类置信度是相互独立的值,各自具有分数和方法。发布者权威性不能提供任何一种分数。佐证也是独立声明,并显式列出来源信号 ID;官方来源并不意味着已获独立验证。
新鲜度与最后良好数据
传输新鲜度报告采集状态是fresh、stale、missing 还是 error。内容新鲜度则独立报告 current、stale、unavailable、partial 或 timestamp_unknown。
使用最后良好数据回退时,这一区分仍然保留。新鲜传输可能返回陈旧内容,陈旧传输也可能与仍然当前的缓存内容共存。消费者必须同时呈现两项声明,不能将它们折叠成单一的绿色或红色状态。timestamp_unknown 不能携带 contentAsOf 值。
序列化一致性
DECISION_SIGNAL_PROVENANCE_SURFACE_ADAPTERS 为以下表面公开相同的规范线格式:
cache_storageapimcpui
扩展契约
当领域管线推出携带溯源信息的信号族时:- 在
shared/decision-signal-provenance-families.ts中添加完整的信号族声明。 - 添加匹配的注册项,并显式选择
launchStatus: 'launched'。 - 在
tests/fixtures/decision-signal-provenance/下添加正向序列化夹具,并让注册项指向其夹具 ID。 - 为该领域自身的负载语义添加正向和负向夹具。
- 在写入缓存或存储数据,或公开 API、MCP、UI 输出之前,在适配器边界执行验证。
- 运行聚焦溯源测试以及前端和 API 类型检查。
