# Novel Polish

> 内容优化打磨 — 针对novel-review问题清单逐条修改，润色对话、增强画面感、强化钩子、注入网感，产出定稿

- Skill: `cwjdong-design/novel-polish-2` (Agent Skill)
- Install (CLI): `npx skillmds@latest add cwjdong-design/novel-polish-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cwjdong-design/novel-polish-2/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: cwjdong-design (https://skillmd.com/u/cwjdong-design)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cwjdong-design/novel-polish-2

---


# 内容优化打磨

## 输入
- 本章初稿（来自 novel-draft）
- 审查报告（来自 novel-review）

## 作者设定

> 从 `~/.hermes/skills/novel/knowledge/作者设定.md` 读取，不再内联硬编码。

---

## 一、根据 novel-review 问题清单逐条修改

> ℹ️ **职责定位**：polish 是质量兜底环节。draft 阶段尽力避开了大部分问题，但审查可能揭示遗漏。polish 负责修正审查中发现的所有 P0 问题（OOC、剧情矛盾、平台违禁），以及 P1/P2 优化项。

### 1.1 问题类型 → 修改策略对照表

| 审查类型 | 问题子类 | 修改策略 | 示例 |
|---------|---------|---------|------|
| **OOC** | 对话语气不符 | 回到人物卡，重写该句台词，确保符合角色口语特征 | 「我不同意这个方案。」→ （混混角色）→ 「这法子不行。换个。」 |
| **OOC** | 行为逻辑不符 | 检查人物背景、当前情绪状态，重写该行为，加动机暗示 | 突然打人 → 先加一句触发语/回忆闪回 |
| **OOC** | 情感变化无铺垫 | 在该段前插入 1-2 句情感过渡（动作暗示，不写内心戏） | 突然哭 → 前面加"她盯着那行字，看了很久" |
| **剧情矛盾** | 与前文冲突 | 逐段对比前文对应段落，修改矛盾点；如果前文必须改，标记为"需回溯修改" | 人物上一章在城东，这章突然在城西 → 加过渡句 |
| **剧情矛盾** | 时间线混乱 | 重新检查时间跨度，加时间标记词（"第二天""三小时后"） | 无时间标记 → 关键位置插入时间锚点 |
| **平台合规** | 违禁词 | 直接替换：暴力→动作暗示，色情→留白处理，品牌名→虚构名 | 「奔驰」→「黑色轿车」 |
| **平台合规** | 敏感内容 | 不正面描写，用第三者反应侧面表现 | 血腥场面 → 「旁边的人捂住嘴转过头去」 |
| **伏笔不一致** | 回收与铺垫不匹配 | 检查伏笔追踪表，调整本章回收程度或修改铺垫 | 计划第10章回收的伏笔，第5章就回收了 → 只暗示，不完全回收 |
| **基础质量** | 字数不足/超标 | 不足：退回 novel-plot/novel-skeleton 补充有效冲突回合或主角主动决策（不得用环境补字）；超标：压缩最弱的场景 | 1700字 → 退回骨架，增加冲突回合 |
| **基础质量** | 对话占比不达标 | 找到最长段的纯叙述段落，改写成对话+动作形式 | 3段连续叙述 → 改成人物之间的对话场景 |
| **基础质量** | 缺少钩子 | 使用 novel-draft 第5章模板，从本章已有信息中制造钩子 | 平淡结尾 → 从本章埋的伏笔中抽一个做悬念结尾 |

### 1.2 修改优先级

```
P0（必须改）：OOC、剧情矛盾、平台违禁
  ↓ 先改这些，改完再往下走
P1（尽量改）：字数、对话占比、缺钩子
  ↓ 调整过程中注意不要引入P0问题
P2（优化项）：伏笔匹配度、对话自然度、节奏感
  ↓ 在前两项改完的基础上做精细化打磨
