Skip to content

实体提取质量验收 ​

当前契约:指南 omk-entity-annotation/v11,语料 omk-entity-quality/v13,检查器 omk-entity-critical-checks/v5。生产 prompt-json knowledge-extraction-v29、strict knowledge-extraction-v30、响应 Schema v4、run v5 与 quality 投影 v4 分别保留身份,均不继承历史 v14/v18 的模型质量或 Gold 结论;独立身份的 bounded 重试/预算政策同样需要自己的固定测量。quality v4 保留 v3 按完整政策与初始调用上限分组,v2→v3 的变化仍属于 BREAKING-COMPARABILITY;每个 run 最终选定的出生接纳只计一次。独立版本的人工封存将 current 记录作为执行状态未知保留在分母中,不支持 schema 及 legacy 处置分别可见;它不补造接纳或语义通过。

独立登记的历史 v14 真实窗口基线维护其原始证据及限制,不是当前 strict 双臂实验或独立质量验收。人工确认的跨窗口组织已通过实体关联日志与知识库实现,不合并来源身份,其提案另行遵循关联评测协议。组织决定及历史提取证据均不证明自动跨 Agent 身份或复用收益。

1. 版本与适用范围 ​

本指南采用实体身份规则及实体提取契约,覆盖对象粒度、完整名称、配置知识、关键来源和构建身份。精确位置不能证明语义或产物同一性;记录输出回放与构造响应只验证表示、接纳和复核线索,不作为新模型效果证据。

当前 test/fixtures/entity-extraction-review-v13.json 原样保留 v12 的 60 个公开合成窗口、199 处关键提及,新增四个工作记录/概念边界的开发窗口;总计 64 个窗口、212 处关键提及,其中 62 个开发窗口与 2 个预留验证窗口。完整名称备选、身份、知识角色及逐例理由以冻结语料为准;它不是隐藏盲测集,也不代表真实日志分布,不含真实消息正文。已查看输出的窗口只作开发回归,不能用于宣称盲测收益;新的验证窗口须按项目/会话隔离并在输出前确定,不用于提示词调参。真实日志另行最小化、授权、分组和复核。

提示词、语料、双语指南、检查器及运行产物的原始字节摘要共同绑定测量身份。更新当前文档也会改变新复核包的指南摘要,须重新生成并冻结复核包;旧输出、标注、严格失败与分数保持原样,不按现行规则重算。不同测量身份不能直接横比;冻结原文可从对应 Git 版本和 Issue/PR 追溯。

指南 v11 与语料 v13 按身份规则 §2.4 显式约定 Issue/PR 工作记录边界,与 prompt-json v19/strict v20 一起相对指南 v10/语料 v12 构成 BREAKING-COMPARABILITY;旧标注、冻结资产、原始输出和已报告分数保留原身份。检查器 v5 保持不变:将未标注的额外实体提交逐项复核,不增加自动语义判决或生成后的黑名单。新用例属于开发回归,不是新的盲测质量证据。

本轮引用语境修正保留指南 v11 的标注/评分规则身份、语料 v13 的 64 例原始字节与检查器 v5 源码;当前双语指南页面的版本说明和诊断内容已更新,因此页面原始字节及 guideDigest 会变化。新 prompt-json v23/strict v24 的请求须使用新的测量身份并重新冻结复核包,不能复用旧许可、runId 或回执。历史冻结包中的双语指南、输出和分数保留原始字节;“指南规则版本不变”不表示当前页面摘要不变。

后续 v25/v26 修正在同时提到出处文件时,保留被独立评价的内容对象。指南 v11 规则、语料 v13 和检查器 v5 不变;新的内容/载体合成诊断保留独立身份与分母。构造的仅文件响应可以通过结构接纳,但既有必需提及检查仍能暴露内容对象缺失,文件 description 不能替代该身份。反向案例覆盖仅讨论文件、背景包含关系和明确别名。遗漏来自已见真实来源的重复观测,仍是开发证据;这些回归和提示词示范都不证明稳定改善或独立验收。当前指南页面字节和新 guideDigest 变化,须重新冻结测量包;历史分数和输出不改。

