| name | dp-chapter-summary |
| description | 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 |
如果你是被派遣执行特定任务的子代理,跳过此技能。
章节摘要生成
本技能是刚性技能。严格遵循,不得变通。
编号稳定性契约:本文件步骤编号使用「主步骤 + 续」结构(第一至第六步为主步骤,第四步续/第五步续为附加步骤)。第六步「为下一章创建摘要符号链接」被 dp-chapter-draft 阶段 A 步骤 5 硬引用。修改编号前必须同步更新所有跨文件引用。
定义
摘要 = 全文的高度缩写。去掉修饰,只保留事件骨架和关键细节(关键物品、关键事件、关键态度转变)。不含对话。一段纯文本,150 字以内,无任何格式。
摘要之后追加一行角色章末状态快照,记录本章结束时各出场角色的关键状态(物理状态、情绪状态、所在位置)。状态快照以 [章末状态] 开头,不计入 150 字限制。
它是跨章节连续性的唯一桥梁。未来章节的工作区通过软链接引用前序摘要,AI 在写作时只能看到这些摘要,看不到完整的前序章节正文。角色章末状态快照确保下一章能正确延续角色的伤势、情绪、位置等动态信息。
原则:只记录发生了什么,不透露即将发生什么。不引用大纲。不含对话。
适用时机
dp-chapter-draft 完成一章后自动调用
- 用户导入手写章节后,需要为其生成摘要
- 用户要求重新生成某章摘要(如章节经过大幅修订)
输入与输出
唯一输入
章节正文 —— 按以下顺序查找:
docs/dreampowers/release/chapter-NNN.md(正式终稿,优先)
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 已存在(即本次是覆盖式重生成,而非首次生成)。
若触发:
-
遍历 docs/dreampowers/chapters/chapter-MMM/ 目录,找出所有 MMM > NNN 的章节文件夹
-
对每个存在 spec.md 且第六节或第七节非空的下游章节,在 spec.md 文件开头插入陈旧标记(<NNN> 为被覆盖摘要的三位数章节号,<YYYY-MM-DD> 为覆盖日期):
<!-- STALE-DEP:summary-<NNN> 已于 <YYYY-MM-DD> 重新生成,本 spec §6/§7 中嵌入的第 <NNN> 章内容可能过时。写作前必须重跑草稿预审阶段 A,刷新后手动删除本标记。 -->
-
若同一个 spec.md 已经有相同 <NNN> 的 STALE-DEP 标记,仅更新日期,不重复插入
-
完成后向用户输出汇总:已在以下章节的 spec.md 插入陈旧标记:chapter-MMM, chapter-MMM+1, ...
首次生成(timeline/summary-NNN.md 之前不存在)不触发本步。
第六步:为下一章创建摘要符号链接
保存摘要后,检查下一章的章节文件夹(docs/dreampowers/chapters/chapter-{NNN+1}/)是否已存在。若已存在:
- 将
docs/dreampowers/timeline/ 下所有已存在的 summary-*.md 文件,在下一章的章节文件夹内创建符号链接:summary-NNN.md → ../../timeline/summary-NNN.md
- 如果链接已存在则跳过,不重复创建
若下一章的章节文件夹尚不存在,跳过此步。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 字以内,只含关键事实),后接一行角色章末状态快照([章末状态] 开头,记录各出场角色的物理/情绪/位置状态)。若下一章文件夹已存在,所有已有摘要的符号链接已创建在下一章文件夹中。