zizi abadaa15e9 框架: 正文评测链职责重构收口(writer/detector/judge 单一职责)+决策修复+加固门+探针刷新
- writer/detector/judge 按父仓专题-03/04 单一职责拆分:WriterDraft v2(仅 candidateBody)、CandidateEnvelope v2(adapter 确定性绑定)、SemanticDetection v3(quote 唯一匹配/unknown-gapReason)、blind judge v3(双盲第三评中位);预算两层(启动预留=Σ plannedCalls×cap,修正旧 maxCalls×cap 的 $2250 阻断 bug)。

- 决策修复:补第六类混淆项「场景选择偏差」(集合级、只标注不改终态);模型归属口径(planner/writer/judge 固定 opus,extractor/detector 可用它模型,拆书走 M3 不经角色派发);eval 评分尺改链接+一句话引用 quality-gate。

- 加固执行门:探针合同绑定(probe.executionProfileSha256 须等于 writer profile 身份哈希),陈旧探针被机械阻断 EXECUTE_PROBE_CONTRACT_MISMATCH。

- 新增探针刷新工具 refresh_runtime_probe.py(可注入 invoker+失败关闭+重签同源 canonical_sha256),并已按新合同真实重测探针(绑定 9d319ea0,成本 $0.155)。

- 逐行复核后修复:省略号被当路径穿越误杀(claude_runtime 共用精确判定 contains_path_traversal,盲评/检测统一引用);检测 failed 分支测试缺口;评委报告↔模型原始输出绑定恢复(reviewerStructuredOutputs,防一致篡改报告评分);上下文 purpose 词汇两层对齐;盲评死代码清理。

- 全量离线测试约 800+ 项全绿(continuation/detect/quality-gate/read-context/replay-eval/parse-book 572/llm),不连库不调模型。
2026-07-25 04:44:10 +08:00

5.2 KiB
Raw Blame History

name: detect description: 检测的功能合同(scenario: validation/consistency_check/fine_outline_replay,检测槽位)。检查清单由 schema 字段自动生成——凡 aiContext 含 detection 的字段即检查项。 disable-model-invocation: true

检测(scenario: validation / consistency_check | purpose: detection | 槽位: 检测→detector)

何时用:候选章生成后、用户三决策前的伴随检查(C4);也可对既有章回溯检查。

正文候选执行顺序

  1. 先运行 scripts/check_writer_candidate.py;它只做确定性机械硬门,不调用模型。
  2. 机械硬门阻塞时直接返回结构化失败码,保留审查轨迹,不调用语义 detector。
  3. 机械硬门通过后,编排层构造 semantic-detector-input-v3,再以 fresh 无会话调用执行一个候选的语义核查。
  4. 模型只返回 semantic-detection-draft-v3;adapter 负责绑定输入、候选、上下文、模型回执、字符 offset、状态和报告 hash,形成 SemanticDetection v3。异常、非法结构或绑定不一致全部失败关闭。

当前机械硬门覆盖:WriterContext v1、CandidateEnvelope v2、上下文与候选 hash、篇幅、细纲事件/角色/伏笔/章末钩子锚点。事实断言、角色知情范围、能力代价、语义冲突、新设定识别和证据缺口属于 semantic detector,不得塞回 writer 输出或机械门。

元数据驱动(本功能的核心机制)

检查清单由字段生成,不硬编:凡 aiContext 含 detection 的字段,自动成为一个检查项——

字段(来源) 检查什么
character.知情范围 角色说出/表现出不该知道的事("说漏嘴"是第一大穿帮)
character.行事逻辑/说话方式 言行与语言指纹逐一核对
power_system.代价限制 境界与能力是否越过体系代价
location.规则特例 地点规则是否被违反
item 能力边界 物品表现是否超出卡面
演变历程(各实体型) 演变连续性/跳级穿帮(上一章还4级、这一章突然7级;登场/退场节点缺失或时间线倒挂)
outline.伏笔动作 埋/推/收是否照细纲执行,有无擅自新开或提前回收
work_core.谜底与真相/结局方向 防提前泄底——这正是检测可见底牌的原因
style 黑名单与画像 Grep 逐词扫黑名单;宣告情绪/形容词堆叠/无三件套场景抽查
narrative_state 时间线/即时局面/角色位置衔接

schema 给字段加上 detection 用途,检查项自动+1,本 skill 与 detector 一字不改。

输出合同

模型草稿必须精确包含:

schemaVersion / claims[] / findings[] / assertionVerdicts[] / hardConstraintVerdicts[] / newSettingCandidates[] / evidenceGaps[]

claims 明确候选中的事实主张与覆盖状态;findings 记录可定位问题;verdict 完整覆盖输入登记的 assertion/constraint ID。只有 evidenceGaps 或 unknown 可以触发编排器补证;纯机械失败或明确语义失败直接拒绝,不以同一输入重试。补证后必须冻结新的上下文快照和新的 WriterCreativeInput,再启动 fresh writer 调用。

最终 SemanticDetection v3 由 adapter 增加运行身份、候选/上下文 hash、字符 offset、模型回执、状态和报告 hash。模型不得输出这些可信字段。

细纲回放分支(fine_outline_replay)

何时用:fine-outline 候选进入独立评分前。检测器只看冻结到 as_of 的规划上下文和候选,不看目标章标准事实,不把评测答案倒灌回规划侧。

检查对象和证据格式:

检查对象 检查项 高严重度条件 证据必须包含
候选结构 必填字段、目标章号、事件 ID、事件顺序 缺字段、重复事件或目标章错误导致无法评估 字段路径 + 候选值摘要
因果链 事件触发、行动、结果方向是否自洽 后一事件无前置、结果与前置状态矛盾 事件 ID 对 + 冲突原因
实体状态 角色/势力/地点/能力是否违反冻结事实 引用未来事实或越过 N 时点能力边界 sourceId + 冻结字段
伏笔动作 埋、推进、回收和不确定标记 将未知或未来回收写成确定事实 伏笔标识 + 当前台账定位
来源引用 sourceRefs 是否来自快照、是否包含目标章及以后 目标章/未来来源出现在候选引用中 来源 ID + 章号范围
未知项纪律 unknowns / assumptions 是否显式承载缺口 用无来源断言替代未知项 候选字段路径

机器报告的类别是闭集:findings.category 只允许 candidate_structure、causal_chain、entity_state、foreshadowing_action、source_reference、unknowns_discipline;coverageFindings.category 只允许 frozen_context_gap。未登记类别不得用近义词或变体绕过,编排器必须失败关闭。

报告仍然只产审查结果,不修改候选。回放中任一高严重度问题阻断该臂进入 judge;目标章新角色是否缺卡需要目标章标准事实,detector 无权判断,归 judge/eval。

红线

只产报告,不改任何创作文件;证据先行——无依据的观感问题归「建议」并标明主观;底牌信息仅用于检测判断。