v27/v28 在同一次调用的规则与输出自检中明确整体/局部边界,属于 BREAKING-COMPARABILITY。参考要求来源中被独立审查的整体时,返回其局部指引或描述中提到整体,不能算整体身份覆盖;仅讨论局部或文件时不反向强制新增整体。局部对象资格未决与已知整体遗漏分别记录,不看输出事后放宽参考。八个示范、指南 v11 规则、检查器 v5 与主语料分母保持原样;当前指南页面及 guideDigest 变化,须重新冻结测量包。已见诊断和构造响应不证明新规则已消除遗漏、提升稳定性或完成真人验收。

v29/v30 的来源断言澄清改变规则与同一次调用内的输出自检字节,属于 BREAKING-COMPARABILITY。description、qualifiers 和 mention rationale 分别评价:精确定位或 basis: explicit 不能证明新增的角色、包含或所属断言。同轮/同 PR 关联不补足这些关系。已确认无据的断言即使外部真伪未知仍是错误;真实短语歧义保持 uncertain,不能计为通过。完整跨度与整体称谓须结合上下文解释,不凭某个词认定编造规范标识。

八个示范、v19 至 v28 已登记的原始字节约束、指南 v11 规则、检查器 v5、64 例/212 处关键提及分母、公共 Schema、wire、存储及 single 政策不变。当前指南页面及 guideDigest 变化,须重新冻结测量包;历史包、run、分数与复核证据保留原身份。来源断言诊断仍是开发证据,不证明 v29/v30 输出已通过、能够泛化或完成独立真人验收,也不增加调用阶段。

检查器 v5 落实双记录门禁:goldReady 同时要求作者自审完成与独立人工复核声明通过,缺任一记录仍为 false,任一要求修改则阻断两种 ready。历史复核包及其已报告就绪状态保留原测量身份。历史生产 strict v16 改变 prompt 字节、版本与完整 system 摘要,属于 BREAKING-COMPARABILITY,不改变 wire/领域 Schema、run 存储或 pipeline 政策。本指南更新改变新的 preparation 摘要,变化的 pending plan 须在捕获前重新准备冻结包及匹配记录;旧 runId 与实验许可不能授权变化的请求。旧冻结资产、结果及 receipt 保持原样,不迁移、不重评分。当前已登记提示词的原始 UTF-8 摘要通过 test/measurement-governance/prompt-registry.ts 与 prompt-registry-freeze.test.ts 冻结。该登记表不是全部历史提示词的完整归档;strict v16 须使用原始完整资产和对应修订复算其历史记录摘要。

四个修订 2 完整输入/输出示例已完成 AI 作者逐项审阅,已进入生产 prompt;它们不是评测 split、未见验证或 Gold,回放构造答案不能证明模型效果。单独标明的部分接纳诊断复用第四例,展示原文 quote 不匹配的 sibling 被拒绝而合法候选保留;故意错误的 sibling 说明宿主行为,不是期望模型生成的输出。这些离线工程检查不等于真实模型对照或独立质量门槛完成。

2. 标注单位与允许表达 ​

先冻结来源消息、角色、缺失记录及窗口限制,再逐项标注:

标注规则
关键提及标注对检索、身份或知识理解必要的名称和指代;不是标全体名词。保留消息序号、原文和从零开始的出现序号;重叠匹配计数,位置为 UTF-16 半开区间。
允许边界alternatives 只能列出输出前已确认的等价边界,例如完整代码标识含或不含反引号、指向同一对象的短名和完整限定描述。不能用任意包含该名称的大段引文充当命中;边界扩大仅列为待复核候选。
身份组同一个 entityKey 的提及必须归并,不同身份组必须分开。模型 ID 和标签不作答案;通过原文位置对齐后比较提及对。
层次及关联标明允许的 referentKinds、身份状态、明确候选、组件和集合成员/完整性。只有指南允许的表达才能作为备选;来源不明时保留未知。
知识角色先标来源锚点、主体、对象和解释。自然语言关系允许同义表达;语义、方向、否定、条件、时间和纠正由人工按全文判断,不能用关键词缺失判错。 角色须预先标 coverage: required 或 if_selected。

