长篇生成小说一致性审计
> 适用:AI 批量生成的长篇小说/剧本(数百章、分卷、带 KB 设定库)。
> 目标:在不动原文的前提下,定位可复核的逻辑/衔接/关系硬伤,产出带章节证据的审计报告。
工作流(固定 5 步)
1. 盘点结构
- 找正文根目录(常是
chapters/或正文/),glob所有第XXX章*/*.md|*.txt。 - 解析章节号、标题、所属卷;统计每卷文件数,推断实际卷区(文件名最可靠,优先于 KB)。
- 跳过
_backup/备份/temp目录。
2. 建立权威基准(KB)
读取设定库里的"可核查事实"文件,例如:
- 人物出场表 / 角色关系图(谁在哪一章出场、关系)
- 年谱 / 重大事件时间线(关键节点年份)
- 写作追踪:伏笔追踪、冲突记录、state_tracking
- 写作规范:红线(如"X 前用吾、X 后用朕""古装线禁称 Y")
重点:记录 KB 内部是否自相矛盾(卷区、登基节点、死亡章、人物关系各文档说法不一)。
3. 脚本化全量扫描(核心)
用 Python 解析全部章节,产出可定位清单:
- 角色出场分布:每个关键人物的"首章-末章-出现章列表"(用最长/最具体子串匹配)。
- 禁用词红线:古装线是否出现被禁称呼(如 简中残痕/OpenClaw/小简)。
- 自称红线:登基/称帝节点之前是否出现 朕(需排除:其他皇帝自称、AI 视角输出)。
- 死亡/出场矛盾:A 角色"死/崩/薨"描述所在章;该角色在此之后是否仍被当作活体对话。
- 姓名异体:同一人物是否有两种写法(如 刘縯 vs 刘演、纟/氵 偏旁混用),用多个候选串分别计数定位。
- 中英文混排:[汉字]\s*[A-Za-z]{2,} 抓脏数据姓名(如 王 Duarte)。
- 时间词:提取 始建国/地皇/天凤/居摄/公元/CE/前1年 与章首年代,按卷区映射检查是否倒退/压缩。
- 卷接缝:dump 每卷首末章的开头 200 字 + 结尾 200 字,查年代是否倒挂、是否误标"全书完"、上一卷末角色在下一卷是否"复活"。
4. 精读核查疑点
对扫描命中的每一处,抽上下文(前后 100–120 字)判定真违规 vs 误报:
- "朕"在登基前 → 看说话人是不是皇帝本人或 AI。
- 角色"死后出现" → 看是追述/转述还是活体对话。
- 早期出场的重要人物 → 看是情报转述("听说有个人叫X")还是真实登场。
- 姓名异体 → 确认是否同一人(关系/情节一致)。
5. 产出报告(Markdown)
按严重度排序,每条含:问题 / 章节证据 / 性质 / 修复建议。分四节对应四维:
1. 人物关系混乱(称谓差辈、异体名、关系与 KB 冲突)
2. 逻辑漏洞(时间线倒挂/压缩、死亡节点错、红线违例)
3. 上下文衔接(卷接缝年代回退、伪"全书完"、雷同开头、双"本文完")
4. 故事连贯性(支线 Early-drop/悬空伏笔、未生成区间)
末附"已排除误报"清单(增强可信度)与"KB 规划层冲突"提示。
关键经验
- 文件名 > KB:实际卷区/登基节点以生成文件为准,KB 常滞后或自相矛盾。
- 先排除误报再下结论:自称、死后提及、早期情报转述极易误判,必须看上下文。
- 年代映射要落到具体章:把 KB 年谱的"CE年→章节"映射写成字典,再用章首年代反查,倒挂一眼可见。
- 输出报告后用
present_files交付,并把结论要点记入项目.workbuddy/memory/YYYY-MM-DD.md。
参考脚本骨架(按项目改角色表即可)
见同目录 scan_template.py(把 CHARACTERS / FORBIDDEN / DEATH_MARKERS / YEAR_MAP 换成本项目设定后跑)。