# Novel Writing Skill

> 为长篇小说提供写作 skill：正文续写/补写/改写/扩写、卷纲与设定整理、质量审查（OOC/设定冲突/战力崩坏/节奏拖沓）、以及当前状态卡、伏笔池、微粒账本维护。触发词包括续写、改写、扩写、卷纲、设定、当前状态、pending_hooks、particle_ledger、写作自检、章节清算、历史考据、联网核验。

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

---


# Novel Writing Skill

## 执行优先级
1. 用户本轮硬约束。
2. 固定路径中的正文与账本事实。
3. 本技能规则与参考准则。

发生冲突时，按优先级覆盖并在输出里标注“覆盖了哪些旧规则”。

## 固定工作路径（相对路径）
只使用以下路径，不扩展到其他目录：

| 用途 | 路径 |
|---|---|
| 大纲 | `fanqie/凤阙藏锋_小说大纲_v1.md` |
| 文章主要内容（正文） | `正文/` |
| 当前状态 | `fanqie/99_当前状态卡.md` |
| 伏笔池 | `fanqie/pending_hooks.md` |
| 微粒账本 | `fanqie/particle_ledger.md` |
| 关键线索四层表 | `fanqie/关键线索四层表.md` |
| 写作风格 | `fanqie/写作风格.md`（若存在则强制读取） |
| 写作自检模板 | `fanqie/写作自检模板.md` |
| 章节清算模板 | `fanqie/章节清算模板.md` |

说明：
- 若项目已改名或重构过文件名，以仓库当前真实路径为准，优先修正 skill 内旧路径，不再死守历史命名。
- 若发现 skill 里的固定路径仍指向旧题材、旧书名、旧方案，应先更新 skill，再继续正文工作，避免后续账本与标题对齐全部跑偏。

## 文件结构硬规则
- 正文章节只写入 `正文/`。
- 正文文件只保留章节标题与正文内容，不嵌入 `【写作自检】`、`【章节结算】`、账本表格、维护说明或任何元信息。
- 正文文件不得保留多余空行；章节标题下直接接正文，正文内部仅保留必要段落分隔，不得出现纯空白行。
- 单章字数硬下限：默认 `>=3000` 个正文字符；长篇连载常规目标建议 `4500-6500` 个正文字符，`3000` 只算保底线，不算丰满章。
  - 口径：这里的“字数 / 文字数量 / 正文长度”，统一指**正文内容的 Unicode 字符数**，不是 UTF-8 字节数。
  - 计数范围：只统计正文内容本身；`H1 标题行`、文件名、空白行、Markdown 标记说明不计入目标字数。
  - 计数细则：汉字、全角标点、阿拉伯数字、英文字母，各按 `1` 个字符计；以角色可见正文为准。
  - 禁止误判：**不要再用 `wc -m` 充当中文“字数”口径**；在 UTF-8 场景下它更接近字节统计，容易把 `1000+` 汉字误看成 `3000+`。
  - 推荐验收口径：优先用能按 Unicode 字符计数的方式校验，例如 Node.js 的 `const chars = [...body].length`。
  - 执行要求：若用户未明确要求短章、过桥章、卡点章，续写/补写/扩写至少按 `>=3000` 个正文字符落盘；若用户明确强调“篇幅要厚 / 文字量不能少 / 需要更丰满”，默认按 `>=4500` 个正文字符执行。若因用户硬约束或项目特殊节奏必须短于该值，需在输出里明确说明“为何本章低于字数下限”。
- 正文标题禁止使用“概念解释型狠句”做章名：
  - 禁止优先写法：`不是X，是Y`、`并非X，而是Y`、`不是为了X，是为了Y`、`写的不是军功，是谁该死` 这类“作者替读者总结意义”的标题。
  - 优先改写方向：改成“实物 + 动作/程序 + 后果”，例如把意义压回世界内结果：谁被钉死、哪一页纸把谁拖进死局、哪口药把哪条线咬出来。
  - 规则解释：前中期章名最怕“先解释，再发生”；章名要先给危险和抓手，不要先替读者做概念判断。
