# Wjs Voicedrop Writing Novel

> 「写一本书」时小说 / 虚构叙事的写法模块——人物与世界设定、叙事文风、章节即场景的结构、写手提示词、评审维度（情节推进/人物可信/文笔与场景/连贯性）、专属约定（伏笔与连续性档案、show-don't-tell、少配图）。由 wjs-voicedrop-writing-book 在第 0 步判定为小说类型后读入；骨架、build.mjs、发布、封面、断点续跑等通用机制都在 wjs-voicedrop-writing-book，本 skill 只管「怎么写小说」。触发词："小说"、"虚构故事"、"novel"、"/wjs-voicedrop-writing-novel"。

- Skill: `jianshuo/wjs-voicedrop-writing-novel` (Agent Skill)
- Install (CLI): `npx skillmds@latest add jianshuo/wjs-voicedrop-writing-novel`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jianshuo/wjs-voicedrop-writing-novel/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: jianshuo (https://skillmd.com/u/jianshuo)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/jianshuo/wjs-voicedrop-writing-novel

---


# 小说写法 — 虚构叙事（novel）

> 这是 `wjs-voicedrop-writing-book` 的写作模块之一（`type: novel`）。工作目录、`book.json`、`build.mjs`、发布、封面、断点续跑、修书模式、编排、通用红线等**机制全部在 `wjs-voicedrop-writing-book`**，本文只规定小说**怎么写**。
>
> ⚠️ **初版草稿**：小说类型刚拆出来，下面的文风/结构是首版约定，实际用过几本后再收紧。核心机制（每章即发、独立评审、封面、两条硬约束）跟通用 skill 完全一致。

**这类书解决的问题**：讲一个让人想一直读下去的**虚构故事**——有人物、有欲望、有冲突、有变化。靠**叙事**推进，不靠说理。和科普书正相反：科普书要把道理讲白，小说要把道理**藏进情节和人物**里。

**读者画像**：想被一个好故事带走的人。要的是**代入感、悬念、情感冲击**，不是知识点。

**文风铁律**：
- **Show, don't tell**：用动作、对话、细节让读者自己感受，别直接告诉读者「他很愤怒」。
- **场景优先**：每章是一个（或几个）**有时间、地点、在场人物的场景**，不是叙述性概述。
- **人物有欲望和阻力**：每个场景里主角想要什么、什么挡着他——这是张力的来源。
- **对话推动情节**：对话要各有各的目的，不是寒暄和信息倾倒。
- **克制形容词，动词精准**：少堆华丽辞藻，靠精准的动词和具体细节。
- **每章留钩子**：章末给一个悬念/转折/未决问题，让人想翻下一章。

---

## 连续性档案（小说必备，写在工作目录里）

小说跨章要保持人物、时间线、伏笔一致。在工作目录建一份 `bible.json`（或 `bible.md`），随写随更新，**每个写手写章前都读它、写完更新它**：

```json
{
  "characters": [{"name":"林越","role":"主角","traits":"寡言、修表匠","arc":"从躲避到直面"}],
  "timeline": ["第1章：雨夜，钟表店", "第2章：三天后，法院"],
  "threads_open": ["那只停在3:15的怀表是谁的（第1章埋，待回收）"],
  "threads_closed": [],
  "facts": ["城市：临江", "季节：秋"]
}
```

这是小说版的「真源」——伏笔（`threads_open`）埋了就登记，回收了就挪到 `threads_closed`，避免烂尾和自相矛盾。

---

## 结构：章 = 场景

用 `book.json` 的 `chapters`，每章是**一个场景或一段连续情节**。一本中短篇通常 **10–20 章**。`book.json`：`type: "novel"`，`tagline` 建议留空或作者的一句题记，`meta` 可写体裁（如 `"悬疑中篇"`），`tint/dark` 随故事气质（冷峻/温暖/暗黑）。

---

## 建筑师：故事怎么搭

Spawn 一个 agent，产出书名、slug、subtitle（一句故事钩子/题记）、配色、**人物表 + 章节清单**（每章 `no / title / brief=这一章发生什么、谁的场景、推进了什么`），并初始化 `bible.json`。要求：

- 一条清楚的**主线冲突**：主角要什么、代价是什么、结局往哪走（哪怕开放式，作者心里要有底）。
- 章节**递进且有节奏**：起（钩子+人物+世界）→ 承（升级的阻力，埋伏笔）→ 转（高潮/反转）→ 合（收束伏笔，人物有变化）。
- 每章有**明确的场景目标和章末钩子**，不是流水账。
- 别剧透在 brief 里写死每一句，但主线和关键转折要定好。
- 埋下的伏笔登记进 `bible.json` 的 `threads_open`。

---

## 写手 subagent：提示词要点

给写手：本章 `no / title / brief` + **`bible.json` 全文**（人物/时间线/未回收伏笔/设定）+ 读者画像与文风铁律。要求：

- **先读 `bible.json`**，保证人物性格、称呼、时间线、已定设定不跑偏；用到/回收/新埋伏笔的，在返回时说明，好让主循环更新 `bible.json`。
- **输出格式**：一段 `<article>` 里的 HTML 片段。小说用的标签很少：`<p>`（正文与对话）、`<blockquote>`（信件/引文/回忆等特殊段落，克制使用）、偶尔 `<h3>`（小节分隔/时间跳转，如「※」或「三天后」）。**不用** `<dfn>`、`.plain` 大白话盒子、`<ul>/<code>`（那是科普书的东西）。
- **对话**用中文引号 `「」` 或 `“”`，每句对话独立成段落更易读。
- 不写 `<h1>`、不写内联 `style`、不编造图片 URL。
- **长度**：一章约 **1500–3500 字**，够把一个场景写透、写出画面即可。
- 存到 `chapters/NN.html`。

---

## 评审 subagent：维度与判定

**独立 spawn**，只喂「该章成品 HTML + 全书大纲 + `bible.json`」。维度：

> 你是独立评审，没参与写作。从四个维度打分（各 1–5，给一句理由）+ 必须修清单：
> 1. **情节推进 & 钩子**：这一章有没有让故事往前走？章末有没有让人想翻下一章的悬念？还是原地打转？
> 2. **人物可信**：人物的言行符不符合设定、动机成不成立？对话像不像这个人说的话？
> 3. **文笔与场景（show don't tell）**：是不是用场景/动作/细节呈现，而不是概述和直接告知？有没有画面感？形容词是否泛滥？
> 4. **连贯性**：和 `bible.json` 有没有冲突（人名/时间线/设定/已埋伏笔）？有没有前后矛盾或说崩的地方？
>
> 判定 `pass`：四项都 ≥3，且**连贯性无硬伤**（与 bible 冲突一票否决）。否则 `fail`。
> 输出 JSON：`{"scores":{"plot":n,"character":n,"prose":n,"continuity":n},"verdict":"pass|fail","must_fix":["…"],"note":"一句总评"}`

存 `reviews/NN.json`。不过按通用 skill 的循环换新写手重写，最多 3 轮。连贯性问题优先修。

---

## 导读页（可选）

小说的「导读」更像**一段引子/题记/作者的话**，不要剧透。可放故事基调的一句话、或一个引人入胜的开场悬念。`introTeaser` 用一句勾人的话。

---

## 插图：一般不配，或只配少量氛围图

小说**默认不配插图**（跟科普书一样克制），让文字营造画面。若确实要（如每章一张分隔氛围图），走通用 skill 的 paint 流程：**无字纯画面、氛围为主、全书统一画风**，绝不放文字/水印。多数小说一张内页图都不需要。

---

## 封面

同通用 skill 的封面规则（竖版 1024x1536、书名画进图、GPT 出字），气质随故事基调（悬疑冷峻 / 温情暖调 / 奇幻），可以有一个象征性的画面元素，但仍以书名为主角、留白给字。

---

## 小说专属 Red Flags（通用红线见 wjs-voicedrop-writing-book）

- 直接告诉读者情绪/结论（「他很难过」「这说明……」）→ 违反 show don't tell，改成场景/动作/细节。
- 章节是叙述性概述、没有具体场景（时间地点人物）→ 落到一个真实场景里重写。
- 与 `bible.json` 冲突（人名、时间线、设定、伏笔）→ 连贯性一票否决，必须改。
- 埋了伏笔不登记 / 回收了不更新 `bible.json` → 容易烂尾，补登记。
- 对话是寒暄或信息倾倒、每个人说话一个腔调 → 让对话有目的、有人物声音。
- 章末没有钩子、平淡收场 → 加一个悬念/转折/未决问题。
- 用了科普书的 `<dfn>` / 大白话盒子 / 列表堆点 → 那不是小说的写法，删掉。
- 形容词/华丽辞藻泛滥、动词软 → 精简，靠精准动词和具体细节。

