novel-finalization — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited novel-finalization (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
由 novel-writer-workflow-guide 路由激活,当:
novel-chapter-sop)定稿不是再写一遍,是挑问题改问题。
90% 时间在发现问题 + 分级,10% 时间在最小化修改。这个比例反了,就会把稿子越改越烂。
单次 review 会漏。尤其是不同类型的问题需要不同视角:
一个 agent 在一轮里顾不过来。分轮 + 分视角。
| 轮次 | 视角 | 用哪个 agent | 重点 |
|---|---|---|---|
| 1 | 结构/伏笔 | general-purpose | 大纲对齐、伏笔是否都回收、情绪曲线 |
| 2 | 跨章一致性 | general-purpose | 对照四表(道具/时间/术语/数字)逐项核 |
| 3 | 语言/风格 | Explore | 引号、破折号、markdown、风格漂移 |
| 4 | 合理性/常识 | codex(如有)或 general-purpose | 司法/行业/地理/年代常识 |
| 5 | 终读(全文连贯) | 新开 general-purpose | 整本连读一遍,看节奏和读感 |
硬性要求:最后一轮必须是新实例 agent,不得复用前几轮看过全书的那个。
看过全书的 agent 会有"上下文偏见"(记得你 Ch 10 的铺垫,自动脑补 Ch 30 的转折合理)。新实例只看文字本身,像读者第一次翻开。
定稿前至少最后一轮终读必须用新实例。
不是所有问题都要改。分级 → 只改 P0 + P1。
| 级 | 定义 | 例子 | 必改? |
|---|---|---|---|
| P0 | 硬错误:逻辑矛盾、人物记错、事实错误 | 姓氏前后不一、司法程序倒错、年份不符 | 必改 |
| P1 | 明显影响阅读:语病、钩子失效、伏笔漏回收 | 钩子强度不足、段落读不通、伏笔悬空 | 必改 |
| P2 | 风格/逻辑可改进:可以更好但不算错 | 某句可以更精练、某个比喻可换、某段节奏稍松 | 择优改,改完重走 review |
P2 不是"坚决不改",是"择优改 + 改完必须重走一轮 review"。
该改的 P2:
不该改的 P2:
改 P2 必须满足三条:
每改一次 P2,引入新 P0/P1 的概率不低(手抖改错标点、复制粘贴带入 ASCII 引号、误删一个字、误破坏钩子节奏)。
规矩不是"不改",是"改了要付代价(重跑 review)"。
如果一个 P2 你觉得改了读感会明显提升 → 改,重跑 review。 如果只是"可以更好但不改也挺好" → 放下。
## Review Round N · [视角]
### P0(必改)
- [ ] Ch 12: 主角年龄写成 29 岁,按人物卡是 28 岁
- [ ] Ch 25: 时间标注"冬末",按时间锚应为"初春"
### P1(必改)
- [ ] Ch 07: 钩子强度 2,该章在情绪曲线应为 4 附近,强度不足
- [ ] Ch 18 伏笔"小灰猫"埋于 Ch 1,未见回收章
### P2(择优改,改了要重跑 review)
- [ ] Ch 03 某段比喻粗糙 —— **改**,改完重跑 Round N+1
- [ ] Ch 20 某段节奏略拖 —— **改**,和上一条一起
- [~] Ch 15 某句可以更短 —— **不改**(偏好,读着不卡)改最少的字、最少的行、最少的段。
反面例子:
P0 是"Ch 12 年龄写错成 29 岁"。 错误做法:把整章 Ch 12 重写,顺便"优化"人物描写。 正确做法:grep "29 岁" 所在段,只把"29"改成"28"。周围一个字都不动。
每次改动前自问:
如果一个 P0 牵连多章(比如改了某件事的时间,后面三章的时间锚都要调),必须连锁全改。但改之前先在修改清单里列出所有连锁点,一次改完,不留半成品。
不是按"第几轮 review"分 commit,是按问题性质分:
| commit 类型 | 包含 | 例子 |
|---|---|---|
fix: 跨章一致性 | 四表对齐的所有改动 | 道具状态、时间锚、术语统一 |
fix: 司法程序 | 合理性视角查出的硬错 | 一审终审、起诉书用词 |
fix: 引号/标点 | 机械扫描问题 | ASCII 引号、破折号超限 |
fix: 钩子强度 | P1 钩子失效 | 某章末尾加强钩子 |
fix: 伏笔回收 | 伏笔矩阵的漏收 | 补回收或明确删除伏笔 |
一个 commit 只做一类事。review 时很容易回滚单一类。
一次 review 会出各种问题,如果按轮次分 commit,后来回溯"这个字是什么时候改的"会看不清。按问题性质分,语义清晰。
fix(consistency): 统一关键旧档复印件的叫法
- Ch 16 / Ch 22 / Ch 30 / Ch 37 共 4 处
- 全部改为"父亲当年灭门那份旧档复印件"
- 消除"前世查封笔录复印件"的歧义叫法
Review: Round 2 · 跨章一致性"还差 2 万字"这种字数焦虑是长篇大忌。字数凑出来的章是最难读的章。
规则:
如果某章字数过长(3000+)又情节薄:
不压人物心理独白——那是女频/男频情绪含金量最高的地方。
如果某章字数过短(< 1500)又情节分量重:
不扩对话——对话加水最容易水。
有个拐点:前 3-5 轮 review 每轮都能抓出 P0/P1,第 6 轮开始大部分是 P2。拐点之后不是不改——P2 里是文风 / 逻辑问题的可以改,但改完必须重跑 review 确认没引入新 P0/P1。P2 里纯主观偏好的("这个比喻还能更好")就放下。
正文每章破折号 ≤ 7 个。这是数字可测的指标,比"读起来顺不顺"这种主观判断稳。(novel-consistency-guards 里有脚本)
自己读第三遍会跳读。新实例 agent 每个字都在看。发现的问题密度是自读的 3-5 倍。
写完一段时间后回头看,总会觉得"啊这段写得不够好"。这是作者的普遍焦虑。要判断是"具体能说出问题"还是"模糊地觉得不够好":
没必要每章都 5 分爆点。但全书均值 ≥ 3.5,读者追得动。均值低(大量 2 分)比峰值不够高更致命。
不硬加见上。不硬删:如果某章自然写出来 4000 字,情节合理读感好,不要为"每章控制在 3200"人工砍。章节字数有自然方差。
全书 review 收口前,过一遍:
check_consistency.py chapters/*.md 全部通过reviews/ 目录下)全书定稿完成,交付物应该包括:
chapters/01.md ... chapters/N.mdreviews/round1.md ... reviews/roundN.mdnovel-chapter-sop 产出的所有初稿章节 + 框架文档novel-consistency-guards 做全书机械扫描和跨章一致性核对novel-ideation)| 场景 | 动作 |
|---|---|
| 启动收口 | 跑一遍全书机械扫描,记录现状 |
| 安排 review | 5 轮 + 最后一轮新实例,按视角分 |
| 处理 review 结果 | 分 P0/P1/P2,只改 P0/P1 |
| 改一个 P0 | 最小改动,最好 1 行 Edit |
| 改完一类问题 | commit(按问题性质,不按轮次) |
| 准备发布 | 过"发布前最终检查清单" |
一本小说总工时的分布(经验值):
定稿占 1/3 以上的工时是正常的。想在 5% 时间定稿的,最后稿子都有明显 bug。收口这一步最值钱也最无聊——但它决定了读者愿不愿意读完。
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.