- 正文禁止出现“卷提示/预告式元叙事”：
  - 禁止写法示例：`马上进入第二卷`、`第二卷开始`、`引出第二卷`、`本卷/下卷预告`、`未完待续/To be continued`、`下一章更精彩`、`作者的话` 等。
  - 允许位置：若确需说明“卷一/卷二/卷末/卷二入口”等结构信息，只能写入 `fanqie/`（如卷纲、状态卡、伏笔池、清算、自检），不得写入正文。
  - 例外：只有当“卷/期/编号”等词是**世界内可见的实体内容**（例如文件编号、卷宗编号、案卷卷宗、书册卷次被角色读到并触发剧情），且写法不带“读者预告口吻”，才允许出现在正文。
- 正文禁止出现“后台复盘口吻/章节号回指”：
  - 禁止写法示例：`第040章那一下短促命中留下来的后劲`、`上一章那场枪响`、`本章这里要交代`、`前文提到的那条线`。
  - 强制改写方向：一律改成世界内时间锚点、动作锚点或实物锚点，例如 `昨夜那一下短促命中的后劲`、`停车场那一枪之后`、`木桥那夜留下的照片里`。
  - 规则解释：正文只能让角色活在事件里，不能让叙述替作者复盘章节结构。
- `【写作自检】` 统一写入 `fanqie/写作自检模板.md`。
- `【章节结算】` 统一写入 `fanqie/章节清算模板.md`。
- 章节推进后的状态、伏笔、筹码变动，只回填到 `fanqie/99_当前状态卡.md`、`fanqie/pending_hooks.md`、`fanqie/particle_ledger.md`、`fanqie/关键线索四层表.md`，不得反向写回正文章节。

## 联网搜索准则（默认强制）
1. 不确定即搜索：只要有事实、数据、时效性不确定，立即联网。
2. 多轮迭代：首轮不理想必须调整关键词，做中英切换、术语扩展、反向求证。
3. 交叉验证：关键事实至少对照 2-3 个不同且权威来源。
4. 冲突显式化：来源冲突时明确写出冲突点与采信理由。
5. 禁止搬运：必须综合分析，不做搜索结果拼贴。

说明：纯虚构章节续写且不涉及现实考据时，可只基于本地资料；若用户明确要求“全部联网核验”，按用户要求执行。

## 任务分类
1. 正文创作：续写、补写、改写、扩写。
2. 设定工作：世界观、人物卡、卷纲、势力关系、战力逻辑。
3. 质量审查：雷点排查、OOC、节奏、爽点、逻辑闭环。
4. 账本维护：状态卡、伏笔池、微粒账本、章节结算。

## 最小上下文原则
- 设定讨论：先读大纲；若存在 `fanqie/写作风格.md`，必须同步读取；必要时补读状态卡。
- 正文/审稿/复盘：先读状态卡；若存在 `fanqie/写作风格.md`，必须同步读取；再回读最近 3-10 章；若涉及关键线索递进，必须同步读 `fanqie/关键线索四层表.md`。
- 吞噬/突破/卷末/大节点：同步核对状态卡、伏笔池、微粒账本、关键线索四层表。
- 不默认通读全部历史章节。
- 开篇 1-6 章额外原则：
  - 先核对对应分卷简纲（如 `fanqie/第一卷主要内容以及各个文章标题主要内容.md`），确保四钩子、人物任务和章尾钩子没有被正文写偏。
  - 开篇章不只要“读着顺”，还要检查“下一章有没有被提前写空”；尤其是配角首场戏、药线首露、旧案首证，不能在前章把后章的兑现空间透支掉。

## 正文工作流
1. 读 `fanqie/99_当前状态卡.md` 锁定当前锚点。
2. 若存在 `fanqie/写作风格.md`，必须在正文动笔前读取，并把它视为本项目文风硬约束。
3. 回读 `正文/` 近期章节，确定冲突链与信息边界。
4. 写正文前，若本章涉及旧线索推进，先查 `fanqie/关键线索四层表.md`，确认该线索当前所处层级是“首次提及 / 首次实物化 / 首次程序化 / 首次定性”中的哪一层，禁止把“露头”写成“落地”，也禁止把“程序化”误写成“首次出现”。
4.1 开篇钩子校验（前 1-6 章强制）：
  - 第001章除了死局、截囚、倒计时，还必须埋出后续母线的“程序异常/补卷异常/次序异常”前置信号，不能把核心证据链完全拖到第002章后才第一次露头。
  - 第002章这类“角色初见 + 线索递手”章节，只能把线索递到主角手里，不能提前替后续章节完成定性或并线；尤其是裴照雪、沈砚书这类后续会承担独立功能的角色，首场戏只准递风险、递缺口、递代价，不准直接把答案递满。
  - 第003章这类“验簿/验手/验程序”章节，章尾不能只停在分析结论，必须把“得证”立刻转成“更危险”或“今夜会出手”，让下一章杀局或灭口不是另起炉灶，而是顺势压下来。
  - 第004章这类“前章证据转夜袭”章节，开头必须承接上一章已经落下的危险，不得重复搭建同一轮威胁说明。
