zizi 96aa1e61a3 框架(数据库+读取器): 落库 100 规划+冻结表,建冻结落库模块
- example_planning_section(规划/细纲/设定,书级/章级双部分唯一索引,shadow→confirmed)
  + example_context_freeze(冻结清单,append-only,manifestSha256 幂等)
- persist_context_freeze.py:assemble_context 之后由调用方落冻结(manifest/context哈希+纳入来源+省略项+预算),
  组装器保持不碰库(合同如此);dry-run 已验证
- read-context SKILL.md 增冻结落库挂点说明
2026-07-31 22:29:55 +08:00

7.4 KiB
Raw Blame History

name, description, disable-model-invocation
name description disable-model-invocation
read-context 统一创作数据读取器的操作合同。按冻结点从 PostgreSQL 读取可信来源,组装完整审计上下文,再为各角色生成最小可见投影。 true

统一读取器

本 skill 只落实读取与投影,不另行定义产品设计。四层语义、WriterContext 和评测边界以专题-03为 SoT;字段授权与统一读取规则以专题-06为 SoT。

输入

  • workId、targetChapter、asOf、scenario、purpose。
  • 已确认细纲、叙事状态、来源授权快照、卡索引版本、原文索引版本和上下文预算。
  • asOf 必须早于目标章;所有历史来源必须能证明 chapter <= asOf。

scenario 映射功能链分类:生成类为 generation,抽取类为 extraction,规划类为 planning,检测类为 detection,质量评审使用对应 writer 或 evaluator 的专用投影。此分类只标 scenario 走哪条功能合同,不是 WriterContext 的 purpose 字段——写手正文生成投影的 purpose 固定为 production(评测用 evaluation、诊断用 diagnostic),与 writer_contract.py 的枚举一致,传其它值会被安全拒绝。purpose 决定字段授权,scenario 决定功能合同,两者不得互相替代。

PostgreSQL 可信读取链

  1. 冻结检索计划:从已确认细纲的实体、关系和硬事件生成 RetrievalPlan。查询、过滤器、索引版本、预算和稳定排序在模型调用前固定。
  2. 卡只作索引:生产只读 active Canonical 卡和有效 binding。卡提供实体身份、当前状态和原文指针;卡摘要本身不能替代历史正文,也不能直接成为 supported/pass 证据。
  3. 按指针回读原文:在 REPEATABLE READ READ ONLY 事务中按 sourceVersion/sourceRefs/stateAsOf 回读 Canonical block。缺少可验证指针的内容只能作为未验证索引提示,不能进入事实证据。
  4. 双证据组装:连续前四章全文构成近期基线;卡指针召回的历史正文作为补充并按不可变来源去重。factEvidence 只接受冻结历史原文、正式设定、Canonical 状态或细纲明确声明的新事实,并保留各自权威引用。
  5. 确定性冻结:按 score DESC, sourceVersion ASC, sourceId ASC, sourceOffset ASC 排序,生成完整 WriterContext v1、RetrievalManifest、来源省略原因和上下文 hash。预算裁剪必须可审计,不能静默丢失硬约束或连续正文基线。
  6. 冻结落库(assemble 之后,调用方负责):assemble_context() 算出冻结后,调用方(生产编排 / 回放编排)调 scripts/persist_context_freeze.py,把冻结清单(manifestSha256/contextSha256/纳入来源/省略项/预算)落一行 example_context_freeze(append-only,manifestSha256 幂等)。组装器本身不碰库(合同如此),落库是调用方的事;回执表的 context_sha256 连本表 context_sha256 列。

对应机械实现:scripts/writer_contract.py、scripts/retrieve_writer_sources.py、scripts/assemble_writer_context.py、scripts/persist_context_freeze.py(冻结落库)。其中 retrieve_writer_sources.py 的冻结来源校验、内容泄漏审计与冻结原文只读装载复用 snapshot skill(build_snapshot.py/check_snapshot.py/audit_leakage.py/load_reference_work.py),单向向下依赖,不复制 SQL 或第二套权限语义。

