# Novel New Book

> 初始化新书 — 引导式交互收集创作信息、创建标准目录结构、自动填充初始模板文件、管理多书切换

- Skill: `cwjdong-design/novel-new-book` (Agent Skill)
- Install (CLI): `npx skillmds@latest add cwjdong-design/novel-new-book`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cwjdong-design/novel-new-book/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-new-book

---


# 初始化新书（v2.0）

## 触发条件

用户说「新开一本书」「创建新书」「开始写《XXX》」「新建小说」时使用本技能。

## 执行流程

---

### 阶段 1：收集创作信息（引导式对话）

按照以下顺序，每次只问一个问题，根据回答自然推进。不要一口气列出所有问题。

#### Q1：书名确认

**话术**：
> 好的，我们来创建一本新书！首先确认一下，书名是什么？

如果用户已经说了书名（如「开始写《修仙从种田开始》」），则跳过此问，直接确认：
> 书名就用《修仙从种田开始》，对吗？

**输出**：书名（将用作目录名，将中文标点替换为对应字符，例如《》→无，空格→下划线）

#### Q2：一句话简介

**话术**：
> 棒！用一句话介绍这本书的核心卖点？想想你会在番茄小说封面上写什么——50 字以内，让读者一眼就想点进来。

**引导示例**：
- 「重生回到末世前 3 天，他带着未来 10 年记忆，这次要成为最强」
- 「系统要我当反派，但我只想种田变强」
- 「穿越成豪门假千金，全网黑的时候，真千金跪求我回家」

**输出**：一句话简介（≤50 字）

#### Q2.5：主角年龄

**话术**：
> 主角多大？这个很重要——番茄平台要求主角必须 ≥18 岁才能有恋爱线。

**输出**：主角年龄（≥18）

#### Q3：小说类型

**话术**：
> 选一下类型？常见的番茄热门类型有：
> - **都市**（重生、鉴宝、官场、商战）
> - **玄幻**（东方玄幻、高武）
> - **仙侠**（修真、修仙、洪荒）
> - **系统**（系统流、数据化、游戏化）
> - **末世**（丧尸、废土、生存）
> - **悬疑**（灵异、探案、密室）
> - **言情**（霸总、甜宠、虐恋）
> - **其他**——你可以自己描述

**输出**：类型标签（可以是组合，如「都市+系统」）

#### Q4：主角设定

**话术**：
> 聊聊主角～ 告诉我三件事：
> 1. **姓名**
> 2. **核心身份**（重生者？穿越者？普通人逆袭？）
> 3. **金手指/核心优势**（系统？记忆？特殊能力？）

如果是系统流，追问：
> 系统叫什么名字？主要功能是？

如果用户回答简略，引导补充：
> 顺便说说主角的性格？冷静型 / 热血型 / 腹黑型 / 咸鱼型？

**输出**：主角姓名 + 身份 + 金手指 + 性格

#### Q5：计划篇幅

**话术**：
> 计划写多长？
> - 【A】短篇冲量 — 20-30 万字，快速完结
> - 【B】中篇连载 — 50-80 万字，稳定更新
> - 【C】长篇小说 — 100 万字以上，长期规划
> - 【D】还没想好，先写着看

**输出**：篇幅级别（short/medium/long/flexible） + 估算字数

#### Q6：创作红线

**话术**：
> 最后，有没有绝对不能踩的红线？（为了让 AI 记住底线，避免写出你不想要的内容）

**引导示例**：
- 「不虐主」—— 主角不能被虐
- 「不后宫」—— 不搞多女主感情线
- 「不写死核心配角」—— 指定哪些角色不能死
- 「不写政治相关」—— 避免敏感内容
- 「主角必须低调」—— 不要过早暴露实力
- 「每章必须有爽点」

**输出**：红线列表（3-8 条）

---

### 阶段 2：创建目录结构

使用 `terminal` 工具执行以下命令族，一次性创建完整目录：

```bash
mkdir -p ~/novels/books/<书名>/{00-大纲细纲/分卷细纲,01-正文存稿,02-设定文档/人物库,03-版本备份,04-错误库}
```

同时在技能状态目录创建进度文件：
```bash
mkdir -p ~/.hermes/skills/novel/_state
```

**首次运行检查**：如果 `~/novels/_shared/logs/` 和 `~/novels/_shared/backups/` 不存在，自动创建：
```bash
mkdir -p ~/novels/_shared/{logs,backups}
```
这两个目录供 novel-cron 每日巡检写入日志和全局备份使用。所有脚本统一存放在 `~/.hermes/skills/novel/scripts/`（唯一权威位置），`~/novels/_shared/` 下**不再有 scripts 目录**（已去除软链接兼容层，2026-08-01 优化）。
> ℹ️ **例外**：番茄发布专用脚本（update_chapter.py / qr_login.py / login_browser.py）随 `fanqie-publisher` 技能存放于 `fanqie-publisher/scripts/`——这是技能内聚设计，不是漏网文件。

