【评测合同与提示词】 - writer/detector/judge 评测提示词去支架化:删评测身份/输出格式叮嘱/盲化反向叮嘱/机器字段 (改由运行时 --json-schema/--tools ""/--strict-mcp-config/输入设计强制),装回各角色本业纪律 - writer 加写作纪律:戏剧化节拍禁抄细纲概述句、具体压倒抽象、每场戏三件套、篇幅用场景写够不注水不缩水 - 篇幅自纠环修订指令区分偏短(加场景)/偏长(删冗余);机械门要求清单(章末钩子/硬事件/角色/伏笔)注入写手硬约束 - 引文校验从「必须恰好1次」放宽为「0次失败关闭、≥1次绑首次」(检测+盲评同口径) - llm 立 chat_governed 为主入口(chat 降为仅调试),clean_detect 改用 chat_governed 弃自带降级链 - rewrite/expansion/polish 输出合同对齐 writer.md(返回文本、写手不读写工作区、主会话落工作区) - 修复 confirm/replay-eval 探针两组坏自测(夹具适配现行合同、探针测试自包含不硬编码漂移哈希);补 clean_detect 离线测试 - AGENTS.md 新增 §10「Agent 提示词与 Skill 审查标准」 【skill 三层重组:单向依赖 底座→能力→编排,断两环+修生产倒挂】 - Phase 0: 新建 runtime 底座(claude_runtime/file_cas/raw_vault),断环 C1、修 continuation 生产倒挂 - Phase 1: 评分尺+门判(writer_rubric/fine_outline_rubric/writer_gate/gate_input_builder)收进 quality-gate,断环 C2、名实相符 - Phase 2: 升格管线从 parse-book 独立成 upgrade skill(备份审计契约键名稳定、仅改路径定位) - Phase 3: replay-eval 瘦成纯编排 - read-context 共用簇(build_snapshot/audit_leakage/check_snapshot/load_reference_work)下沉到新 snapshot skill,消除能力层向上引用 - Phase 4: run_writer_replay.py(130KB)拆成包(_common/budget/authorization/sample/blind/execute),__init__ 全量 re-export 测试零改动 【base 配置】三角色 effort 提 high;提示词更新;探针重测绑定 writer 合同;预算 writer 45 次/总 450 美元(含篇幅修订) 全量离线测试 36 个文件全绿;函数逻辑零改动(仅搬位置/改 import/改文档,capture_code_identity 仅改路径定位)。
6.7 KiB
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 可信读取链
- 冻结检索计划:从已确认细纲的实体、关系和硬事件生成 RetrievalPlan。查询、过滤器、索引版本、预算和稳定排序在模型调用前固定。
- 卡只作索引:生产只读 active Canonical 卡和有效 binding。卡提供实体身份、当前状态和原文指针;卡摘要本身不能替代历史正文,也不能直接成为
supported/pass证据。 - 按指针回读原文:在
REPEATABLE READ READ ONLY事务中按sourceVersion/sourceRefs/stateAsOf回读 Canonical block。缺少可验证指针的内容只能作为未验证索引提示,不能进入事实证据。 - 双证据组装:连续前四章全文构成近期基线;卡指针召回的历史正文作为补充并按不可变来源去重。
factEvidence只接受冻结历史原文、正式设定、Canonical 状态或细纲明确声明的新事实,并保留各自权威引用。 - 确定性冻结:按
score DESC, sourceVersion ASC, sourceId ASC, sourceOffset ASC排序,生成完整WriterContext v1、RetrievalManifest、来源省略原因和上下文 hash。预算裁剪必须可审计,不能静默丢失硬约束或连续正文基线。
对应机械实现:scripts/writer_contract.py、scripts/retrieve_writer_sources.py、scripts/assemble_writer_context.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-v3 的模型投影:匿名候选正文、共同细纲、oracle 断言、rubric |
真实 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差异;细纲、叙事状态、篇幅、风格和公共参考必须一致。
回显与存储
- 安全回显只包含来源 ID/版本、章号、字符数、裁剪原因、状态和 hash,不包含原文、完整 prompt/response 或供应商原始响应。
- 需要保留的 raw 输入、prompt、response、候选和 evaluator-only oracle 只能进入仓库外受控 raw vault,受显式授权、租约、保留期和清理回执约束。
- 不生成或读取旧文件式上下文;PostgreSQL Canonical 数据与冻结回执才是运行事实。
红线
- 模型不得自行访问数据库、搜索卡、回读文件或扩张检索计划。
- 不得把卡摘要当正文替代品,不得因为有卡减少历史原文检索。
- 不得把完整 WriterContext、raw 路径、授权密钥、真实实验臂或未来信息塞给模型。
- 来源、字段授权、冻结点、hash 或预算任何一项无法验证时失败关闭,不靠重试或人工说明绕过。