```

### 1.3 修改原则

1. **最小改动**：能用1句改好的不用3句
2. **不改剧情结构**：不增删场景，不改变核心事件走向
3. **每改一处对照原句**：确认核心信息不丢失
4. **改后重读上下文**：确认修改在语境中自然

---

## 二、对话润色方法论

### 2.1 去废话——三刀流

找到每个角色的台词，砍掉三种废话：

| 废话类型 | 特征 | 改法 | 反例 | 正例 |
|---------|------|------|------|------|
| 重复废话 | 同一信息说了两遍 | 删掉后面那句 | 「我知道了，我已经明白了。」 | 「知道了。」 |
| 客套废话 | "你好""谢谢""不好意思"在紧张场景 | 全部删掉 | 打架前：「不好意思，我要动手了。」 | 直接动手。 |
| 解释废话 | 人物把自己动机说出来 | 用动作暗示，不解释 | 「我去救她，因为我不想她死。」 | 他没说话，翻身跳下了墙。 |

### 2.2 加动作——对话+身体语言

**原则**：动作只在承担叙事功能（定位、阻碍、信息、伏笔、选择或结果）时才插入，不强制每轮。当对话缺乏节奏感时，可参考以下4种插入位置，但不得机械填充：

**动作的4种插入位置**：
1. **说之前**（姿态/情绪）：他往后退了一步。「……」
2. **说之中**（打断/停顿）：「我——」他咬住嘴唇。「——算了。」
3. **说之后**（反应）：对方没接话。他把烟掐了。
4. **沉默代替台词**：她不说话，只盯着他看。

```
❌ 反例（纯对话，无动作）：
「你到底想怎样？」
「我要一个解释。」
「没有什么好解释的。」
「那就别怪我不客气了。」

✅ 正例（对话+动作）：
「你到底想怎样？」她把手机往桌上一拍。
「我要一个解释。」他没动。
她笑了。那种笑不对。「没有什么好解释的。」
「那就别怪我不客气了。」他站起来。椅子刮过地板，声音刺耳。
```

### 2.3 调语序——让对话更像"说"而不是"念"

**口语 vs 书面语对照**：

| 书面语（AI味） | 口语（人话） |
|-------------|-----------|
| 「你是否已经做出了决定？」 | 「想好了？」 |
| 「我需要你立刻离开这里。」 | 「走。现在。」 |
| 「这件事并不是你想象的那样。」 | 「不是你想的那样。」 |
| 「我对于这件事没有任何意见。」 | 「我没意见。」 |
| 「请你不要再继续纠缠这个问题了。」 | 「够了。别问了。」 |
| 「他所做的一切都是为了保护你。」 | 「他做这些都是为了保护你。」 |

**语序调整口诀**：
- 把"是否"删掉 → 直接发问
- 把"进行""做出""给予"删掉 → 动词直接上
- 把长定语拆短 → "那个站在门口穿着黑色衣服的男人" → "门口那男的，穿黑衣服的"
- 把状语调到动词后面或句首 → "他用力地把门推开" → "他推开门，使了劲的"

### 2.4 角色语言差异化复查

逐角色检查台词，确保每个角色的语言特征与 novel-draft 第3.2节的设定一致。特别注意：
- 底层角色说的话不能太文雅
- 高冷角色的台词最短，不带语气词
- 同性别角色之间要有区分度

```
❌ 反例：两个混混角色说话一样
阿强：「我觉得这个方法不太行。」
阿彪：「我也这么觉得。」

✅ 正例：两人说话要有差异
阿强：「这法子不行。」
阿彪：「扯淡。试试怕什么？」
```

---

## 三、画面感增强 — 五感描写体系

### 3.1 五种感官的使用时机

| 感官 | 最佳插入时机 | 密度 | 示例 |
|------|-----------|------|------|
| **视觉** | 新场景进入时（可选） | 用于定位或氛围暗示时可用 | 夕阳把整条街烧成了橙红色。 |
| **听觉** | 紧张/安静场景 | 每500字1处 | 走廊尽头传来脚步声。一下，一下，很慢。 |
| **触觉** | 打斗/身体接触/环境变化 | 打斗场景必要时才用 | 刀柄是冰的。握久了也没暖起来。 |
| **嗅觉** | 场景转换时/人物出现时（标志性气味） | 全文1-2处 | 她经过的时候，有一股旧书的味道。 |
| **味觉** | 吃/喝场景，或极端情绪（血腥味等） | 全文0-1处，非必需 | 嘴里全是铁锈味。 |

### 3.2 五感描写的密度控制

```
场景密度建议：
- 日常场景（街边/家里）：视觉 + 听觉 = 够用
- 紧张场景（追逐/潜伏）：视觉 + 听觉 + 触觉
- 重要场景（高潮/关键相遇）：视觉 + 听觉 + 触觉 + 嗅觉（4感交织）
- 味觉：慎用，只在吃喝/受伤场景出现
```

### 3.3 五感描写正反例

```
❌ 反例（五感堆砌，AI味重）：
他走进房间，看到破旧的墙壁，听到窗外传来的嘈杂声，闻到空气中的霉味，摸到桌面上的灰尘。