集合指代是一个集合提及,不能复制为多个成员的同跨度提及。实例/版本与组件分开;仅改变环境条件不强制拆身份。工具和日志、计划和执行、删除后新建与改名分别处理。同名或相同路径不足以归并。来源截断不自动要求空知识;可记录未消解主体的来源主张与待调查状态,不补充缺失身份或推广结论。确实存在两种合理身份方案时,先裁决,或在输出前显式表达允许方案;当前契约不支持多个相互冲突的身份分区,争议未解决的案例不能冻结。

提及边界按身份规则 §2.3判断对象含义,不以最短字符串为目标。“当前 main 的被测代码”与“enabled 字段”仍指同一对象,可在新测量的输出前列为备选;“main 上的改造”谈改造这一属性,代码状态提及应选择其中的 main。不机械裁剪“字段”“的”“上的”等词,也不接受任意包含短名的句子。程序继续精确匹配预先声明的备选,不自动裁剪或用正则替代语义判断。收窄重复短名时重新计算 occurrence;第二处 main 的序号为 1,不能沿用只出现一次的长短语序号。

类型依据与身份消解分别判断:名称、调用、故障或“节点”称呼不能单独证明组件/部署实例。身份已知但类型未知用 proposed object,保留类型依据不足;来源明确的模块职责或部署实例不能降为 object。完整限定描述与短名可以预先列为等价边界,但不能看新输出后放宽。共同指代与其属性分别识别:their/它们 指集合,属性短语不能只归给一个成员。关系与 polarity 必须一起读,不能重复否定;“未失败”不等于“成功”,“未禁止”不等于“要求”。这些判断保留在逐例语义标准中,不由关键词规则代替。

开放识别须逐例核对普通实物、抽象概念与专有对象的覆盖,以及 description 是否忠实说明语境中的含义。语义类别不等于 referentKind;概念和具体对象可以都用 object,不能因层次相同而合并。保险产品名字含“计划”不证明 plan。记录关键提及之外的遗漏、误提取和未经来源支持的类别/含义;未穷尽标注不计算总体 precision/F1。没有知识候选仍须核对实体覆盖;只有空知识结果不能证明知识关联可靠。

沿用的逐项语义核对另需确认:核心概念不被统计/适配对象替代,概念短跨度与复合对象完整跨度可以重叠但不能复制同一跨度;产品名含词不自动拆概念。助手选择回答不等于用户澄清,最初含糊提及保留 unresolved 及同层候选(层次不一致时空候选加理由),明确澄清后才重新判断先前提及。一条 statement 只有统一 modality/polarity 的命题,正负要求分开陈述、分别引用;不能靠 context 将单一 negative 限定到后半句,也不能将一个集体谓词机械拆成成员事实。这些标准由逐例复核执行,结构接纳不使用关键词推断或补写结果。

引用语境核对沿用既有身份与限定规则:教学示例、假设或反例中的对象与真实当前对象分别依据各自语境识别,不能因名称相同而合并,也不能把示例的版本、环境或结果搬入当前实体的 description/qualifiers。mention 及理由须支持它所绑定的那个对象。来源明确跨引述仍指同一对象时须归并;引号或“示例”标签不能自动触发拆分。对应关系没有确认时保留 unresolved 与有依据的候选,不凭助手续答自行澄清。精确提及和身份分组检查不证明限定有来源;该项仍经完整窗口逐项语义复核。

粒度核对同时检查遗漏与过度拆分:先判断来源是在描述事物的属性/行为,还是在独立定义、比较、指向或关联一个对象,再决定身份。普通属性可用关于所属对象的陈述表达,独立指标/操作概念不能因为属于统计/过程而被折叠。没有专名或知识候选不是排除依据;数值、单位、条件和未确认结果仍须保留在陈述中。关键提及命中不能证明这一边界正确;额外实体、实际知识文本和未生成的可选知识都须逐例记录,自审不称独立证据。不得根据输出事后修改身份方案。

