任务:回注通道——Circle 回注的知识经 Hub 确定性核验后入库(K2,范围已改)
范围改了(所有者 2026-10-23 傍晚):
- 候选留在 Circle 本地,不进 Hub。
- Circle 的整合技能(autodream,对应模型里的 P10)判定某条已经成为事实时,把它提交给 Hub。
- Hub 只做确定性核验,通过了才入库,成为产品的读者都能读的知识。
- Hub 里不再有按人私有的候选层。
原任务页里的核验规则不变:引文逐字、路径可解析、不越过声明、关系只记关系。依据:
docs/hub-r4-kb-direction.md第二、四、五节;- 本页下面的模型改写;
-
K02、K04、B01、B03、T04、P10,用
node tools/show-element.ts读。 - 分支和工作树:
kb-candidates,目录circle-hub-kb-candidates,在 WIP 2e7d567 上接着改。 - 可以改的路径:
contracts/**:只按下面的模型改写,加上已经加的三个轴;hub/knowledge/**:层的那一带;hub/runs/engine/**:回注运行写入那一段;hub/server/tools.ts和text.ts:只为把回注结果写进模型看得到的文本;- 新的工作流包
packs/workflow/knowledge-contribution/**,名字可以回报后再定; - 对应的测试和 README。
- 不再做,WIP 里已有的拿掉:
- 只本人可见的候选存储;
- 管理员看不到的会话摘录上传(
upload_file的knowledge_layer字段); - 提交摘要排除候选部分;
- 普通运行的提交里夹带候选。
已答复过的第 1、3 问因此作废(
upload_file的私有上传、提交摘要不含候选)。仍然有效的是:- 第 2 问:被引文档要过边界的范围核对;
- 第 4 问:模型只看文本,回执要写进文本;
- 第 5 问:三个轴。
- 规则:同前(不推送、不建 PR、不发布、不部署;不碰 7420、钥匙串、环境配置文件和任何真实系统;测试只用合成数据;
git commit -s)。 - 验证:
npx tsc --noEmit;node tools/gen-contracts.ts --check;node --test --test-concurrency=1对contracts/**、hub/knowledge/**、hub/runs/**、hub/server/**、packs/**。
模型改写
集成者是模型负责人,授权你在本分支照下面写进 contracts/model.json,再重新生成。加一条变更记录,来源写“所有者 2026-10-23 傍晚:候选留在 Circle 本地,成为事实后经整合技能回注,Hub 只核验”。
- K03 DEF 改为三个写入方:
- 树本身:生产器写;经核验的归位提议以后计入。
- 观察层:不变。
- 回注层:Circle 本地沉淀、判定成为事实后回注;Hub 按确定性规则核验后写入,产品的读者可读,带来源、提交人、会话和依据等级。
候选在 Circle 本地,不进 Hub。
- K03 R[4] 改为:回注的根据必须是 Hub 已存的源文件片段或设备回显。只有会话里人的说法作根据的,要负责人署名才写入;这一版先不入层,署名流程以后做。
- K03 R[5]:主语从“候选”改成“回注条目”,其余照旧。删掉“候选也没有已核验状态”这一句,因为回注条目是核验过的。
- K03 R[6] 改为:写回注层同样经过边界校验(引文逐字、适用条件、冲突)。回注本身是一次运行,提交按普通提交原样保存。
- W07 R[4] 改为:按文档的产出不随普通运行的提交,回注走单独的回注运行;按任务的产出仍只进运行记录。
- P10 DEF 改为:
- 包里声明的产品观察进观察层;
- 裁定进台账;
- 模型解读留在 Circle 本地,由 Circle 的整合技能判定成为事实后回注,Hub 核验后进回注层。
- K02 F[6] 里“候选的适用条件按判断记录”改成“回注条目的适用条件按判断记录”。
- knowledge_layer 轴的
candidate改为contribution,标签“回注层”。改动面太大就先回报。provenance_type的candidate不动。
要做的
- 回注运行。 一个通用工作流包,条目是四种按文档的产出(
document_output_kind:分类、归位提议、声明、关系)。- 每条带引文(引用加原文)和要挂的节点路径;
- 输入是它引用的源文件(运行绑定)和锁定的根;
- 核心里不写任何产品名。
- 确定性核验,不调用任何模型,WIP 里已有的照用:
- 引文逐字出自所引源文件,和边界用同一比对规则;
- 路径在锁定的根里能解析;
- 不越过声明:不改片段的来源类型,不添原文没有的适用条件;
- 关系只记关系和双方引用,不改任何一方;
- 根据只有会话说法的,不入层,回执写明“需要负责人署名,署名流程以后做”。
- 入层。 要求项全部满足的条目写进回注层:
- 绑定节点路径、被引片段摘要和根;
- 产品的读者可读,可见性在查询里过滤(K05 R[4]);
- 不计入根摘要。
没满足的不入层,回执给修正说明。
- 读。 get_nodes 读节点时,把回注层的条目一并返回:
- 各带来源、提交人、时间和依据等级,标明“回注”;
- 矛盾关系照 K3 打标。K3 的读侧在另一个分支,关系记录的形状合并时由集成者对齐,你把形状集中在一处。
- 按任务的产出(排序、取舍、分数)只进运行记录,测试钉住它们不进回注层。
- 测试全部用合成包和合成源文件,四种产出各有正例和反例。要覆盖:
- 引文不逐字;
- 路径解析不出;
- 越过声明;
- 只有会话根据;
- 产品的读者读得到、无权的人读不到;
- 根变了显示“被引片段已变”。
完成后在终端里回报:提交号(WIP 之后的提交,要不要压缩由集成者合并时定)、测试数量、没做完或拿不准的地方。合并前会请另一家族复核。