5. 先把本章 `【写作自检】` 记入 `fanqie/写作自检模板.md`，不要写进正文文件。
6. 只向 `正文/` 输出纯正文。
7. 需要结算时，把本章 `【章节结算】` 记入 `fanqie/章节清算模板.md`，不要写进正文文件。
8. 正文落盘前执行一次空行清理，确保全文不存在纯空白行，可直接复制粘贴到番茄后台。
8.0 字数硬闸门：若无用户明确豁免，正文落盘前必须确认单章正文 `>=3000` 个正文字符（Unicode 口径，不按 UTF-8 字节算）；低于该值默认视为未完成章，而不是可直接交付章。
8.0.0 字数验收补充：
  - 若用户本轮强调“字数太少”“章节太薄”“需要更丰满”，则本章默认目标上调为 `>=4500` 个正文字符。
  - 若平台侧存在 `word_number` 字段，可把它视为近似参考；真正落盘验收仍以本地正文 Unicode 字符数为准。
  - 推荐落盘前快速自检命令（可选，但推荐执行）：
    ```bash
    node --input-type=module -e "import {readFileSync} from 'node:fs'; const s=readFileSync(process.argv[1],'utf8'); const body=s.split('\n').slice(1).join('\n'); console.log([...body].length)" 正文/第025章_xxx.md
    ```
8.0 标题对齐硬闸门：正文与账本必须“字面一致”（含章号位数与标点），禁止只对齐意思不对齐文本。
  - 必须一致的 5 处：`正文文件名`、`正文 H1 标题行`、`fanqie/99_当前状态卡.md` 的“当前章”、`fanqie/章节清算模板.md` 本章行、分卷简纲（例如 `fanqie/第二卷主要内容以及各个文章标题主要内容.md`）本章标题行。
  - 章号格式建议统一为 3 位：`第001章`…`第999章`；若用户项目已采用 3 位，则所有 `fanqie/` 文件的标题行也必须同步 3 位（例如 `第032章`，而不是 `第32章`）。
8.0.1 前中期章名优先级（强制）：
  - 优先顺序：实物/程序抓手 > 世界内危险 > 人物关系压迫 > 作者概念总结。
  - 标题若能直接点出“哪一页纸、哪口药、哪扇门、哪道规矩”就不要退回抽象判断。
  - 凡是标题读起来像“写作复盘结论”而不是“世界内正在发生的事”，落盘前必须重写。
8.1 正文落盘前执行一次“元叙事泄漏扫描”，确保正文不出现卷提示/预告式旁白：
  - 重点关键词：`卷一`、`卷二`、`第二卷`、`进入第二卷`、`马上进入`、`引出`、`下卷`、`本卷`、`卷末`、`卷终`、`未完待续`、`To be continued`、`作者的话`、`下一章`。
  - 若命中，优先改写为“世界内叙事”的动作/信息（角色收到通知、文书落纸、程序节点推进），而不是对读者说话。
8.1.1 正文落盘前执行一次“章节回指扫描（强制）”，严防把账本/复盘口吻串进正文：
  - 重点命中模式（示例）：`第0[0-9]{2}章`、`第[0-9]{2,3}章`、`上一章`、`下一章`、`前文`、`本章`（当其不是世界内实体内容时）。
  - 强制规则：若命中叙述层回指，必须改写成世界内锚点，不得保留“章节编号/章节顺序”口吻。
  - 建议落盘前快速自检命令（可选，但推荐执行）：`rg -n \"第0[0-9]{2}章|第[0-9]{2,3}章|上一章|下一章|前文|本章\" 正文/第*.md`
8.2 正文落盘前执行一次“否定对仗句式扫描（强制）”，严防出现“不是X，是Y”这类自我解释口吻（叙述层最伤质感）：
  - 重点命中模式（示例）：`不是…是…` / `并非…而是…` / `不…而…` / `不是为了…是为了…`。
  - 强制规则：只要命中，必须在落盘前改写为“动作+结果”或“具象描写”，不得以“这句挺好/挺有力”作为例外理由。
  - 建议落盘前快速自检命令（可选，但推荐执行）：`rg -n \"不是[^。！？\\n]{0,40}是|并非[^。！？\\n]{0,40}而是|不是为了[^。！？\\n]{0,40}是为了\" 正文/第*.md`
