Novel Proofreader(小说校对与排版)
Overview
为小说 / 网文提供一站式质量检查与排版。机械类问题(自定义检测词检索、标点/全半角/空格/空行/章节标题)由 scripts/proofread.py 确定性处理;错字、词语错误、病句等需要语言理解的问题,由 AI 在流程中完成,最后合并为综合报告。针对长篇小说,还支持分卷处理(按卷/部/章节拆分、逐卷校对后再合并)与导出 EPUB 就绪格式(标准 EPUB 3 包,可直接用阅读器打开)。
When to Use
用户出现以下任意意图时触发:
- "帮我校对这篇小说" / "检查错别字" / "找错字病句"
- "排版一下我的小说" / "首行缩进、清理空行、规范章节标题"
- "检查有没有特定词/关注词"
- "标点符号用错了,帮我统一" / "全角半角混用"
- "这篇太长,分卷处理 / 拆成几卷分别校对"
- "导出 EPUB / 做成电子书 / 生成可以看的电子版"
- "长篇一键处理 / 自动分卷校对排版再导出 / 省 token 地处理长篇小说"
- 输入文件为
.txt/.md/.html/.docx/.epub/.rtf的小说/故事类文本
Resources
scripts/proofread.py— 校对与排版引擎(纯标准库,无外部依赖)。子命令:check(默认)、split、merge、epub、pipeline(一键流水线)。assets/wordlist.txt— 自定义检测词库模板(纯注释格式,用户按目标平台要求自行填写)。references/checks.md— 检查项分类、机械 vs 语义、词库扩展、报告产物说明。references/formatting.md— 排版规则、开关、txt/docx 段落模型与调用示例。references/epub.md— 分卷拆分/合并、EPUB 导出结构与调用示例。references/troubleshooting.md— 避坑指南:常见错误、格式限制、词库配置、分卷/EPUB 问题排查。
Workflow
第 1 步:确认输入与范围
- 确认输入文件路径与格式(
.txt/.md/.html/.docx/.epub/.rtf)。 - 询问/确认本次需要哪些能力(通常全选):自定义检测、标点/全半角统一、清理空行空格、首行缩进、章节标题规范化、语义校对(错字/词语/病句)。
- 确认检测词范围:默认使用内置
assets/wordlist.txt(空白模板,用户自行填写目标平台关注词)。若已有词库文件,用--wordlist 路径指定。
> 注意:非 .docx 源文件(.md / .html / .epub)输出的排版稿与分卷文件统一使用 .txt 扩展名,以避免破坏原格式的标记结构。原稿备份仍以原扩展名保存。
推荐:pipeline 一键流水线(长篇小说首选,低 token)
对于长篇小说,直接用 pipeline 把「分卷 → 逐卷机械校对 → 合并 → 导出 EPUB」一步跑完。机械部分(分卷、标点/全半角/空格/空行/章节标题、检测词标注)全部脚本自动完成,零 AI token;分卷文件与每卷机械报告会保留,供你(AI)逐卷做语义校对,避免一次性超出上下文。
# 按卷/部/册/集标记自动分卷,并跑完整流水线
python 本技能目录/scripts/proofread.py pipeline 长篇.txt --title "书名" --author "作者"
# 无卷标记时,按每 30 章切一卷
python 本技能目录/scripts/proofread.py pipeline 长篇.txt --by 30
# 仅切分+合并+导出,跳过机械校对
python 本技能目录/scripts/proofread.py pipeline 长篇.txt --no-proof
# 不导出 EPUB / 不合并 / 跑完清理中间分卷
python 本技能目录/scripts/proofread.py pipeline 长篇.txt --no-epub
python 本技能目录/scripts/proofread.py pipeline 长篇.txt --no-merge
python 本技能目录/scripts/proofread.py pipeline 长篇.txt --no-keep
产物:原名_卷NN.txt(分卷原文件,保留供逐卷语义校对)、原名_卷NN_校对排版稿.*、每卷 原名_卷NN_机械问题.json / 原名_卷NN_机械校对报告.md、原名_合订本.*、原名.epub、原名_pipeline清单.json(含逐卷文件映射与下一步指引)。
pipeline 跑完后,按 原名_pipeline清单.json 对各卷 _校对排版稿.* 做第 3 步的 AI 语义校对即可——每卷独立、token 可控。短篇/单文件仍用下面的 check。
第 2 步:运行机械检查与排版
用脚本处理输入文件(脚本目录见本技能 scripts/):
# 默认全套:检查 + 排版,生成排版稿/备份/JSON/机械报告
python 本技能目录/scripts/proofread.py 输入文件
# 仅先出报告(不改写文件)
python 本技能目录/scripts/proofread.py 输入文件 --check-only
可用开关:--no-indent --no-clean --no-chapter --no-punct --check-only --no-backup --summary(控制台输出紧凑摘要)--wordlist 词库 --outdir 输出目录。详见 references/formatting.md 与 references/troubleshooting.md。
脚本产物:
- 原名_校对排版稿.*:已应用机械修正与排版的版本(检测词只标注不删除)。
- 原名_原稿备份.*:原始文件备份。
- 原名_机械问题.json 与 原名_机械校对报告.md:检测词、符号配对、标点修正明细。
第 3 步:AI 语义校对(错字 / 词语 / 病句)
读取原文逐段通读,完成脚本无法替代的三类检查(依据 references/checks.md 第二节):
- 错字:形近/音近误用(的/地/得、在/再、做/作、已/己、侯/候 等)、乱码。
- 词语错误:生造词、词义误用、成语误用、冗余啰嗦、书面口语混用。
- 病句:主谓搭配、成分残缺、语序混乱、逻辑矛盾、指代不明、句式杂糅。
对每处问题给出:位置(第几段/原句)+ 类型 + 修改建议。可选择性地把修改直接落实到排版稿,另存为 原名_精校稿.*。
第 4 步:合并综合报告并交付
生成 原名_校对总报告.md,结构建议:
- 总览:文件、格式、段落数、检测词命中数、机械修正数、语义问题数。
- 自定义检测词:逐条列出位置与上下文,提示人工确认(不自动删)。
- 标点/排版修正:引用脚本的机械报告要点 + 已应用项。
- 错字 / 词语错误 / 病句:AI 语义校对的逐条结果(位置 + 类型 + 建议)。
- 交付物清单:排版稿、精校稿(如有)、原稿备份、各项报告路径。
- 提示:检测词需人工复核;语义校对为辅助建议,最终以作者判断为准。
向用户说明各产物的路径与用途,并强调:检测词仅标注未删、原稿已备份、语义问题为建议性质。
第 5 步(可选):分卷处理长篇小说
长篇小说一次性放入上下文会超出长度限制。分卷流程:
- 拆分:按「卷/部/册/集」标记自动检测分卷;若没有卷标记,可用
--by N指定每卷章节数。
bash python 本技能目录/scripts/proofread.py split 长篇.txt python 本技能目录/scripts/proofread.py split 长篇.txt --by 30 # 每 30 章一卷
产物:原名_卷01.txt、原名_卷02.txt… 及原名_分卷清单.json(记录每卷标题/章节数/段数)。 - 逐卷校对:对每个
原名_卷NN.txt运行第 2–4 步(机械 + 语义),得到各卷的排版稿/精校稿。 - 合并:把各卷(原始或已校对版本,按卷号顺序)合并为合订本。
bash python 本技能目录/scripts/proofread.py merge 原名_卷01.txt 原名_卷02.txt 原名_卷03.txt --out 原名_合订本.txt
产物:原名_合订本.txt(或指定--format docx)。
第 6 步(可选):导出 EPUB 就绪格式
把校对后的小说导出为标准 EPUB 3 电子书,可直接用阅读器打开(Calibre、Apple Books、微信读书导入等)。
# 默认先机械校对再导出;书名/作者写入元数据
python 本技能目录/scripts/proofread.py epub 小说.txt --title "剑来" --author "烽火戏诸侯"
# 按原文直接导出(不做机械校对)
python 本技能目录/scripts/proofread.py epub 小说.txt --no-proof --title "书名" --author "作者"
产物:小说.epub(结构与字段说明见 references/epub.md)。脚本自动按章节标题切分 XHTML、生成目录(nav + ncx)、写入样式与元数据;检测词仅标注不删除。
Notes
- 机械修正默认自动应用;检测词保守处理(只标注、不删除),避免误伤。
- 输入格式:
.txt/.md/.html/.docx/.epub/.rtf。非 docx 源输出排版稿统一为.txt(Markdown/HTML 的标记在校对时剥离,只保留纯文字;EPUB 按 spine 顺序提取章节正文;RTF 解析控制词和转义序列提取纯文本)。 - docx 读写均为标准库实现,无需
python-docx;但复杂格式(表格/页眉页脚/批注)在校对时不保留,需事后粘贴回原文档。 - 词库
assets/wordlist.txt可随时扩充,亦可用--wordlist指向平台专属清单。 - 语义校对依赖 AI 判断,对长篇小说推荐使用第 5 步的分卷流程或 pipeline 一键流水线,以控制上下文长度并保留逐卷精校质量。
- EPUB 导出为纯标准库生成的合法 EPUB 3 包;如需封面图或复杂版式,可在导出的 EPUB 基础上用专业工具(如 Calibre)进一步加工。