# Dp Chapter Summary

> Use when generating a plain-text chapter summary (≤150 Chinese characters + character end-of-chapter state snapshot) from the finished chapter, for cross-chapter continuity

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

---


<SUBAGENT-STOP>
如果你是被派遣执行特定任务的子代理，跳过此技能。
</SUBAGENT-STOP>

# 章节摘要生成

本技能是**刚性技能**。严格遵循，不得变通。

**编号稳定性契约**：本文件步骤编号使用「主步骤 + 续」结构（第一至第六步为主步骤，第四步续/第五步续为附加步骤）。**第六步「为下一章创建摘要符号链接」被 dp-chapter-draft 阶段 A 步骤 5 硬引用**。修改编号前必须同步更新所有跨文件引用。

## 定义

摘要 = **全文的高度缩写**。去掉修饰，只保留事件骨架和关键细节（关键物品、关键事件、关键态度转变）。不含对话。一段纯文本，150 字以内，无任何格式。

摘要之后追加一行**角色章末状态快照**，记录本章结束时各出场角色的关键状态（物理状态、情绪状态、所在位置）。状态快照以 `[章末状态]` 开头，不计入 150 字限制。

它是跨章节连续性的唯一桥梁。未来章节的工作区通过软链接引用前序摘要，AI 在写作时只能看到这些摘要，看不到完整的前序章节正文。角色章末状态快照确保下一章能正确延续角色的伤势、情绪、位置等动态信息。

**原则：只记录发生了什么，不透露即将发生什么。不引用大纲。不含对话。**

## 适用时机

- `dp-chapter-draft` 完成一章后自动调用
- 用户导入手写章节后，需要为其生成摘要
- 用户要求重新生成某章摘要（如章节经过大幅修订）

## 输入与输出

### 唯一输入

**章节正文** —— 按以下顺序查找：

1. `docs/dreampowers/release/chapter-NNN.md`（正式终稿，优先）
2. `docs/dreampowers/release/chapter-NNN-TBD.md`（外部审阅闭环 3 次未通过的待人工审阅稿，fallback）

两者都不存在则中止执行，报告"章节尚未定稿，无法生成摘要"。

**TBD 摘要标记**：从 `chapter-NNN-TBD.md` 生成的摘要必须在文件开头加一行 `[TBD] 本章未通过外部审阅，摘要可能不准`。后续章节的 spec.md §7 嵌入此摘要时会带上 TBD 前缀，草稿预审阶段 B 呈现给用户时须明示"前章未定稿"。

**摘要生成阶段**（第一步到第五步）不读取 spec.md、thread-*.md、前序摘要、大纲、或任何其他文件。唯一的输入就是章节正文本身。

**副作用步骤**（第五步续陈旧检测 + 第六步下一章符号链接）在摘要保存后执行，允许：
- 遍历 `docs/dreampowers/chapters/` 目录寻找下游章节
- 在下游章节的 `spec.md` 开头插入 STALE-DEP 标记
- 在下一章文件夹创建 `summary-*.md` 符号链接

这些副作用不影响摘要内容本身，权限已在 `dp-using-dreampowers` 的围栏例外中显式声明。

### 输出

`docs/dreampowers/timeline/summary-NNN.md` —— 纯文本文件，格式要求见上方定义。

## 生成流程

### 第一步：通读章节

读完整章正文。不读其他文件。

### 第二步：压缩

从章节中提取事件骨架：谁（who）在哪里（where）什么时候（when）做了什么（what）、怎么做的（how）。标注关键细节：改变故事走向的物品、事件、态度转变。忽略修饰性描写、对话内容、情绪表达和章节定位词。

### 第三步：写成一段话

把剩下的事实用最短的句子串成一段连贯的纯文本。

### 第四步：检查字数和格式

- 超过 150 字？继续删减，直到 150 字以内。
- 含有 `#`、`-`、`*`、`>`、`|`、`##`、`###`、`**`、`__` 等任何 Markdown 标记？去掉。
- 含有标题行、列表、表格、分隔线？去掉。
- 分了多段？合并为一段。

### 第四步续：生成角色章末状态快照

回顾章节正文结尾处各出场角色的状态，生成一行状态快照：

- 以 `[章末状态]` 开头
- 格式：`角色名:物理状态/情绪状态/位置`，多角色用分号分隔
- 只记录本章有实质出场的角色（被提及但未出场的不记）
- 物理状态：健康、轻伤、重伤、昏迷、死亡等
- 情绪状态：用一两个词概括（如 愤怒、绝望、平静、困惑）
- 位置：当前所在地点
- 如果某项状态本章未涉及或无变化，可省略该项
- 状态快照不计入 150 字限制

### 第五步：保存

将纯文本保存到 `docs/dreampowers/timeline/summary-NNN.md`。文件内容就是那一段话，不加任何标题行、元数据或装饰。