8.2.1 配角递线止口（前 1-12 章强制）：
  - 配角首场戏可以递缺口、递危险、递态度，不可以直接把两条大线在叙述层“宣布咬合”。
  - 禁止写法示例：角色刚第一次出场，就通过一个动作把“药线和旧案线已经咬在一处”“这两条线已经并轨”之类的作者结论直接落死。
  - 强制改写方向：改成“她只露出知道得比明面多”“她递了止口或提醒”“主角记住这个动作，但暂不替它下总判”。
  - 规则解释：前期最值钱的是入口，不是答案；留住后章兑现空间，比前章解释明白更重要。
8.2.2 章尾转险规则（前 1-24 章强制）：
  - 若本章核心收益是“得证/验出/认出/拆出”，章尾必须再补一脚危险升级：有人会灭口、窗口只开到某时、今夜不会太平、下一步要先活过去。
  - 禁止把章尾停在“分析完成”或“概念结论成立”上，除非下一章本身就是同一场戏的连写且风险已经落下。
  - 规则解释：连载章尾不是论文结论区，而是下一轮生死局的起爆点。
9. 回填 `fanqie/99_当前状态卡.md`、`fanqie/pending_hooks.md`、`fanqie/particle_ledger.md`、`fanqie/关键线索四层表.md`。
10. 自检新增：检查 `fanqie/第一卷主要内容以及各个文章标题主要内容.md`（或对应分卷简纲）是否已经被正文推进超车；若已超车，必须同步修正该简纲，确保“正文事实 > 分章简纲表述”始终一致，禁止出现正文与简纲各说各话。

## 账本硬规则
- 微粒硬锚点：`840000000`。
- 重要收益必须给出具体数值，禁止“暴涨/海量”式模糊词。
- 同类资源重复吞噬需体现衰减。
- 同档样本增量超过 3 倍必须解释；超过 10 倍默认异常，需用户明确授权。
- 关键线索一律按四层管理：`首次提及 -> 首次实物化 -> 首次程序化 -> 首次定性`。
- 伏笔池窗口对齐：`fanqie/pending_hooks.md` 内任何 `预期回收窗口` 不得早于 `fanqie/99_当前状态卡.md` 的当前章；若发生，必须顺延到未来章节，并在备注说明“为何延期”（例如主线被验人窗口拖拽、取证排队未回流、风险等级上调）。
- 若某线索在正文中已于前章“首次提及”，账本与清算不得把后续“实物化”误写为“首次出现”。
- 若发现 `particle_ledger.md`、`章节清算模板.md`、`写作自检模板.md` 与 `关键线索四层表.md` 对同一线索的层级描述冲突，以“正文事实 + 关键线索四层表”优先，并同步修正其余账本。

## 审查输出格式
按“问题 -> 证据 -> 最小修法”输出，优先修根因。

重点扫描：
- 设定冲突
- 人物 OOC
- 敌方信息越界
- 元叙事泄漏（卷提示、预告口吻、作者旁白）
- 战力崩坏
- 微粒跳变
- 伏笔失管
- 节奏拖沓
- 词汇疲劳与机械感

## 文风与表达
- 默认简体中文。
- 创作文本保持玄幻/强冲突爽文质感（除非用户本轮明确改题材）。
- 表达可直言、犀利、带轻微幽默，但不做低质嘲讽和无意义攻击。
- 优先“动作+反应+代价+收益”，少空洞口号。
- 规避“否定句对仗式自我解释”句型（如“X不是Y。X是Z/提醒/暗号”）。改为用动作与具体结果承接，不做概念化转述。

## 参考准则加载
涉及深度审稿、角色塑造、节奏修复、现实考据时，读取：
- `references/写作准则.md`

该文件包含：联网铁律、角色构建六步、雷点库、节奏控制、主线/支线管理、金手指平衡、包装优化、以及现实题材考据要求。

## 合规边界（必须遵守）
- 可为小说提供历史、金融、军事、黑帮等题材的背景化分析。
- 禁止提供可直接执行的现实违法方案（如走私军火、雇凶、规避执法、真实犯罪操作手册）。
- 若用户提出现实违法操作请求，改为：风险评估、历史背景、法律后果、或纯虚构剧情设计。

