114 lines
9.5 KiB
Markdown
114 lines
9.5 KiB
Markdown
---
|
||
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 证据;不得静默改口径冒充同一策略族。
|