✅ 正例（五感自然穿插）：
推开门，一股霉味。窗帘拉着，光线很暗。他在墙上摸开关——摸到一手灰。窗外有人在吵架，声音尖利。
```

### 3.4 环境描写的功能性原则

**每个环境描写必须满足以下至少一个功能**（否则删除）：
1. 暗示人物状态（破窗→人物的困境）
2. 营造氛围（阴天→不祥预感）
3. 推动剧情（灯光熄灭→事件即将发生）
4. 人物关联（她桌上的照片→暗示过去）

```
❌ 反例（纯风景描写，无功能）：
天空湛蓝，几朵白云飘过，微风轻拂，树叶沙沙作响。

✅ 正例（功能性环境描写）：
天很蓝。蓝得不正常。他眯着眼看了三秒，发现那不是天——是屏障。
```

---

## 四、钩子强化 — 从"还行"到"必须点下一章"

### 4.1 钩子强度评估

拿到初稿的章末钩子后，用以下标准评定：

| 等级 | 特征 | 判定 |
|------|------|------|
| **S级** | 读者看完必须立刻点下一章，不点睡不着 | 保持，不强化 |
| **A级** | 有悬念但读者能猜到可能的发展方向 | 需要强化 |
| **B级** | 有转折但力度不够，读者可看可不看 | 需要重写 |
| **C级** | 没有钩子，平淡收尾，像段落结束 | 必须重写 |

### 4.2 钩子强化技巧（B→A, A→S）

#### 技巧1：信息差压缩
弱钩子往往是信息量太大，读者已经猜到。
**改法**：删掉解释性内容，只留最反常的那个事实。

```
❌ B级：他打开盒子，里面是一张照片。照片上是十年前的他。原来这一切都是他的过去在追着他。
  → 说了太多，读者已经知道答案了。

✅ A级：他打开盒子。
  里面是一张照片。
  十年前的他。
  照片背面写着一行字，字迹是他的：「别打开。」
```

#### 技巧2：时间悬崖
弱钩子是静态的展示悬念。
**改法**：给悬念一个倒计时，制造紧迫感。

```
❌ B级：她发现了密室里的秘密文件，不知该怎么办。
  → 静态，读者已经在想"明天再说"。

✅ A级：她看完最后一行，墙上的钟正好走到三点。
  走廊里响起了脚步声。
  越来越近。
```

#### 技巧3：视角强制限缩
弱钩子是上帝视角预告（"他不知道，这将改变他的一生"）。
**改法**：收缩到人物的第一视角感知，展现他感知到的反常细节。

```
❌ B级：他不知道，自己已经被盯上了。
  → 上帝视角，读者觉得作者在吓人。

✅ A级：烟抽到一半，他停了。
  对面楼顶有什么东西在反光。一下，一下。
  像在给他打信号。
```

#### 技巧4：情感闪入
弱钩子是外部事件的悬念，读者跟人物没有情感共鸣。
**改法**：在外部事件中插入一个情感细节，让悬念带上温度。

```
❌ B级：门突然被敲响了。深夜来访，一定没好事。
  → 纯外部悬念。

✅ A级：门响了。
  他手一抖，杯子掉在地上。不是因为突然——是因为他认得那个敲门声。
  他妈以前就这样敲，三下，停一秒，再三下。
  可她已经死了六年了。