### 第五步续：检测下游 spec 陈旧

**触发条件**：保存前 `docs/dreampowers/timeline/summary-NNN.md` 已存在（即本次是覆盖式重生成，而非首次生成）。

若触发：

1. 遍历 `docs/dreampowers/chapters/chapter-MMM/` 目录，找出所有 MMM > NNN 的章节文件夹
2. 对每个存在 `spec.md` 且第六节或第七节非空的下游章节，在 spec.md 文件开头**插入陈旧标记**（`<NNN>` 为被覆盖摘要的三位数章节号，`<YYYY-MM-DD>` 为覆盖日期）：

   ```
   <!-- STALE-DEP:summary-<NNN> 已于 <YYYY-MM-DD> 重新生成，本 spec §6/§7 中嵌入的第 <NNN> 章内容可能过时。写作前必须重跑草稿预审阶段 A，刷新后手动删除本标记。 -->
   ```

3. 若同一个 spec.md 已经有相同 `<NNN>` 的 STALE-DEP 标记，仅更新日期，不重复插入
4. 完成后向用户输出汇总：`已在以下章节的 spec.md 插入陈旧标记：chapter-MMM, chapter-MMM+1, ...`

**首次生成**（timeline/summary-NNN.md 之前不存在）不触发本步。

### 第六步：为下一章创建摘要符号链接

保存摘要后，检查下一章的章节文件夹（`docs/dreampowers/chapters/chapter-{NNN+1}/`）是否已存在。若已存在：

1. 将 `docs/dreampowers/timeline/` 下所有已存在的 `summary-*.md` 文件，在下一章的章节文件夹内创建符号链接：`summary-NNN.md → ../../timeline/summary-NNN.md`
2. 如果链接已存在则跳过，不重复创建

若下一章的章节文件夹尚不存在，跳过此步。`dp-chapter-draft` 的草稿预审阶段会在写作前检查并补建缺失的摘要链接。

## 摘要文件格式

文件内容**仅包含一段纯文本 + 角色章末状态快照**，示例：

```
张三在废弃矿井底部发现刻有未知文字的石碑，触碰后右手出现灼烧纹路并蔓延至手腕。李四追踪到矿井入口，在外围设下监视。王五得知矿区封锁的消息后连夜出发。石碑文字与王五在古书中见过的符号一致。张三仍困在矿井中。

[章末状态] 张三:重伤·右手灼烧纹路蔓延/恐惧/矿井底部; 李四:健康/警觉/矿井入口外围; 王五:健康/焦急/赶往矿区途中
```

**注意：事件段落没有标题行，没有 `# 第 NNN 章摘要`，没有任何 Markdown 格式。事件段落就是一段话。状态快照与事件段落之间空一行，以 `[章末状态]` 开头。**

## 导入章节处理

用户导入手写章节时，先存入 `docs/dreampowers/release/chapter-NNN.md`，再按标准流程生成摘要。

流程与 AI 起草的章节完全相同。

## 与其他技能的交互

| 关系 | 技能 | 说明 |
|------|------|------|
| 被调用 | `dp-chapter-draft` | 每章完成后调用本技能生成摘要 |
| 下游 | `dp-chapter-draft` | 本技能创建摘要后，为下一章文件夹创建摘要符号链接；`dp-chapter-draft` 草稿预审时检查并补建缺失链接 |
| 被引用 | `dp-set-outline` | 大纲中的章节计划可参考已有摘要 |
| 被引用 | `dp-review-consistency` | 连续性检查时使用摘要核对跨章节一致性 |
| 被引用 | `dp-review-reader` | 读者视角测试时参考已读章节的累积信息 |

## 反模式

- **引用大纲的计划信息** ❌ 摘要只记录已发生的事
- **读取 spec.md、thread-*.md 等非章节正文的文件** ❌ 唯一输入是章节正文
- **超过 150 字** ❌ 硬限，无例外
- **使用任何 Markdown 格式**（标题、列表、加粗、表格）❌ 纯文本，一段话
- **分成多段** ❌ 一段话
- **接近全章复述** ❌ 只留事实框架
- **包含作者评价或修改建议** ❌ 事实记录，不是审查报告
- **摘要中出现角色对话或引语** ❌ 摘要是事件骨架的缩写，不是场景复述
- **文件开头加 `# 第 NNN 章摘要` 标题** ❌ 文件内容就是一段话，无标题

## 终止状态

摘要文件已保存到 `docs/dreampowers/timeline/summary-NNN.md`。文件内容是一段纯文本（150 字以内，只含关键事实），后接一行角色章末状态快照（`[章末状态]` 开头，记录各出场角色的物理/情绪/位置状态）。若下一章文件夹已存在，所有已有摘要的符号链接已创建在下一章文件夹中。

