| name | novel-review |
| description | 合规与一致性审查 — OOC检测算法、剧情矛盾交叉验证、违禁词库、故意错别字反向检查、质量评分量化 |
| category | novel |
合规与一致性审查(可执行版)
输入
- 本章初稿(来自 novel-draft)
- 人物卡(来自
02-设定文档/人物库/,含对话风格字段)
- 伏笔追踪表(来自
02-设定文档/伏笔追踪表.md)
- 世界观设定(来自
02-设定文档/世界观.md)
- 故事线状态(来自
02-设定文档/故事线状态.md)
- 前5章正文(用于交叉验证)
⚠️ 第 1 章特殊处理:无前文章节可比对时,跳过:前文事件交叉验证(§2.3)、时间线交叉验证中的「日期倒退检查」和「跨章时间跳转检查」。仅做独立审查(OOC、违禁词、基本质量),报告中标注「第 1 章 — 无前文可比对」。
一、OOC检测算法(人物对话语气 vs 人物卡性格匹配)
1.1 人物卡对话风格特征向量(从 ## 对话风格 字段提取)
| 维度 | 取值 | 权重 |
|---|
| 正式度 | 粗俗(-2) / 随意(-1) / 中性(0) / 正式(+1) / 文雅(+2) | ×1.0 |
| 攻击性 | 温和(-2) ~ 激进(+2) | ×1.0 |
| 话量 | 寡言(-2) / 简练(-1) / 正常(0) / 话多(+1) / 啰嗦(+2) | ×0.8 |
| 情绪化 | 理性(-2) ~ 激动(+2) | ×0.5 |
| 口头禅 | 存在(0.3) / 缺失(0) | ×1.5 |
| 习惯用词 | 匹配(0.3) / 不匹配(-0.5) | ×1.2 |
1.2 匹配算法(对本章每个有台词的角色,逐句对话做同样提取)
OOC_score = Σ(weightᵢ × |chapter_featureᵢ - card_featureᵢ| / 4)
+ 口头禅惩罚(口头禅出现次数 < 人物卡设定一半 → +0.3)
+ 用语风格惩罚(逐句判断不符合人物卡「对话风格」的比例 > 30% → +0.5)
1.3 判断阈值
| OOC_score | 级别 | 处理 |
|---|
| 0 — 0.3 | ✅ 正常 | 不报 |
| 0.3 — 0.6 | ⚠️ 轻度OOC | 二级问题,标注「建议检查」,不阻塞 |
| 0.6 — 1.0 | 🔴 中度OOC | 一级问题,标记「建议修改」,阻塞通过 |
| > 1.0 | 🚨 严重OOC | 一级问题,必须修改 |
1.4 行为逻辑一致性检查(任一命中即标记 OOC)
- 冷酷型角色突然流泪(除非有前文情绪铺垫)
- 弱角色正面硬刚强敌且无合理策略(除非人物卡标注「冲动型」)
- 聪明型角色犯低级错误且无前文伏笔
- 恋爱线角色突然对第三者产生强烈好感(情感变化必须跨 ≥3 章铺垫)
一点五、人物一致性检查
1.5.1 核心规则
杜绝代理擅自创造角色。 正文中出现的每一个有名字的角色,必须在人物库中有对应注册。
角色分级体系:
| 角色级别 | 定义 | 注册要求 |
|---|
| 核心角色 | 有完整剧情线、≥5句台词、影响主线 | 必须有完整人物卡(≥12字段) |
| 次要角色 | 有一定剧情参与度、3-4句台词 | 必须有完整人物卡或简易卡 |
| 路人级角色 | 有名有姓但仅出场1-2句台词/1-2段描写 | ① 人物总表注册一行,或 ② 简易卡(≥6字段) |
简易卡 6 字段:姓名 / 性别 / 年龄(大致段)/ 身份 / 出场场景 / 对话风格(一句话)。模板见 templates/人物简易卡模板.md,创作流程见 novel-character §七。
1.5.2 检测流程
输入: 本章正文 + 人物库全部人物卡(含简易卡)+ 人物总表
步骤: ① 提取正文所有出现的人名(对话提及、旁白提及,首见去重)
② 提取人物库已注册角色名(文件名/「姓名」字段/人物总表条目)
③ 逐个比对,未注册者按级别判定是否达标
去重规则:通用称谓(路人、老者、小二、士兵、守卫、侍女等)不算角色名;「师父/师兄」等称号若指代已注册角色不算未注册,若指代独立有台词/行动的角色则需考虑注册。路人级判定:① 有名有姓(非通用称谓)② 台词/动作 ≤2 句 ③ 不推动主线(氛围/功能性出场)。
简易卡验证:字段 6-8 个为简易卡,>8 为完整卡;路人级有简易卡/完整卡/总表一行 → ✅;两者皆无 → ⚠️ 二级「未注册角色(路人级)」。
1.5.3 判断阈值
| 检测结果 | 级别 | 处理 |
|---|
| 全部角色均已注册 | ✅ 通过 | 不报 |
| 路人级未注册(无总表无简易卡) | ⚠️ 二级 | 补总表一行 / 建简易卡 / 改通用称谓 |
| 1-2 个非路人级未注册(仅1-2句台词) | ⚠️ 二级 | 补注册,或改通用称谓 |
| ≥3 个未注册(任何级别) | 🔴 一级 | 阻塞,回 novel-character / novel-new-book 补卡再审 |
| 1 个未注册但有紧密剧情互动(≥5句/独立行动线/影响主线) | 🔴 一级 | 阻塞,核心角色不能无人物卡 |
1.5.4 输出格式(追加在「五、故意错别字区分」之后)
### 六、人物一致性
| 序号 | 角色名 | 首次出现位置 | 角色级别 | 人物库状态 | 剧情参与度 | 处理建议 |
|------|--------|-------------|---------|-----------|-----------|---------|
| 1 | 张三 | 第5段 | 核心 | ❌ 未注册 | 5句台词 | 🔴一级:补充完整人物卡 |
| 2 | 李四 | 第12段 | 路人级 | ❌ 未注册(路人级) | 1句台词 | ⚠️二级:建简易卡或总表注册 |
| 3 | 王五 | 第20段 | 路人级 | ✅ 简易卡 | 2句台词 | — |
无未注册角色时:✅ 所有角色均已注册(含简易卡 X 张、人物总表条目 Y 条)
💡 角色级别:核心/次要/路人级;人物库状态:✅ 完整卡/✅ 简易卡/✅ 人物总表/❌ 未注册/❌ 未注册(路人级)。原 OOC 详情顺延为「七」、剧情矛盾检测顺延为「八」。
二、剧情矛盾检测算法
2.1 时间线交叉验证
输入: 本章时间标记 + 前5章时间标记
检查: ① 日期倒退(本章时间 ≤ 前一章) ② 同场景时间推进(每1000字 ≥ 5分钟)
③ 跨章跳转 >3天必须有过渡句 ④ 多人视角时间同步(同一时间点不同角色状态不冲突)
阈值: 日期倒退 → 一级阻塞;同场景 <1分钟/1000字 → 二级;跨章跳 >3天无过渡 → 二级
2.2 人物关系交叉验证
关系级别:1 陌生人 / 2 认识 / 3 朋友 / 4 亲密(挚友、恋人、师徒)/ 5 至亲(血亲、生死之交)
检查: ① 关系级别突变(如「陌生人→夫妻」同一章内) ② 称呼与关系匹配(仇人称兄道弟)
③ 权力关系颠倒(下属命令上级,无合理事件铺垫) ④ 死亡角色意外「复活」
阈值: 关系突变 ≥2级 → 一级阻塞;称呼冲突 → 一级阻塞;权力颠倒无铺垫 → 二级;复活无伏笔 → 一级阻塞
2.3 前文事件交叉验证
输入: 本章事件列表 + 故事线状态(含前5章梗概)+ 伏笔追踪表
检查: ① 引用前文未发生的事件(幻觉事件) ② 否定前文已发生事件
③ 物品/能力凭空出现(前文未获得,本章直接用) ④ 角色知识不合理
⑤ 伏笔回收与铺垫一致(暗示「神秘人」回收成「普通路人」=崩坏)
算法: story_state 摘要做 N-gram overlap(N=5),出现无 overlap 的新事件描述 → 标记;
伏笔追踪表「回收方式」vs「内容」语义相似度 < 0.3 → 标记崩坏
阈值: 幻觉事件 → 一级;前文否定 → 一级阻塞;凭空获得 → 二级;知识不合理 → 二级;回收崩坏 → 一级
三、违禁词库(番茄平台)
完整词表见 knowledge/违禁词库.json(version 3,7 大分类,命中按分类 level 处理:一级=必须修改,二级=影响推荐量)。审查时逐类检索命中并给出替换建议。 分类速查:
| 分类(json 键) | 级别 | 一句话说明 |
|---|
| 政治敏感 political | 一级 | 现实政治/领导人/领土/敏感历史 → 架空化(朝廷/皇室/禁军) |
| 色情描写 sexual | 一级 | 敏感部位细节/性暗示/擦边场景 → 一笔带过,仅到牵手拥抱 |
| 暴力血腥 violence | 一级 | 碎尸/内脏/虐杀等过度暴力细节 → 用「击杀」「斩杀」替代 |
| 平台特殊限制 platform_special | 一级 | 真实品牌/地名/人名、未成年恋爱、师生恋、乱伦、自杀吸毒赌博细节 → 不涉及 |
| 系统面板禁用词 system_banned_terms | 一级 | 系统文面板词(宿主、检测到、解锁、阶段等)→ 按书配置面板字段核对 |
| 写作风格 writing_style | 二级 | 书面语/弱动词(然而、此外、充满了、进行了)→ 替换见 novel-draft §1.1 |
| AI签名 ai_signature | 二级 | AI味词汇/句式(值得注意的是、内心深处、时光荏苒)→ 替换见 novel-draft §1.1 |
ℹ️ 番茄风格禁用词(19条)、禁用句式(novel-draft §1.2)、抽象表达规则均以 novel-draft 与 novel-polish 词表为唯一维护源,本文件不重复列表。
四、故意错别字反向检查
4.1 故意的(不报)
| 类型 | 示例 | 判断依据 |
|---|
| 角色口音/方言 | 「咋地」「啥子」「俺们」 | 匹配人物卡「口头禅」或「出身」字段 |
| 古风用语 | 「本座」「尔等」「便是」 | 匹配世界观设定(古代/仙侠) |
| 网络用语 | 「绝绝子」「栓Q」「YYDS」 | 符合角色年龄/职业设定(现代/年轻角色) |
| 谐音梗 | 「栓Q」「绷不住了」 | 出现在对话中,连续出现 |
| 外号/昵称 | 「狗蛋」「二哈」 | 人物卡/前文已建立 |
4.2 真错误要报的
| 类型 | 判断标准 | 阈值 |
|---|
| 单一错字 | 拼音输入错误、「在/再」「的/地/得」混淆,且不在对话中 | 1次=二级;同错>3次=一级 |
| 标点混用 | 中英文标点混用,非对话中 | 整章>5处 → 一级 |
| 空格异常 | 中文字间半角空格 | 任一出现 → 二级 |
| 重复字词 | 「他他他」「的的」 | 任一出现 → 一级 |
| 缺字漏字 | 句子明显不通顺 | 每章>2处 → 二级 |
| 人称错乱 | 「他/她」互换,性别不一致(非剧情需要) | 任一出现 → 一级 |
4.3 检测算法
for 每个句子:
在对话段内(引号内):
- 匹配人物卡口头禅/方言/网络用语/谐音梗 → 跳过
- 「的/地/得」「在/再」混用 → 视为口语化,交由 OOC(§1)判定;
若角色为知识分子/高冷型 → 标记为 OOC 问题
不在对话中(叙述段):
- 「的/地/得」「在/再」混用 → 一律真错误,按 §4.2 阈值处理
- 检查中英文标点混用、基本错字、重复字词正则 r'([\u4e00-\u9fff])\1{2,}'
→ 输出区分「对话内口语变体(由OOC判定)」和「叙述段真错误」两类
五、质量评分量化标准
5.1 评分维度与权重
| 维度 | 权重 | 满分 |
|---|
| 对话自然度 | 20% | 5分 |
| 节奏把控 | 20% | 5分 |
| 钩子吸引力 | 15% | 5分 |
| 信息增量 | 15% | 5分 |
| 文笔流畅度 | 10% | 5分 |
| 番茄平台适配 | 10% | 5分 |
| OOC控制 | 10% | 5分 |
5.2 各项评分细则(5→1)
对话自然度:5 每角色风格明显不同、与人物卡100%一致、无模板感 | 4 主要角色有区分度、次要略同质 | 3 差异不明显但自然 | 2 多角色语气雷同 | 1 像叙述、缺口语感或严重OOC
节奏把控:5 开场300字切入+中段推进+末段高潮+钩子,张弛有度 | 4 框架完整、某段略拖沓(如开场超50字)| 3 有明显拖沓/过快段但整体可读 | 2 连续两段节奏问题(如中段无冲突推进)| 1 全章平铺直叙或节奏极度混乱
钩子吸引力:5 明确悬念/反转/新危机,立刻想看下一章 | 4 有悬念但不够强烈,或老套但有效 | 3 存在但吸引力一般(如「突然……」「就在这时……」)| 2 钩子模糊,不清楚下章发生什么 | 1 无钩子或完全无吸引力(如「他不知道未来会怎样」)
信息增量:5 推进≥2条信息线(主线+新伏笔+世界观+新角色)| 4 推进1条且信息量充足 | 3 推进1条但信息量不足 | 2 少量增量,主要功能是过渡 | 1 纯过渡章,无剧情推进
文笔流畅度:5 无错别字、无标点混乱、句式有变化、段落≤5行、无禁用词 | 4 ≤2个二级问题 | 3 3-5个二级或1个一级 | 2 6-10个二级或2-3个一级 | 1 >10个二级或>3个一级
番茄平台适配:5 字数2000—2800(目标2350)、对话≥38%、无违禁词/禁用句式、段落≤5行、有效内容达标 | 4 字数偏差≤50字或对话35-39% | 3 偏差50-150字或对话30-34%或≤2个禁用句式 | 2 偏差>1500字或对话<30%或≥3个禁用句式 | 1 字数严重不符或多禁用句式/违禁词命中
OOC控制:5 所有角色 OOC_score ≤0.2 | 4 仅1个角色 0.2-0.3 | 3 1个角色 0.3-0.5 或 ≥2个 0.2-0.3 | 2 1个角色>0.5 或 ≥3个 0.3-0.5 | 1 ≥2个角色>0.5
5.3 综合评分计算
综合分 = 对话×0.20 + 节奏×0.20 + 钩子×0.15 + 信息增量×0.15
+ 文笔×0.10 + 平台适配×0.10 + OOC×0.10
5.4 综合评级
| 综合分 | 评级 | 含义 |
|---|
| 4.5 ~ 5.0 | ⭐⭐⭐⭐⭐ | 可直接发布 |
| 3.5 ~ 4.4 | ⭐⭐⭐⭐ | 建议发布,小修即可 |
| 2.5 ~ 3.4 | ⭐⭐⭐ | 需修改后发布 |
| 1.5 ~ 2.4 | ⭐⭐ | 需大幅修改,建议重写部分段落 |
| 1.0 ~ 1.4 | ⭐ | 建议重写本章 |
输出格式
## 📋 审查报告 — 第 X 章「章节标题」
### 一、总体结论
✅ 通过 / ⚠️ 不通过
### 系统面板合规检查
- 被动原则:无「检测到」「建议」「任务」「预警」「解锁」「第二阶段」
- 结算公式:结算基数 × 系数 × 结算比例(具体值见 `02-设定文档/书配置.md`,±5% 容差)
- 时间约束:结算仅凌晨 00:00
- 出场频率:每章 ≥1 次
- 面板字段:从 `02-设定文档/书配置.md` 的系统面板字段读取,核对一致性
### 问题清单
### 二、质量评分
| 维度 | 得分 | 权重 |
|------|------|------|
| 对话自然度 | ⭐/5 | 20% |
| 节奏把控 | ⭐/5 | 20% |
| 钩子吸引力 | ⭐/5 | 15% |
| 信息增量 | ⭐/5 | 15% |
| 文笔流畅度 | ⭐/5 | 10% |
| 番茄平台适配 | ⭐/5 | 10% |
| OOC控制 | ⭐/5 | 10% |
### 三、问题清单
| 序号 | 级别 | 类型 | 位置 | 问题描述 | 修改建议 |
|------|------|------|------|---------|---------|
| 1 | 🔴一级 | OOC | 第3段 第2句 | 冷傲师尊语气过于轻佻(OOC=0.72) | 将「卧槽」改为人物卡设定的文雅措辞 |
| 2 | ⚠️二级 | 错字 | 第7段 | 「的」应为「地」 | 修改 |
### 四、违禁词/禁用词命中
(列表 或 ✅ 未发现)
### 五、故意错别字区分
- 对话内口语变体(由OOC判定):N 处
- 叙述段真错误(要报):N 处
### 六、人物一致性
(见 §1.5.4 格式)
### 七、OOC 详情
| 角色 | OOC_score | 级别 | 具体问题 |
|------|-----------|------|---------|
| XXX | 0.72 | 🔴中度 | 语气偏离人物卡设定... |
### 八、剧情矛盾检测
(列表 或 ✅ 无矛盾)
有效内容双门槛审查(硬性,与字数分开验收)
字数达标(2000—2800)不等于审查通过。审查必须把字数达标和有效内容达标分开验收。
1. 密度门槛
- 每500字至少发生一次局势变化、信息增量、利益变化或冲突升级
- 连续150字无信息增量或局势变化,标记为疑似死水段(level=2 提示)
- 同一事实原则上单章只陈述一次;同一意象原则上不超过2次
2. 爽点兑现门槛
- 爽点或打脸兑现后,数字收益、群众反应、反派损失至少出现2项(三选二)
3. 章末钩子门槛
- 纯背影、夜色、看海、灯光或抒情收束不算章末行动钩子
4. 注水阻塞
- 命中实质注水(环境凑字、机械动作填充、静态等待、回忆复述、重复确认)判为一级阻塞问题,必须修改
注意事项
- 不修改正文,只输出审查意见;修改由 novel-polish 子技能执行
- 通过标准:所有一级问题(OOC/剧情矛盾/违禁词/注水)必须为 0
- 二级问题(对话占比/钩子/禁用句式/死水段/重复意象)不阻塞,但记录在报告中
- 综合评分仅供作者参考,不作为自动决策依据