**最终目录结构**：
```
~/novels/books/<书名>/
├── 00-大纲细纲/
│   ├── 主线大纲.md          # 自动生成
│   ├── 作品简介.md          # 自动生成
│   ├── 分卷细纲/             # 空，按需手工创建
│   └── 章节规划.md          # 自动生成
├── 01-正文存稿/              # 空
├── 02-设定文档/
│   ├── 书配置.md            # ⭐ 自动生成（该书专属规则）
│   ├── 世界观.md            # 自动生成
│   ├── 人物库/
│   │   └── 主角_<姓名>.md   # 自动生成
│   ├── 伏笔追踪表.md         # 自动生成
│   └── 故事线状态.md         # 自动生成
├── 03-版本备份/
│   └── 备份日志.md          # 自动生成
└── 04-错误库/
    └── 修正记录.md          # 自动生成

~/novels/_shared/              # 首次运行时自动创建
├── logs/                      # novel-cron 每日巡检日志
└── backups/                   # cron 每日全量备份
```

---

### 阶段 3：自动填充初始模板

根据阶段 1 收集的信息，使用 `write_file` 一次性生成以下文件：

#### 3.1 主线大纲.md

```markdown
# 《<书名>》主线大纲

- **类型**：<类型>
- **计划长度**：<篇幅>（约 <字数> 字）
- **一句话简介**：<简介>
- **创作红线**：<红线列表>
- **创建日期**：YYYY-MM-DD

## 核心设定
- **主角**：<姓名>，<身份>，金手指：<金手指>
- **世界观**：见「02-设定文档/世界观.md」
- **目标读者**：番茄小说 18-35 岁

## 三幕结构

### 第一幕：开局（第 1-X 章）
（请填写：主角出场、金手指获得、初步冲突建立）

### 第二幕：发展（第 X-Y 章）
（请填写：核心冲突展开、实力提升、势力博弈）

### 第三幕：高潮与结局（第 Y-Z 章）
（请填写：终极对决、伏笔回收、结局走向）

## 分卷规划
| 卷号 | 章节范围 | 卷标题 | 核心剧情 |
|------|---------|--------|---------|
| 1    | 1-X     | （待填写） | （待填写） |
```

#### 3.2 章节规划.md

```markdown
# 《<书名>》章节规划

| 章节 | 章节标题 | 核心事件 | 状态 | 字数 |
|------|---------|---------|------|------|
| 1    | 待填写  | 请填写第1章计划内容 | 待规划 | — |
```

#### 3.3 作品简介.md

```markdown
# 《<书名>》作品简介

## 封面简介（50字以内）
<简介>

## 扩展简介（200字以内）
（请填写：用于详情页的完整简介，包含核心卖点、世界观亮点、主角金手指）

## 类型标签
<类型>

## 核心卖点
（请填写：3-5个核心卖点，每个卖点一句话）
```

#### 3.35 书配置.md（⭐ 核心配置文件）

```markdown
# 《<书名>》书配置

> 此文件定义本书的所有专属规则，供技能和审查脚本读取。

## 地名白名单

以下地名允许在正文中出现。未在白名单中的地名需检查是否合规。

```
<根据世界观填写架空地名列表>
```

## 真实地名黑名单

以下真实中国地名禁止在正文中出现：

```
北京、上海、广州、深圳、成都、杭州、武汉、南京
（根据小说背景补充需要屏蔽的真实地名）
```

## 系统面板规范（系统流适用，非系统流删除此区块）

### ⚠️ 系统金手指设计（必填，参考 `references/general/system-golden-finger-design.md`）

> 删系统测试：把系统删掉，故事还能转吗？如果能 → 系统设计不合格，重新设计。

**系统类型**（选一）：
- [ ] 感知型：看人心/满意度/忠诚度
- [ ] 预判型：提前感知趋势/对手动作
- [ ] 透视型：看穿商业/金融/权力底层
- [ ] 量化型：把模糊变精确
- [ ] 混合型：____________

**不可替代价值**：没有系统，MC 做不到的事是：________________

**系统情报等级**（随格局升级解锁）：
| 格局 | 情报层级 | 示例数据 |
|------|---------|---------|
| <层级1> | <第1层> | 例：个体满意度 |
| <层级2> | <第2层> | 例：区域经济结构 |
| <层级3> | <第3层> | 例：竞品资金链 |
| <层级4> | <第4层> | 例：政策走向预判 |

**系统退化红线**：
- 连续 ___ 章面板后MC不行动 → 系统重构
- 连续 ___ 章无新维度 → 必须弹新维度

### 面板格式
- 格式：【字段：数值】
- 固定字段：<字段1>、<字段2>、<字段3>
- 可选附加（≤2行）：<字段4>、<字段5>
- 单次面板最多5行

### 结算公式
- <公式描述>
- 结算时间：每日凌晨 00:00

### 禁止措辞
`检测到` `建议` `任务` `预警` `解锁` `阶段` `宿主` `预估` `预计`

## 方言设置（无方言则删除此区块）

- **方言类型**：<粤语/四川话/东北话/无>
- **使用频率**：每章 3-5 处
- **适用角色**：<角色列表>
- **词表**：<允许使用的方言词列表>

## 作者风格

- **情感风格**：<直接/含蓄>
- **叙述温度**：<冷/热>
- **幽默偏好**：<冷幽默/无>

## 对话格式

- 所有对话用「」，禁止双引号
- 对话占比 ≥40%
- 禁止 Markdown 语法
```