模态否定须按来源含义复核,以下是允许的等义表达示例,不是关键词分类器:

来源说法可用表达不可推导
无需修改 SDKdescriptive/negative,“需要修改”;否定本场景的必要性。禁止修改、未实际修改。
不应修改 SDKnormative/negative,“修改”。没有修改必要性、已遵守要求。
未禁止修改 SDKdescriptive/negative,“修改受到禁止”;否定禁止状态。明确授权、要求修改、已修改。
明确允许/禁止修改 SDKpermission/positive 或 negative,“修改”;保留授权主体和范围。其它场景的权限、执行结果。

转述的要求仍保留 normative/permission,证据为 source_assertion,context 保存说话者、条件、时间与适用范围;描述性陈述也可以保留来源说法,并不自动成为直接观测。否定必要性/禁止状态时,relation 必须保留该被否定谓词,不能一律缩成行动。“不能修改”需结合语境区分能力不足和禁令。只在 context 写“无需”不能挽救正文已写成禁令的语义;确实无法表达时保留未知或不提炼。各语气和条件须独立引用,未生成可选知识记为 not_observed,不算语气通过。

分支/被测状态按身份规则 §3.1核对:分支 object 与单独指向的代码状态 version 区分,缺 SHA 不等于身份未消解;允许层次备选须先冻结。采用分支主体仍须限定本次状态/来源时间;不同提交不合并,日期不自动拆分支,未知复现标识及未发布状态保留。

配置知识按身份规则 §2.2核对:选中相关知识时,保留影响判断/复用的精确值、类型、所属对象、范围、条件、来源理由及未知。已有所属对象可以为主体,但须明确字段和值;字段端点差异只是待核对线索。description、qualifiers 或引文可查不代表陈述完整。角色 coverage: required 预先要求事实覆盖;if_selected 仅在选择相关知识时检查信息保留。已有知识缺关键值是信息丢失,可选知识未生成是 not_observed,必需事实缺失是知识覆盖缺口,均与实体遗漏分开。none 不可含 required 角色。

工作记录复核遵守身份规则 §2.4:来源独立讨论 Issue/PR 概念时保留,具体编号记录不单独建实体,也不剥掉标识补造概念。有用的记录编号、链接、状态和主张者仍保留在来源或案例 context。即使额外对象有原文依据,也须遵守此范围;记录实体属于输出范围错误,不自动等同于补造来源事实。不将这条边界推广到文件、部署实例、版本或所有具体对象。新输出前冻结这些判断;输出后显式纠正实体目录及知识时保留原修订,不提高原运行分数。

2.1 完整名称逐例审核流程 ​

  1. 对每个既有关键提及读取原文、身份组和所有边界,核对同一次出现,不把别处同名指代改作备选。
  2. 向类型词、冠词/指示词、所属对象、位置和时间限定扩展;只纳入仍以同一对象为中心的连续名词描述。“已发布 r2”、“Its test instance sieve/dev01”和“昨天的更新活动 U1”都可构成限定名称,后接通过/失败/赋值等谓词必须截止。
  3. 核对短语实际指向:项目 Pavo 的 a.md 指文件,客户端 L 的 errorStatus 指字段,可与所有者短提及重叠;不能将这些整段绑定到项目或客户端。复数成员列表不作为单体的名称,Session 计数不作为 Session 的别名。
  4. 为每个增加的 quote 独立计算 occurrence 与 UTF-16 区间,保留旧备选、逐例增加理由和排除示例。程序仍精确匹配,不用任意包含名称的跨度或词尾正则替代审核。

审核覆盖全部既有关键提及,不声称穷尽所有可能的同义或嵌套描述,也不新增全文所有名词。输出后发现的新缺口必须保留当次严格 miss 与停止事实,另建明确版本的修订;既有输出仅离线核验覆盖与拒绝边界,不作为新模型质量证据。

2.2 关键来源定向诊断 v1 ​

