拆书——对网络小说进行深度结构分析。输入番茄小说等平台的链接,自动抓取、解码、分析,输出七步骨架/冲突三层/人物弧光/对话技法/节奏控制等维度的拆书报告。触发词:拆书、拆解、分析这本小说、帮我看看这本书。
Scanned 8/30/2026
Install to Claude Code
npx -y skills add QQ-L-XX/novel-deconstruct --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of novel-deconstruct?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/qq-l-xx-novel-deconstruct)More formats (shields.io, HTML) on the badges page.
---
name: novel-deconstruct
description: 拆书——对网络小说进行深度结构分析。输入番茄小说等平台的链接,自动抓取、解码、分析,输出七步骨架/冲突三层/人物弧光/对话技法/节奏控制等维度的拆书报告。触发词:拆书、拆解、分析这本小说、帮我看看这本书。
---
# Novel Deconstruct — 拆书技能
对网络小说进行系统性的写作技法分析。自动处理字体反爬、章节抓取、定量扫描、场景级深度拆解全流程。
## 检测流程
```
用户提供小说链接
├─ 番茄小说 (fanqienovel.com) → 字体解码 + API抓取
├─ 其他平台 → 通用网页抓取
└─ 用户直接粘贴文本 → 跳过抓取,直接分析
```
---
## Step 1: 获取元数据
读取小说主页,提取:
- 书名、作者、简介、题材标签、总字数、更新状态
- 完整章节目录(含每章标题)
- 章节总数 N
---
## Step 2: 抓取正文
### 番茄小说
1. 从主页 HTML (`__INITIAL_STATE__` JSON) 提取 `chapterListWithVolume`
2. 从 CSS 提取自定义字体 URL (woff2) → `tools/decode_font.py` 用 fontTools + ddddocr 建 PUA→汉字映射表
3. 按采样策略批量请求 reader API (`fanqienovel.com/reader/{itemId}`),用映射表解码正文
### 采样策略
| 范围 | 策略 | 用途 |
|------|------|------|
| Ch 1-10 | **全文** | 开局分析(激励事件/人物引入/世界观建立) |
| Ch 11-N | 每 N/8 章取1章 | 结构采样(幕转折/冲突升级/人物弧光) |
| 最后10章 | **全文** | 结局分析(高潮/收束/主题落点) |
总计约 20-30 章。番茄免费章节通常仅前10章,后续章节可能需要登录 Cookie 或第三方镜像站。
---
## Step 3: 定量扫描(必做,不可跳过)
对每章正文执行以下自动化扫描,输出数据表:
### 3.1 基础指标
| 指标 | 方法 |
|------|------|
| 字数 | `len(re.sub(r'\s', '', body))` |
| 段落数 | 按换行分割 |
| 场景数 | 按空行/`-`/`—`/视角切换分割 |
| 句均长 | 以 `。!?;…` 断句,取均值 |
| 短句% | ≤15字的句子占比 |
| 长句% | >25字的句子占比 |
| 对话% | 含对话标记的段落占比 |
| 了/段 | 「了」字总数 ÷ 段落数 |
### 3.2 疲劳词扫描(逐词计数,输出单章+总计)
按以下分类,使用 `body.count(word)` 逐词扫描:
| 类别 | 词表 | 阈值 |
|------|------|------|
| 副词 | 突然/忽然/猛然/竟然/居然/渐渐/逐渐/依旧/仍然/默默/微微 | 各≤3次/章 |
| 动词模板 | 露出/陷入/涌起/泛起/浮现/充斥 | 各≤3次/章 |
| 连接词 | 然而/不过/于是/随即/紧接着/与此同时 | 各≤4次/章 |
| 身体模板 | 瞳孔一缩/身体一僵/倒吸一口凉气/呼吸一滞 | 各≤2次/章 |
| 含混词 | 仿佛/宛如/好像/似乎 | 合计≤2次/500字 |
| 「让」字 | 让/令/使 | **专项统计**(指南禁止项) |
| 「不是…而是…」 | 正则 `不是.{0,20}而是` | ≤3次/章 |
### 3.3 情绪标签词扫描
搜索「悲伤/愤怒/恐惧/幸福/美丽/紧张/焦虑/难过/开心/害怕/兴奋/激动/失望/绝望」等词,**区分对话中出现 vs 旁白中出现**。旁白中出现即违规。
### 3.4 章标题风格聚类
将所有章节标题按风格分为五类:
- **感官期**:具象名词(食物名、动作、对话片段)
- **事件期**:情节节点(冲突、转折、新信息)
- **状态期**:心理/关系状态描述
- **悬念期**:省略号、对话片段、抽象概念
- **收束期**:短句、意象、情感落点
---
## Step 4: 场景级深度拆解
对**前10章全文**逐章逐场景执行以下分析:
### 4.1 每章输出
```
场景切分图(场景1/2/3…字数+POV+内容概要)
↓
关键段落逐段功能标注(激励事件/世界观渗透/人物引入/弧光推进/钩子)
↓
鸿沟检查(场景内人物期望 vs 世界实际反应)
↓
技法点评(冰山对话/以景写情/镜头感/倒叙/详略判断)
↓
章末钩子质量评估
```
### 4.2 场景切分规则
- 空行、单独成段的 `-`/`—`/`...` = 场景边界
- POV 人物切换 = 场景边界
- 时间/空间跳跃 = 场景边界
- 单场景章(如Ch4/Ch7)标记为情感高潮章
### 4.3 鸿沟检查方法
对每个场景回答三个问题:
1. 人物的期望是什么?
2. 世界实际给出了什么反应?
3. 两者之间是否有裂缝(反应 ≠ 期望)?
无裂缝 → 标记「无效场景」。
### 4.4 冰山对话检查
摘录每章最核心的对话段落,检查:
- 人物说出来的话(水上1/8)vs 真正的意图(水下7/8)
- 是否通过回避/犹豫/沉默/过度否认来传递水下信息
- 有没有人物直接说出自己的真实意图(= 违规)
---
## Step 5: 逐章价值变化追踪
建立 10章 × 6维度 的变化矩阵:
| 维度 | 检查方法 |
|------|---------|
| 处境变化 | 人物外部处境的正↔负转换(安全↔危险/富有↔贫穷等) |
| 关系变化 | 人物间关系的正↔负转换(亲近↔疏远/信任↔怀疑等) |
| 认知变化 | 人物对世界/他人/自己的理解的正↔负转换 |
| 情绪方向 | 本章主导情绪的起→落方向 |
| 钩子类型 | 信息悬念/情感悬念/情境悬念/情感收束 |
| 核心规律 | 每章是否至少一个维度发生可感知变化? |
---
## Step 6: 结构层分析
### 6.1 七步骨架
对照 `story-craft-reference.md`,逐步骤标注在正文/章节目录中的对应位置。
### 6.2 激励事件
- 定位精确章节/段落
- 检查是否在故事前四分之一处
- 验证双欲望设计(自觉+不自觉)
- 检查是否发生在读者面前(非幕后)
### 6.3 幕结构切分
基于章节标题和内容转折点,将全书切分为 6-8 幕,每幕标注:
- 起止章节 + 章节数
- 核心冲突 + 转折节点
- 对抗力量等级(对立面/矛盾体/反讽)
### 6.4 冲突三层缠绕验证
选取关键章节,验证三层冲突是否同时推进且互相缠绕。
---
## Step 7: 输出报告
报告保存到 `{用户桌面}/拆书_{书名}/` 或用户指定目录。
### 报告结构(18章标准模板)
```
一、作品档案
二、七步骨架分析
三、激励事件分析
四、鸿沟推进机制
五、冲突三层法则
六、对抗力量升级路径
七、叙事视角分析
八、对话分析(冰山对话 + 镜头感)
九、句式与文风分析
十、人物塑造分析(主角面具/真相/弧光 + 群像功能)
十一、节奏分析(节奏图 + 章末钩子检查)
十二、逐章定量扫描(基础指标表 + 疲劳词扫描 + 情绪标签词扫描)
十三、逐章逐场景深度拆解(Ch1-10,每章场景切分+功能标注+鸿沟检查+技法点评)
十四、逐章价值变化追踪(6维矩阵)
十五、八幕结构全景(基于全本章节标题)
十六、章标题风格演变(五阶段聚类)
十七、结构总评(优势 + 可改进)
十八、拆书结论(评分表 + 一句话总结)
```
### 评分维度
| 维度 | 满分 |
|------|------|
| 选题 | ★★★★★ |
| 结构 | ★★★★★ |
| 人物 | ★★★★★ |
| 对话 | ★★★★★ |
| 文笔 | ★★★★★ |
| 世界观 | ★★★★★ |
| 商业性 | ★★★★★ |
---
## 工具脚本
| 脚本 | 用途 |
|------|------|
| `tools/decode_font.py` | 番茄字体解码:下载woff2 → fontTools解析cmap → ddddocr OCR识别 → 输出映射JSON |
| `tools/fetch_novel.py` | 批量章节抓取:读取章节列表 → 采样 → 逐章请求+解码 → 保存TXT |
## 依赖
```bash
pip install fonttools brotli Pillow ddddocr requests
```
## 分析参照
本技能分析时参照以下理论框架:
- AI写作规范指南 V3.0(麦基《故事》+ 许荣哲《小说课》+ 布兰德《成为作家》)
- awesome-novel-skill 的 story-craft-reference.md(七步骨架/三番四震/鸿沟机制/人物弧光等)
- awesome-novel-skill 的 chapter-quality-checklist.md(15项验收标准)
- awesome-novel-skill 的 common-rules.md(疲劳词阈值/句式规则/镜头感对话/以景写情/活人感)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!