#### 3.4 世界观.md

```markdown
# 《<书名>》世界观设定

## 时代背景
（请填写：古代 / 现代 / 未来 / 架空？具体年代或设定）

## 力量体系
（请填写：修真 / 魔法 / 科技 / 系统 / 无？等级划分？）

## 势力分布
（请填写：有哪些势力？各自的目标和关系？）

## 核心规则
（请填写：这个世界的基本法则——什么能做、什么不能做）

## 不可违背的设定
以下是 AI 生成时必须遵守的底线：
<红线列表>
```

#### 3.5 人物库/主角_<姓名>.md

```markdown
# 主角：<姓名>

## 基本信息
- **姓名**：<姓名>
- **性别**：（请填写）
- **年龄**：（请填写）
- **身份/职业**：<身份>

## 外表特征
- **身高/体型**：（请填写）
- **标志性外貌特征**：（请填写）
- **常穿服饰**：（请填写）

## 性格
- **核心性格**：<性格>
- **优点**：（请填写）
- **缺点**：（请填写）
- **口头禅**：（请填写）
- **习惯性动作**：（请填写）

## 背景
- **出身**：（请填写）
- **关键经历**：（请填写）
- **内心创伤/执念**：（请填写）

## 能力/金手指
- **核心能力**：<金手指>
- **当前等级/阶段**：（请填写）
- **成长方向**：（请填写）

## 人际关系
- **重要关系人**：（请填写）

## 剧情定位
- **角色定位**：主角
- **成长弧线**：（请填写）

## 对话风格
（请摘录 1-2 句典型对话，体现语气）
```

#### 3.6 伏笔追踪表.md

```markdown
# 《<书名>》伏笔追踪表

| ID | 内容 | 铺垫章 | 计划回收章 | 实际回收章 | 状态 | 回收方式 | 回收质量 |
|----|------|--------|-----------|-----------|------|---------|---------|
```

#### 3.7 故事线状态.md

```markdown
# 《<书名>》故事线状态

- **主线进度**：0 章
- **当前剧情位置**：未开始
- **最近更新**：—

## 章节梗概
（每完成一章后自动追加）
```

#### 3.8 备份日志.md

```markdown
# 《<书名>》备份日志

| 时间 | 章节 | 字数 | 备份类型 | 版本号 |
|------|------|------|---------|--------|
```

#### 3.9 修正记录.md

```markdown
# 《<书名>》修正记录

| 时间 | 来源章 | 问题类型 | 问题描述 | 修正措施 |
|------|--------|---------|---------|---------|
```

---

### 阶段 3.5：骨架完整性检查（硬性拦截）

在阶段 3（自动填充初始模板）完成后、用户说「开始写第 1 章」时，执行以下骨架检查。**任何一项未通过 → 拦截，不允许开始写作。**

#### 3.6.1 检查项

| # | 检查项 | 判定标准 | 拦截提示 |
|---|--------|---------|---------|
| 1 | **主角人物卡** | `02-设定文档/人物库/主角_<姓名>.md` 中存在，且「## 基本信息」「## 性格」「## 能力/金手指」三个核心段落均有实质内容（非「（请填写）」） | ❌ 主角人物卡未完成，请先填写基本信息、性格和能力设定 |
| 2 | **核心配角人物卡** | `02-设定文档/人物库/` 下至少存在 **3 张**配角人物卡（.md 文件），每张卡至少包含角色姓名、身份、与主角关系、基本性格 | ❌ 核心配角人物卡不足 3 张（当前：N 张），请先在 `02-设定文档/人物库/` 中创建至少 3 个配角 |
| 3 | **主线大纲** | `00-大纲细纲/主线大纲.md` 中「## 三幕结构」的每一幕均有 ≥ 1 行实质描述（非「（请填写）」） | ❌ 主线大纲未完成，请先填写三幕结构（每幕至少一句话） |
| 4 | **第一卷细纲** | `00-大纲细纲/分卷细纲/` 下存在第一卷的细纲文件（如 `01_第一卷.md`），且包含 ≥ 5 章的章节标题与核心事件描述 | ❌ 第一卷细纲缺失或内容不足，请先在 `00-大纲细纲/分卷细纲/` 中创建第一卷细纲（至少 5 章规划） |
| 5 | **系统金手指设计**（系统流必检） | 若书配置.md 中无「系统金手指设计」区块且主线大纲中无系统/金手指设定 → 跳过此项（非系统流）。系统流则检查：「系统金手指设计」区块已填写实质内容（系统类型已选、不可替代价值已填、情报等级表已填），且通过删系统测试（把系统删掉故事不能照转） | ❌ 系统金手指设计未完成或未通过删系统测试，请参考 `references/general/system-golden-finger-design.md` 重新设计 |