test/fixtures/entity-source-coverage-v1.json 是独立的 omk-entity-source-coverage/v1 合成开发案例:三条消息、两个对象、两处身份提及和五项关键知识依据(目的、当前限制、适用条件及例外、迟到约束、后续纠正及未验证限制)。它不并入主语料,不改变关键提及分母。

新模型诊断前,冻结这个窗口、关键原文位置、必需知识及允许表达、当前提示词/Schema、运行产物和依赖摘要;具体模型、额度及发送范围另行授权。构造响应不计模型输出。本诊断的空知识仍结构合法,但五项预声明义务未覆盖;普通重复名称无需全部保存。

逐项自审核对:对应陈述是否保留判断及条件、约束、例外和纠正;直接定位的引文是否支持该陈述;提及身份及理由是否对应实际位置;计划、来源说法和未验证限制是否保留。只定位到提及可帮助用户找原文,不能替代陈述的关键引文;整条消息可访问、宽引文包含关键词、相同端点或引用绑到别的陈述,都不自动算语义覆盖。复用关键检查 v5 的锚点/陈述列表只产生复核线索,semanticReview 仍为 pending。

预声明的定向门槛为:计划调用有记录且无调用/解析/结构失败,两个对象身份正确,五项关键知识及来源逐项自审符合,缺失、确定错误或标注争议立即停止。独立证据缺失保持显式;这一门槛不替换 §3 的原关键回归门槛,也不证明总体质量或稳定性。当前仅完成构造响应回归,新增模型调用 0;实际自动提取效果未验收。

2.3 制品版本定向诊断 v1 ​

test/fixtures/entity-version-artifact-v1.json 是独立的合成开发用例,omk-entity-version-artifact/v1:两条消息、两个对象(一份冻结归档语料与一个持续提示词)和一条必需的不混算义务。它不加入主语料,不改变关键提及分母。

预声明检查:冻结、归档并带版本标识与摘要的制品必须取 version 指代层次,持续提示词保持 object、当前版本只作限定。把归档语料标为 object 必须被离线检查器报为 referent_kind 不匹配。历史 knowledge-extraction-v18 引入一条该区分的合成示范(synthetic-version-artifact-v2,资产包 entity-extraction-five-positive-strict-v4);示范是提示词材料,不是评测 split,也不证明语义效果改善。模型产出的类型判断仍须逐项复核;semanticReview 保持 pending。

v18 修正只保留原文支持的限定“当前版本 v14”;v17 的示范曾补出来源没有提供的完整标识 knowledge-extraction-v14。这会改变 prompt 字节与测量身份(BREAKING-COMPARABILITY),没有新增模型调用或质量结论。原始输入、前四个示范、无 few-shot 对照及 wire 身份保持不变。v4 资产包绑定原 v3 摘要与新的 AI 作者复核,不登记新的实时采集入口。v3 资产和 v17 运行保留原始字节与事实。v3/v4 校验器绑定各自历史 v17/v18 构建,须在对应历史修订重新构建后运行。strict v20 曾原样复用五个示例文本,但规则前缀已变化。strict v22 保留其序列化字节并增加第六个时间示范;完整 system 不等于 v4 bundle 冻结的 v18 candidate,需要自己的测量身份。v21/v22 时间修正属于 BREAKING-COMPARABILITY,不改收录范围或公共 Schema;仅影响新请求,不改旧输出与历史分数,也不保证语义正确。

2.4 引用语境定向诊断 v1 ​

test/fixtures/entity-context-boundaries-v1.json 是独立的 omk-entity-context-boundaries/v1 合成开发资产:三个案例、七条消息、十一处预声明关键提及,分别检查隔离示例对象分开、明确跨引述的同一对象归并,以及未确认对应关系保留歧义。它不含私人对话,不并入语料 v13 的 64 例或 212 处关键提及分母。

构造响应回归复用现有精确位置、身份提及对与逐项语义复核:错误归并、错误拆分和无依据选择候选应产生可定位的检查差异;description/qualifiers 语境串用仍由 identity/unsupported_qualifier 逐项裁决,不新增 NLP 宿主过滤器。正确位置、身份对全命中或合法结构都不能自动确认限定正确。测试作者的构造裁决只验证 pending/blocked 的处理,不是模型输出或独立真人复核。