四层稳定语义

层 稳定含义 主要内容 裁剪纪律
L0 当前任务 本次目标与输出合同 目标章、细纲、叙事状态、篇幅合同、用户本次约束 不得裁掉硬约束;易变指令尾置
L1 历史正文 叙事连续性证据 连续前四章全文、按卡指针回读的补充原文 先保连续基线;补充证据按预算稳定裁剪
L2 作品事实 冻结事实与状态 Canonical 卡索引、正式设定、叙事状态、已声明新事实 逐字段授权,不倾倒整库,不把未来状态降格为当前事实
L3 授权参考 非作品事实的授权资料 范式、样张、外部参考及其授权快照 只在 scenario 明确需要时加入,不得反向污染抽取事实

四层是编排器的审计结构,不等于把四层完整对象都交给模型。完整 WriterContext 留在可信边界,模型只收到角色专用投影。

角色可见性

角色 模型输入 明确不可见
writer WriterCreativeInput v2:fineOutline、narrativeState、factConstraints、proseExcerpts、patternReferences、lengthContract、styleConstraints runId、权限、manifest、hash、候选版本、实验臂、oracle、评审结论、检索工具
semantic detector semantic-detector-input-v3 的模型投影:当前候选、细纲/硬约束、事实证据、历史原文证据、asOf 真实实验臂、raw 路径、oracle、其他候选/评委、输入与候选 hash、receipt
blind judge writer-blind-input-v4 的模型投影:匿名候选正文、共同细纲、oracle 断言、通用指标与当前场景评分策略 真实 A/B/C、卡注入、证据策略、候选 hash、reviewer 身份、raw、其他评委结果
planner 冻结规划视图;只在 planning 授权下读取全局方向和未来规划 未授权原文、目标章之后的参考事实、评测答案
extractor 待处理原文、schema 合同和判重所需的既有知识 范式参考、未来内容、无来源推断

writer 的 factConstraints=[] 在冻结读取确实没有可确认事实时合法,但不代表事实已验证。候选中无法由现有证据判断的主张由 semantic detector 返回 unknown/evidenceGaps,由编排器补证、冻结新上下文并启动 fresh writer 调用。

可信绑定

  • writer 只返回 WriterDraft v2 的 candidateBody;adapter 生成 CandidateEnvelope v2,并绑定运行身份、候选版本、正文 hash 与上下文 hash。
  • semantic detector 和 blind judge 只返回各自模型草稿;字符 offset、输入/报告 hash、模型回执和最终状态均由 adapter 计算。
  • A/C 单变量回执比较 build_writer_creative_input() 的结果,只允许预注册卡处理与证据策略导致 factConstraints、proseExcerpts 与 patternReferences 差异;A 的 patternReferences 恒空,B/C 使用同一组冻结公共范式卡,细纲、叙事状态、篇幅和风格必须一致。

回显与存储

  • 安全回显只包含来源 ID/版本、章号、字符数、裁剪原因、状态和 hash,不包含原文、完整 prompt/response 或供应商原始响应。
  • 需要保留的 raw 输入、prompt、response、候选和 evaluator-only oracle 只能进入仓库外受控 raw vault,受显式授权、租约、保留期和清理回执约束。
  • 不生成或读取旧文件式上下文;PostgreSQL Canonical 数据与冻结回执才是运行事实。

红线

  • 模型不得自行访问数据库、搜索卡、回读文件或扩张检索计划。
  • 不得把卡摘要当正文替代品,不得因为有卡减少历史原文检索。
  • 不得把完整 WriterContext、raw 路径、授权密钥、真实实验臂或未来信息塞给模型。
  • 来源、字段授权、冻结点、hash 或预算任何一项无法验证时失败关闭,不靠重试或人工说明绕过。