#### 3.6.2 拦截话术

```
🛑 骨架未完成，请先补全以下内容：

<逐项列出未通过的检查项及具体缺失内容>

💡 提示：骨架不全的写作会导致后期反复修改。补全以上内容后说「开始写第 1 章」。
```

#### 3.6.3 检查时机

- 用户说「开始写第 1 章」「写第一章」「开写」等触发 novel-main 前置检查时
- 此时必须执行本检查，通过后才进入 novel-main 的 7 步循环
- 如果用户说「跳过骨架检查」，**不允许跳过**。提示：「骨架是质量的底线，不能跳过。请先补全。」

---

### 阶段 4：设置活跃书 + 输出确认

#### 更新活跃书

写入 `~/.hermes/skills/novel/_state/current_book.txt`：
```
<书名>
```

写入初始进度文件 `~/.hermes/skills/novel/_state/<书名>_progress.json`：
```json
{
  "book_name": "<书名>",
  "current_chapter": 0,
  "status": "completed",
  "steps_completed": [],
  "current_step": null,
  "last_updated": "<当前时间>",
  "retry_counts": {}
}
```

#### 输出最终确认

```markdown
✅ 新书《<书名>》已创建！

📁 目录：~/novels/books/<书名>/
📝 已自动生成 9 个初始文件
🔖 已切换活跃书为《<书名>》

### 📋 下一步建议：
1. **填写大纲** → 编辑 `00-大纲细纲/主线大纲.md` 的三幕结构
2. **丰富世界观** → 编辑 `02-设定文档/世界观.md`
3. **创建配角** → 把配角人物卡放到 `02-设定文档/人物库/`
4. **开始写作** → 说「**开始写第 1 章**」

💡 提示：不需要一次性填完，写作过程中可以随时补充设定。
```

---

## 多书管理

### 查看所有书籍

当用户说「我有哪些书」「小说列表」时：
1. 列出 `~/novels/books/` 下所有子目录
2. 读取每个目录下 `02-设定文档/故事线状态.md`，提取进度
3. 输出：
```markdown
### 📚 我的书架

| # | 书名 | 类型 | 进度 | 最近更新 |
|---|------|------|------|---------|
| 1 | XXX  | 都市 | 12章 | 3天前   |
| 2 | YYY  | 玄幻 | 0章  | —       |

当前活跃：《XXX》
```

### 切换活跃书

当用户说「切换到《XXX》」「写《XXX》」时：
1. 确认 `~/novels/books/<XXX>/` 目录存在
2. 更新 `~/.hermes/skills/novel/_state/current_book.txt` 为 `<XXX>`
3. 输出：
```markdown
🔖 已切换到《XXX》
📊 当前进度：第 Y 章（共 Z 章大纲）
```

### 删除书籍

当用户说「删除《XXX》」时：
1. 二次确认：「确认删除《XXX》？这将永久删除所有章节和设定。(y/N)」
2. 确认后：`rm -rf ~/novels/books/<XXX>/`
3. 删除进度文件：`rm ~/.hermes/skills/novel/_state/<XXX>_progress.json`
4. 如果是当前活跃书：清除 `current_book.txt`
5. 输出：`🗑️ 《XXX》已删除`

---

## 错误处理

| 场景 | 处理 |
|------|------|
| 书名已存在 | 提示「《XXX》已存在」，询问：覆盖 / 换名 / 继续写入 |
| 目录创建失败 | 检查权限，建议用户手工创建 |
| 文件名含特殊字符 | 自动替换：`《》` → 移除，`：` → `-`，`/` → `_` |
| 用户中途放弃 | 不创建目录，不写任何文件 |

---

## 注意事项

- 引导式对话：一次一问，根据回答自然推进，不要审问式连问
- 宽容输入：用户提供的信息不完整时，用默认值填充 + 标注「（请填写）」
- 书名安全：自动处理文件系统不允许的字符
- 模板填充：阶段 1 收集到的信息直接填入模板，不做二次加工
- 活跃书管理：每次创建新书或切换书后，更新 current_book.txt