```

#### 技巧5：规则颠覆
弱钩子是已知规则内的悬念（"更强的敌人来了"）。
**改法**：打破已建立的规则，暗示更大的未知。

```
❌ B级：他的对手比他想象中强大得多。
  → 还是已知框架内的悬念。

✅ A级：他发现自己伤不了对方。不是因为对方多强——是他的技能图标全灰了。
  系统提示音没有响。
  取而代之的是一行他没见过的红字：「检测到宿主异常。系统已冻结。」
```

### 4.3 钩子强化操作流程

```
1. 定位钩子（本章最后3-4段）
2. 评估当前等级（S/A/B/C）
3. 如果是 S → 不改
4. 如果是 A → 用技巧1-3中的1种强化
5. 如果是 B → 用2种技巧叠加
6. 如果是 C → 从本章已有的伏笔/细节中找原料，用技巧重新构造钩子
7. 强化后自检：钩子是否≤200字？是否自然？是否戛然而止？
```

---

## 五、网感注入 — 自然加入网络梗和俚语

### 5.1 网感注入原则

1. **宁缺毋滥**：每章网感元素 1-3 处，绝不堆砌
2. **服务于人物**：网感是角色说的话，不是作者的评论
3. **避免过时梗**：不用明确时间标记的梗（年份梗、特定事件梗）
4. **冷感注入**：作者风格偏冷，网感也要冷——不说破，不解释
5. **禁止大段玩梗**：网感是调料，不是主菜

### 5.2 可用的网感元素类型

#### 类型1：当代口语接头词
在人物对话中自然使用当代口语，不做解释。

| 可用词 | 词性 | 用法示例 |
|-------|------|---------|
| 就很 | 强调 | 「就很离谱。」 |
| 主打一个 | 概括 | 「主打一个不怕死。」 |
| 头铁 | 形容词 | 「这人头铁得很。」 |
| 社死/社恐 | 状态 | 「这一下直接社死。」 |
| 破防 | 情绪 | 「一句话给他整破防了。」 |
| 暴躁 | 状态 | 「暴躁老哥上线。」 |
| 人类迷惑行为 | 评价（少用） | 「这属于人类迷惑行为了。」 |
| 典/典中典 | 评价 | 「典。」 |

#### 类型2：自嘲式内心独白
让人物用当代网感自嘲，而不是用旁白取笑人物。

```
❌ 反例（旁白取笑，AI味）：
他笨拙的动作让人忍俊不禁，像个刚学走路的企鹅。

✅ 正例（人物自嘲）：
他摔了第三次。干脆就这样了，躺在地上看天花板。「行吧，今天主打一个丢人。」
```

#### 类型3：地域方言注入

根据书配置中定义的方言类型和词表，在人物口语中自然加入地域方言词汇。详细规范见 **novel-draft §3.5（通用方言注入框架）**：仅限使用书配置 `dialect_word_list` 中的词，每章 3-5 处（或书配置定义的上限），仅限对话引号内，仅限书配置 `dialect_characters` 中的角色使用。

> ℹ️ 方言类型由书配置决定——可能是粤语、四川话、东北话、上海话等。如果书配置未定义方言词表或方言类型为「无」，则跳过此类型。

以下是**粤语示例**（仅作格式演示，实际使用时从书配置读取）：

| 常用方言词（粤语示例） | 含义 | 用法示例 |
|-----------|------|---------|
| 冇 | 没/没有 | 「冇问题，我来。」 |
| 搞乜 | 搞什么 | 「搞乜啊？大半夜的。」 |
| 点解 | 为什么 | 「点解要我去？」 |
| 返屋企 | 回家 | 「收工，返屋企。」 |

```
✅ 正例（方言自然融入，具体词汇随书配置变化）：
「搞乜啊，又是我去？」他把烟往地上一摔。
「顶。」没人理他。
```

#### 类型4：冷幽默注入
在紧张或严肃场景中插入不破坏氛围的冷幽默。

```
❌ 反例（破坏氛围的硬幽默）：
（生死关头）「哎呀妈呀吓死宝宝了！」