prompt-json v23/strict v24 增加引用语境指导与第七个完整 wire 示范;前六个示范序列化字节不变,wire、公共 Schema、存储、政策和调用次数不变。此变更为 BREAKING-COMPARABILITY,旧 run 与原分数不重算。动因是已见真实开发输出的跨语境身份/版本限定错误,只作为回归线索,不能计成未见验证结果。真实模型诊断须在运行前冻结这些案例、允许身份和限定、当前字节摘要、模型与预算,并保留逐项目复核;本轮工程回归没有证明真实 v24 效果或总体质量改善,也不建立正式 Gold。

3. 分层结果与通过门槛 ​

层次程序记录判断限制
调用与捕获调用失败、JSON 解析失败、取消、未尝试分别计数。内部检查器异常立即停止,不能伪装成模型失败;不重试隐藏失败。
结构接纳响应顶层 Schema 拒绝、提及/实体/知识拒绝及逐项原因。合法 JSON 的结构拒绝仍是已捕获输出;不得记入 capture_failures。拒绝条目数含级联后果,不能当作互相独立的错误数量。
关键提及严格边界命中/遗漏/歧义、扩大边界候选、关键提及 recall。未穷尽标注,所以 precision/F1 为 null;额外提及需要人工判断,不能直接算误提取。
身份提及对的归并/分离、错合并/错拆分;层次、候选、组件与集合的差异。未对齐提及及缺失引用标为 not_evaluable,不能算通过。提及对相互相关,计数不是独立样本准确率。
知识关联只列来源锚点关联的陈述、端点、relation、modality 和 polarity;反向端点给出待复核提示;没有陈述为 not_observed。端点匹配不证明关系或陈述真实;同锚点的其他陈述、宽引文和同义表达必须人工复核。
知识覆盖义务每个角色保留 coverage、解释及全部已接纳陈述引用。无结构拒绝且没有知识候选时,required 为 required_not_observed,if_selected 为 not_observed;有候选一律 needs_review,结构拒绝为 not_evaluable。引文/端点命中不证明值、类型、归属或理由完整;其它引用或主体表达按全文核对,不按关键词自动判通过。
独立语义按每例 semanticChecks 核对条件、时间、否定、主张/观测、计划/完成、案例组织及晚到纠正。optional 允许没有知识;遗漏与错误不同。none 场景生成知识需登记问题。空结果不能证明知识关联可靠。

冻结后的本合成关键回归门槛:所有计划调用有记录;无调用/解析失败、取消、未尝试或结构拒绝;关键提及命中率 100%;所有应归并/分离提及对和身份关联匹配,无 not_evaluable;已生成知识的角色、条件和状态全部经独立人工复核,无未裁决问题。可选知识没有生成时,只能判断实体项,知识关联覆盖仍不足。当前工具不自动判定整个门槛通过,始终保持 semanticReview: pending,报告未验证范围。 预先声明的 required 事实须逐例确认覆盖;结构拒绝时,不能因缺少已接纳知识而判为语义缺失。

这是一组限定边界的回归门槛,不是总体质量百分比。重复两次最多提供两份样本;两轮全部通过也不能称为总体稳定性或跨 Agent 收益验证。真实日志的抽样与门槛另行预定,不能事后用其结果调整此门槛。

