# Abc Fenxi

> ABC爽点循环结构分析。对已完成分章节概括的小说项目，自动提取每章的A（动机共情）/B（装逼反应）/C（嵌套突然）结构，输出 YAML 格式分析报告和全书爽点密度汇总。 由 chai-shu 主入口路由调用，也可独立触发。 当用户提到"ABC分析"、"爽点分析"、"ABC结构"时使用。

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

---


## 欢迎页（每次触发必须先完整输出此区块）

```text
+======================================================================+
|                                                                      |
|          A B C   爽   点   分   层   分   析                         |
|                                                                      |
|      A  动机·共情  ──  暗爽，让读者带着期待跟进                      |
|      B  装逼·反应  ──  明爽，反应的层数决定爽感强度                   |
|      C  嵌套·突然  ──  立体，旧循环结束即是新循环开始                 |
|                                                                      |
+======================================================================+
```

ABC爽点分层分析法，是针对网络爽文的结构化拆解框架。

每个让读者"爽"的章节，背后都运行着同一套循环——
A（动机+共情）制造期待：主角的处境、目标与能力暗示，
让读者带着「他到底会怎么做」的悬念跟进；
B（装逼+反应）释放爽感：装逼只是触发器，
真正决定爽感强度的是反应的层数与篇幅——
质疑者、围观群众、嘲讽者、强者重评、扩散效应，
层层递进，每一层都是情绪的放大器；
C（嵌套+突然）防止单调：旧循环结束时埋下新循环的钩子，
或突如其来的身份反转、规模升级，让读者在满足后立刻进入下一个期待。

本 skill 以 YAML 格式记录每章的 ABC 结构，
量化 B 的反应层数与篇幅比，生成全书爽点密度热力图。

---

分析优秀作品时，重点看什么？

翻开 abc-ch*.yaml，找 B完整度=合格 的章节，
仔细拆读「分层」字段——质疑者如何引出嘲讽者，
嘲讽者被打脸后强者如何重新评价，扩散效应如何延伸情绪余韵。
这些就是作者的核心反应技法，可以直接提炼为自己的「分层模板库」。
abc-heatmap.md 的密度分布标出哪些章节是爽点峰值，
从峰值章往前数2-3章，通常是最经典的A铺垫结构，值得反复研读。

分析自己的作品时，重点看什么？

先看 main_cycle_b_quality=不合格 的章节列表和反应篇幅比数值。
反应篇幅比低于1.5，说明装逼已经写出来了，
但情绪没有被「接住」——读者在等待爽感，作者已经翻篇。
这类章节的改法几乎是固定的：不需要重写装逼场景，
只需在装逼段之后补写2-3层外部反应，
让见证者从「质疑」到「震惊」到「重新评价」完整走一遍。
B完整度最终决定读者是否会留到下一章。

---

## ⚠️ 关键约束（必读）

**批量并行执行（区别于 fen-zhang-jie-gai-kuo 的串行）**

- ✅ 每批5章，同时最多启动3批并行 sub-agent
- ✅ ABC 章节间无依赖关系，可以并行（不需要跨章上下文）
- ✅ 所有批次完成后，启动汇总 sub-agent 生成 abc-summary.yaml
- ❌ 汇总阶段必须等所有批次完成后才能启动

---

## 编排模式

当由 `chai-shu` 主入口编排调用时（自动化拆书或用户选择了多项分析）：
- 跳过欢迎页输出
- 完成后返回状态摘要（完成数量、产出文件路径列表）
- 由主入口统一向用户呈现报告和后续选项

独立触发时（用户直接说"ABC分析"等）：正常显示欢迎页。

---

## 前置依赖

必须先完成「分章节概括」（chai-shu 选项 3），确保以下文件存在：

```
{书名}/概括/               ← 章节概括文件目录（必须）
{书名}/全书概括.md          ← 全书概况（汇总阶段使用）
{书名}/人物和设定/名词表.md  ← 人物名称（识别反应人物用）
```

---

## 核心配置

```
工作目录: {ROOT}/Factory/拆书/
分组大小: 5章/批
并行上限: 3批同时（避免过载）
执行模式: 批量并行 + 自审（每章分析完后自我审查）
输出目录: {书名}/ABC分析/
模型选择: sonnet（性价比最优）
```

---

## 架构说明