✅ 正例（冷幽默）：
子弹擦着他耳朵过去。他摸了一下耳垂——还在。「运气不错。」又一颗过来。他改口：「……一般。」
```

#### 类型5：网络语气词的自然使用
在对话中适当加入网络语气词，但控制频率。

| 可用 | 禁用（太旧/太刻意） |
|------|-----------------|
| 啧、害、草（植物）、绝了、也是服了 | 蓝瘦香菇、神马都是浮云、我也是醉了 |

### 5.3 网感注入操作流程

```
1. 扫描全章，标记3个可以注入网感的位置（人物对话位置优先）
2. 判断该位置适合哪种类型（口语词/自嘲/方言/冷幽默/语气词）
3. 按类型规则注入，一处一种类型
4. 自检：
   - 每个网感元素是否服务于人物？（不是作者的评论）
   - 是否影响剧情的严肃性？（不该幽默的地方不幽默）
   - 频率是否超标？（全章不超过3处）
```

---

## 六、全文节奏调节

### 6.1 段落拆分操作

```
扫描全章段落长度：
  → 每段 ≤ 5 行 ✓
  → 有 > 5 行的 → 找到可拆分点（场景切换/动作结束/对话回合结束）→ 拆成两段
```

### 6.2 句子长度调节

```
逐段扫描，取每段句子的字符数：
  → 连续3句差值 < 10 字符 → 调整中间句的长度
    - 加速场景：削短中间句
    - 舒缓场景：拉长中间句
```

### 6.3 节奏扫描

对照 novel-draft 第4.3节，逐场景检查节奏是否匹配：
- 打斗场景但句子很长 → 削短
- 铺垫场景但全都是短句 → 加1-2句稍长的描写

---

## 七、最终复查清单（输出定稿前）

- [ ] novel-review 问题清单所有 P0 问题已修改？
- [ ] novel-review 问题清单所有 P1 问题已处理？
- [ ] 对话扫描：每个说话者轮次（A→B切换）是否有动作穿插？同一说话者连续两句之间是否插入？
- [ ] 废话扫描：是否有可删的重复/客套/解释性台词？
- [ ] 语序扫描：是否有"是否""进行""做出"等书面词？
- [ ] 角色扫描：每个角色的台词是否可区分？
- [ ] 五感扫描：感官描写是否承担叙事功能（定位/阻碍/信息/伏笔），而非凑数堆砌？
- [ ] 环境描写扫描：每个环境描写是否有功能？
- [ ] 钩子评估：钩子是否 A 级及以上？如否，是否已用技巧强化？
- [ ] 网感注入：1-3处？自然吗？不破坏氛围吗？
- [ ] 段落长度：全部 ≤ 5 行？
- [ ] 句子长度：无连续3句同长度？
- [ ] 禁用词扫描：对照 novel-draft 的19个禁用词再过一遍
- [ ] 禁用句式扫描：对照 novel-draft 的禁用句式再过一遍
- [ ] 方言词频率和正确性：统计全章方言词出现次数，是否在书配置规定范围内（默认 3-5 个）？超过上限标记减量。是否全部来自书配置 `dialect_word_list`？是否有方言词出现在叙述段落中（引号外）？
- [ ] 输出格式：是否以 `## 第X章 章节标题` 开头？是否不含 `###` 分段小标题、"本章完"等标记？

---

## 八、输出

打磨后的本章定稿，格式与 novel-draft 输出一致：

```markdown
## 第X章 <章节标题>

（正文，段落间空一行）

（章末钩子，戛然而止）
```

## 注意事项
- 打磨 ≠ 重写，保持初稿的剧情结构
- 如果审查报告为 ✅ 通过，仍执行第2-7章的所有打磨步骤
- 每次修改后对照原句确认核心信息不变
- 改完一处就读一遍上下文，确保流畅
- 如果某处反复改不好，标记为 `[待定]`，不影响整体进度
- **容量退回铁律**：POLISH 默认去冗余。删冗后番茄字数不足2200时，不得用环境/五感/机械动作补字，必须退回 novel-plot/novel-skeleton 补充有效冲突回合、主角主动决策、反方应对或收益反馈后重新生成。统一口径2200—2400，目标2250字。
- 不得靠 POLISH 补环境凑字数

