114 lines
9.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: 评估内容质量
description: 按独立 rubric 评分在线正文、正文回放或细纲回放,产出逐维分数、引文证据与理由。候选交付用户前或回放实验需要独立质量判断时使用;只评分不裁决——集合级通过/不通过归 判定质量是否合格;不改候选、不放宽阈值。
disable-model-invocation: true
---
# 质量评分(scenario: quality_gate | 保护节点→judge | 上下文=writer 基线包,同证独立)
何时用:候选章交付用户前评分(C6);eval 收敛环的打分步。硬阻断三维(source_safety/output_compliance/static_contract)是规则层检查,不在评委职权。
**评分不等于裁决。** 本 Skill 回答"这一章多好",输出逐维分数与证据;"这一组样本够不够放行"由 `判定质量是否合格` 按父仓专题-04 的固定顺序裁决。达标口径(维度、锚点、阈值)的单一来源在本 Skill,裁决器导入而不复制。
## 输入
| 模块 | 职责 |
|---|---|
| `scripts/writer_rubric.py` | 正文 rubric 维度定义与结构化评审裁决(`writer_replay`/`quality_gate`);达标口径单一来源。 |
| `scripts/fine_outline_rubric.py` | 细纲 rubric 维度定义与报告校验(`fine_outline_replay`)。 |
| `scripts/run_writer_blind_judge.py` | blind judge v4 输入/报告绑定与 v3 模型输出适配、独立评审编排(向下引用 `执行角色任务`)。 |
依赖方向:本 Skill 向下引用 `执行角色任务` 与 `记录运行证据`,向上被 `回放评估细纲质量`、`回放评估正文质量` 与 `判定质量是否合格` 引用。
## 元数据驱动
维度体系是元数据(专题-04 §4 质量策略族)——维度/阈值/重写次数由策略定义,评委只执行不自造;策略变(如加维度),本 skill 更新表格,judge 一字不改。
## 叙事关键维度(各 1–5;三维全部 ≥4.0 = 过门;不达标触发 eval 环重写建议)
| 维度 | 5 分长什么样 |
|---|---|
| 设定一致性 canon_compliance | 与已确认正文/知识卡/正式规划/状态台账零冲突;有出乎意料处,回看全在设定与伏笔之内 |
| 角色声音 character_voice | 语言指纹可辨认——遮住名字能认出谁在说话;行为符合行事逻辑与近期章节表现 |
| 场景结构 scene_structure | 场景三件套(目标/推进/收束)齐整,因果与视角不断裂,与上章即时局面无缝衔接 |
## 非关键维度(各 1–5;只产生建议,不单独否决候选)
| 维度 | 5 分长什么样 |
|---|---|
| 文风贴合 style_fit | 对照文风画像与达标样张无违和;AI 味黑名单零命中 |
| 节奏张力 pacing_tension | 章目标完成,局面发生不可逆变化;章末钩子让人想点下一章 |
| 信息密度 information_density | 不过度解释不空泛;新信息与埋设按需给,无灌水段 |
| 情绪连续 emotional_continuity | 情绪变化有过渡,不突兀跳变 |
| 可读性 readability | 段落长度与句式无阅读阻力 |
## 输出合同
返回当前调用要求的结构化评分结果:逐维分数、引文证据和理由。报告存储位置由编排器决定;judge 不读取或写入创作目录。
## 数据边界
不读写创作正文/规划表。外部副作用:经 `执行角色任务` 的评委模型调用;raw prompt/response 由 `记录运行证据` 落受控归档;稳定报告后可写 `example_lesson`(效果信号,非正文)。评分报告只留分数、引文、理由与哈希。
## 红线
- **只评分,不改候选、不放宽阈值**。维度、阈值与重写次数是元数据(父仓专题-04 质量策略族),评委只执行不自造。
- **不产生 Gate 终态**。集合级通过/不通过只能由 `判定质量是否合格` 产生,本 Skill 与人工都不得改写。
- 每维必须给出可定位的引文证据;无证据的分数按不合约处理,失败关闭。
- 盲评隔离与逐字引文是硬门,不因重试放宽;第三稿仍不合约即失败关闭。
## 细纲回放 profile(`fine_outline_replay`)
细纲评分是结构事实评估,不复用正文 `style_fit`、`readability`、`文风一致性`、`文笔` 等维度。每维 1–5 分,分数必须有结构化证据摘要;评委只使用冻结快照和评测侧的 `reference scaffold proxy`,不读取目标章全文。
| 维度 ID | 评分问题 |
|---|---|
| `structure_completeness` | 目标、关键事件、实体、伏笔、状态变化和钩子是否齐全 |
| `direction_causality` | 关键冲突、结果方向和事件因果是否命中且成立 |
| `order_pacing` | 事件先后和章内推进节拍是否接近结构化标准 |
| `entity_state` | 实体身份、阵营、能力层级和 N 时点状态是否一致 |
| `foreshadowing_action` | 伏笔埋设、推进、回收和时机是否正确 |
| `handoff_hook` | 能否从 N 时点自然承接,并立住下一步钩子 |
评审报告使用以下最小形状:
```yaml
profile: fine_outline_replay
scores:
direction_causality:
score: 4
evidence: "事件-2 的触发和结果方向与标准事实摘要一致"
```
两次独立评审的同维差异大于 `0.5` 时只输出稳定性警告,不据此下卡效用结论。三臂顺序、arm 名称和卡 manifest 对评委隐藏;汇总报告分别给出每维分数、结构门结果、`B-A` 和 `C-A`,不压成没有统计意义的单一“卡质量总分”。
## 正文回放 profile(`writer_replay`)
正文回放与在线 `quality_gate`、细纲 `fine_outline_replay` 完全独立。当前策略版本为 `writer-replay-rubric-v2`:四个通用维度跨章节保持同义,另一个兼容维度按预注册场景类型加载独立问题、判据和五档分数锚点。每位 fresh 匿名评委最多调用三次:首轮或后续已返回草稿但被本地稳定合同拒绝时,可携带原草稿与错误原因纠错最多两次;任一轮是带可信成本回执的瞬时 `API_ERROR` 时,可不带 correction 重发同一盲评输入,但与格式纠错共用三次总调用额度。认证、预算、本地合同或成本未知错误不重试,第三稿仍不合约则失败关闭;逐字引文、完整覆盖和盲评隔离等硬门不因重试而放宽。模型输入同时给出精确候选/维度/断言/约束顺序、期望数组数量、完整评分策略元数据,以及从当前候选确定性切出的逐字引文提示;adapter 仍独立重算笛卡尔积并逐字校验。失败安全诊断只记录错误码、尝试/评委/调用次数、数组计数及缺失/重复/越界计数,完整草稿只进入 raw 归档。adapter 保留全部调用回执,只允许有可信成本的 API 失败回执出现在最终成功之前,并把最终合约报告绑定到对应终稿回执,再绑定 reviewer 身份、候选 hash、字符 offset、输入/报告 hash。每维 0-10 分、0.5 步长;双评委独立无会话,第二评委严格反序。报告在去盲前只保留随机候选 ID,禁止出现 A/B/C 或证据策略名称。
| 层 | 维度 ID | 评分问题 |
|---|---|---|
| 通用 | `setting_entity_fidelity` | 设定、实体、关系、能力边界和冻结时点状态是否保真 |
| 通用 | `fine_outline_fidelity` | 细纲硬事件、结果方向、伏笔动作、出场实体和章末钩子是否忠实 |
| 通用 | `style_consistency` | 与冻结历史原文的人物声音、动作习惯、句式和叙事质感是否一致 |
| 通用 | `prose_readability` | 语言、指代、空间、动作和转场是否准确、自然、清晰 |
| 场景 | `narrative_tension` | 兼容 ID;必须按当前场景策略评分,不得按抽象通用“紧张度”评分 |
| 场景类型 | 场景评分问题 |
|---|---|
| `battle` | 战斗的空间、攻防因果、策略升级、力量边界和结果代价是否成立 |
| `character_dialogue` | 人物声音、对话目标、潜台词、关系推进和信息交换是否成立 |
| `turning_point` | 转折是否有前因、触发、不可逆变化、人物反应和后续驱动力 |
| `information_reveal` | 信息来源、知情边界、揭示时机、清晰度和揭示后的影响是否成立 |
| `returning_character` | 角色状态与声音是否连续,回归动机、他人反应和剧情作用是否成立 |
通用维度可以跨章节聚合;场景维度只能在相同场景类型内聚合。跨场景平均会让一类场景的增益抵掉另一类的退化,因此聚合规则是 rubric 的一部分,不是裁决器的自由裁量;据此产生的场景级失败条件见 `判定质量是否合格`。
每维必须给出具体 `reason`、在对应候选中唯一可定位的 `candidateQuote` 和受控 `evidenceRefs`。模型证据类型只能是 `candidate`、`fine_outline`、`oracle_assertion` 或 `judge_inference`,引用 ID 必须来自当前匿名输入;盲评输入不含卡,禁止评委声称证据来自 `card_index`。模型还必须给出每维匿名候选完整排序,并逐候选覆盖全部 oracle assertion 与 hard constraint verdict。双评同维分差大于 0.5 时启动且只启动一次 fresh 第三评委。第三评后,任一评分对差值不大于 0.5 则取三者中位数;否则整章为 `invalid_unstable`,不得强行计算胜负或进入 Gate 增益统计。
## 复利合同
- 评分报告与 rubric 版本是 Gate 与归因的输入证据。
- **回写**:`run_writer_blind_judge_panel` 在稳定报告产出后经 `propose_lesson_dedup` 登记 `example_lesson`(绑 `runId`、rubric 版本与候选哈希);离线测试传 `persist_lesson=False`。Gate 终态 lesson 仍由 `判定质量是否合格` 单独登记,标题不冲突。
- rubric 维度/阈值变更必须版本化并留 Git 证据;不得静默改口径冒充同一策略族。