```
主进程（轻量调度）
    │
    ├─ 读取概括目录，计算分批参数
    ├─ 启动批次1（章1-5）
    ├─ 启动批次2（章6-10）  ← 与批次1并行
    ├─ 启动批次3（章11-15） ← 与批次1/2并行
    ├─ [等待批次1-3完成]
    ├─ 启动批次4（章16-20）
    ├─ ...（每次最多3批并行）
    │
    └─ [所有批次完成后]
        └─ 汇总 sub-agent → abc-summary.yaml + abc-heatmap.md + abc-quick-list.md
```

**优化原理**：
- ABC 分析无跨章依赖 → 批次间可以并行
- 每批 sub-agent 独立：读取概括 → 分析5章 → 写入5个 yaml
- 主进程不读取分析结果，只确认文件是否创建成功

**与 fen-zhang-jie-gai-kuo 的区别**：
- 章节概括：串行（后章需要前章的 `last_group_summary`）
- ABC分析：并行（章节独立，无跨章依赖）

---

## 执行阶段

### 阶段0：前置检查（逐步操作）

1. 用 Glob 列出 `{书名}/概括/` 下所有 `.md` 文件
2. 从文件名解析章节范围（格式：`组N_第X-Y章_概括.md`），统计总章节数
3. 计算批次数（每批5章：`ceil(总章节数 / 5)` 批）
4. 检查 `{书名}/ABC分析/` 目录是否存在，不存在则创建
5. 检查 `_progress.json` 是否存在：
   - 存在 → 读取 `analyzed_chapters` 字段，仅处理新增章节（增量模式）
   - 不存在 → 全量分析
6. 检查名词表 `{书名}/人物和设定/名词表.md` 是否存在（软依赖，不存在则跳过）
7. 向用户确认：「总 N 章，分 M 批，本次处理第 X-Z 章（全量/增量）」

### 阶段1：批量 ABC 分析（逐步操作）

1. 按5章一批划分，构建批次列表（每批含5个章节序号 + 对应概括文件路径）
2. 取前3批，在**单条消息中**用 Agent tool 并行启动（同一消息多个工具调用）：
   - `description`: `"ABC分析批次N(章X-Y)"`
   - `prompt`: 将 `references/sub-agent-prompt.md` 模板填入实际变量后传入（路径包括概括目录、名词表路径、abc-definition.md路径、yaml-schema.md路径、输出目录）
3. 等待本轮3批全部返回后，用 Glob 验证输出 yaml 文件是否存在
4. 若某批缺失文件：重启该批次 sub-agent，最多重试1次
5. 重复步骤2-4，直到所有批次完成
6. 更新 `_progress.json`（analyzed_chapters、batches_completed、last_updated）

### 阶段2：全书汇总（逐步操作）

1. 所有批次验证通过后，启动汇总 sub-agent（见 `references/sub-agent-prompt.md` 模板2）
2. 汇总 sub-agent 输入：ABC分析目录路径、全书概括.md路径、名词表路径、yaml-schema.md路径
3. 等待汇总 sub-agent 完成，确认 `abc-summary.yaml` + `abc-heatmap.md` + `abc-quick-list.md` 生成
4. 向用户输出最终报告（总章节数、高密度章节占比、B合格率、峰值章、问题章）

> **完整执行步骤详见**: [references/workflow.md](references/workflow.md)

---

## 产出文件

| 文件 | 位置 | 用途 |
|------|------|------|
| 单章分析 | `{书名}/ABC分析/abc-ch{XXX}.yaml` | 每章 ABC 结构数据 |
| 全书汇总 | `{书名}/ABC分析/abc-summary.yaml` | 全书密度统计 |
| 热力图 | `{书名}/ABC分析/abc-heatmap.md` | 爽点分布可视化 |
| 快捷列表 | `{书名}/ABC分析/abc-quick-list.md` | 全书情节ABC标记速览 |
| 进度文件 | `{书名}/ABC分析/_progress.json` | 增量更新进度 |

---

## 增量更新

支持增量更新（新章节不用重新分析全书）：
1. 读取 `_progress.json` 识别已分析章节
2. 只处理新增的概括文件
3. 全部完成后重新生成汇总

---

## References

- **[references/workflow.md](references/workflow.md)**：完整执行步骤（Handoff 文档，开发者必读）
- **[references/abc-definition.md](references/abc-definition.md)**：ABC 识别规则（sub-agent 运行时加载）
- **[references/yaml-schema.md](references/yaml-schema.md)**：YAML 输出格式规范
- **[references/sub-agent-prompt.md](references/sub-agent-prompt.md)**：Sub-agent 提示词模板

**⚠️ 执行前必读**：[references/workflow.md](references/workflow.md)