4. 独立复核、争议与冻结 ​

  1. 实现者/作者自行逐例检查语义、来源闭合、位置、分组及契约,保存 omk-entity-author-review/v1 记录及理由;authorReview: completed、exploratoryReady: true 表示可继续工程与探索性验收,不要求用户承担逐例复核。自审不计入独立人工证据,goldReady 仍为 false。缺少独立复核是报告的覆盖限制,不阻塞这些工作;独立质量完成门槛保持不变。
  2. 与作者独立的人逐例检查指南、允许边界、身份组、角色及语义标准;在 review-template.json 填写每例 approved 或 changes_requested、理由、复核人、时间和独立性声明。独立模型评委不等同于独立人工复核。
  3. 争议在看到输出之前裁决,记录问题、结论和独立裁决人。未解决时使用 changes_requested。需改语料/指南/检查器时升级相应版本并重新生成复核包,不能靠修改复核记录批准旧摘要。
  4. 作者与独立复核记录均必须覆盖全部案例,绑定测量身份,并早于输出捕获。任一已提供记录要求修改时,两种 ready 状态均为 false,不能用自审覆盖独立异议。检查器拒绝作者自称独立、缺项、错误摘要和事后批准。它只能验证声明与记录闭合,不能验证复核人身份真实或保证其判断正确;attested_independent_human 表示有声明,不是效果结论。
  5. 测量身份由语料、双语指南、已编译检查器及生产运行产物摘要、依赖清单/锁文件摘要、Node 版本、提示词原始 UTF-8 摘要和版本组成。运行产物摘要采用 omk-entity-measurement-runtime/v2:覆盖 dist 内所有普通文件的规范化相对路径与原始字节,仅排除无关的 Next.js 子树 studio/web。相关运行代码或资源变化仍会使身份失效;仅网页重建不会。该范围变化相对早期 bench 摘要属于 BREAKING-COMPARABILITY:重新准备复核包及匹配回执或 live plan,旧证据继续使用原冻结宿主,不迁移、不重评分。共享摘要模块计入检查器/采集器摘要,实体关联复核也包含该模块。复核包分别保留中英指南原始字节及便于阅读的合并稿。manifest 另记观测到的 sourceRevision.commit 和 sourceRevision.dirty,不进入测量身份;无法确定 Git 来源时两者均为 null。dirty 检出的 commit 不能复现未提交源码,也不能证明已有构建由哪份源码生成。运行时 promptHash 的规范化 JSON 摘要与这里的原始 UTF-8 摘要不同,不能混用。

5. 离线复核工具与证据 ​

先更新编译产物,然后生成外置复核包:

bash
yarn build:runtime
node dist-scripts/bench/entity-extraction-review.js \
  --corpus test/fixtures/entity-extraction-review-v13.json \
  --output /private/tmp/omk-entity-review-unique

输出目录必须绝对、在仓库外、父目录存在且目标未存在;即使通过软链指向仓库也拒绝。工具保存原始语料、双语指南、位置与答案展示 review.html、复核模板、模型输入及摘要、测量 manifest。未提供独立复核记录时 goldReady: false,即使作者自审完成也不变。模板默认需要修改且未签署,不能不经填写就批准。

可选 --self-review /absolute/self-review.json 校验作者自审记录(测量身份、作者、时间、逐例决定及理由),保存为 self-review.json;它无独立性声明,也不能经 --review 冒充人工证据。可选 --review /absolute/review.json 校验独立复核记录;可选 --captures /absolute/captures.json 只检查已有捕获。本命令没有执行器入口,模型调用数始终为 0,生成包或签署标注不授权数据发送或模型执行。

捕获格式 omk-entity-captures/v1 包含同一 measurementId、单一 split、1 或 2 次计划重复、开始时间、执行器和模型,以及 caseId、重复序号、冻结输入摘要和结果。结果为 output(原文与可选原始 usage)、call_failure 或 cancelled,可记录执行器实际报告的 durationMs、costUSD;未知值省略,不补零。检查未知/重复/超计划记录及输入摘要,完整保留原始捕获和接纳结果。未尝试记录逐项保存;没有完成检查的关键提及不进入命中分母,另列未检查数。只汇总已报告的用量、耗时和费用;任一已记录尝试未报告费用时总费用为 unknown,同时显示已报告部分,不能推测费用或将部分覆盖称为整轮成本。

结构拒绝不让捕获状态变成失败;调用/解析失败、取消或未完成计划使命令非零退出。程序成功退出仅说明离线检查完成。原始输出与逐项接纳、原始 usage 和全部失败均保留,报告继续显示语义复核待完成;仅有作者批准的捕获标为 exploratory_semantic_review_pending,不宣称独立验收通过。后续模型验收在具体授权范围内执行,并取得逐项独立输出复核。