| name | chapter-split |
| description | 把 echo-reading 里一个章节的原文,按内容理解切成若干 「阅读单元」,每个单元生成独立的 9 段笔记骨架(原文灌满、2-7 段占位、8/9 留白)+ 一份卷层面的 00-导读.md,并把 progress.md 改成「章→单元」两层。当用户说「读《X》第 N 章 / 下一章」而该章【尚未切分】、或说「把这章切成单元 / 这章太长读着累 / 分一下段」时使用。 |
chapter-split — 把过长的章切成读得舒服的阅读单元
在读某章之前,把一章过长的纯原文 chNN/raw.md 切成若干阅读单元——每个单元是一个能独立站住的完整场景 / 论证回合,配 9 段骨架,让「打开一个文件 = 一份可承受的注意力」。单元和 raw.md 同处 chNN/ 目录:长章切成 00-导读.md + 01.md…NN.md,短章本身就是一个单元,写一个 chNN/01.md(铺一次 9 段)即可。raw.md 是源头底本,本 skill 只读它、绝不改它、不删它。
最重要的一条:判断不写死,长度不是规则
切在哪、切成几个、各叫什么——全靠读懂这一章的内容来判断,依据是注意力 + 语义自足 + 信息密度三层标准,不是字数(拿 wc 量字数定切点是把因果搞反了)。先读 references/segmentation-principle.md,那是本 skill 的灵魂。
固化成脚本的只有两头确定性脏活:取原文(extract_source.py)、按锚点搬运+校验(write_units.py)。中间「怎么切」每章都不同,是判断,不复用。
工作流
记 SKILL 为本 skill 目录,ROOT 为 echo-reading 项目根。
第 0 步 · 分诊:要不要切
python3 SKILL/scripts/extract_source.py ROOT/books/<书>/<章>/raw.md
看原文有多少段、大致多少字、是什么文体。判断:
- 短章(本身就是一个完整单元,如道德经一章)→ 不切。spec 里只放 1 个单元(锚点 = 原文第一段),脚本把 9 段骨架写成
chNN/01.md,结束。
- 长章(一个文件就是一堵墙)→ 进第 1 步。
第 1 步 · 通读,画结构图
完整读这一章的原文(用 Read 读 chNN/raw.md,或看 extract 的分段列表),不是扫。产出一张结构图:这是什么文体(对话 / 论证 / 叙事 / 说理)?里面有哪几个场景 / 论证回合 / 叙事段?每段从哪句起到哪句止(记下起始原句做锚点)+ 一句「这段在干嘛」+ 密度高低。没读懂不准往下切。
第 2 步 · 提落缝方案
按三层标准(见 principle)把结构图落成单元清单:每个单元 = 标题 + 起始锚句 + 「是什么」+「为什么能独立站住」+ 密度备注。显式标出「长度会骗人」处(长但连贯不切 / 短但密度高必须独立)。
第 3 步 · 子 agent 冷读闸(不可跳,替代人审)
用户没读过这本书,让他审落缝是假动作;而你自评必然感觉良好。所以起一个独立子 agent (Task / Agent 工具)做冷读:
- 只把**各单元原文(按序、带标题)**喂给它,绝不附上你「为什么这么切」的理由;
- 让它当纯读者逐单元回答 principle 里那 5 问(完整吗 / 悬空吗 / 是不是两件事黏一起 / 是不是密度墙 / 相邻该不该合);
- 据它的报告修订落缝 → 再起一个子 agent 冷读一轮 → 收敛了才放行(至多 2 轮)。
第 4 步 · 脚本搬运 + 回装校验
落缝定了,写 spec JSON(格式见 write_units.py 头部)喂进去:
cat spec.json | python3 SKILL/scripts/write_units.py \
--book <书> --chapter <章> --root ROOT
write_units.py 会:从 chNN/raw.md 取原文 → 按锚句定位 → 切片 → 每片写一个 9 段骨架单元文件,全部落进 chNN/(多单元写 00-导读.md + 01.md…NN.md,progress 展开两层;单单元写 01.md,progress 保持单行)→ 把所有切片拼回跟原文逐字比对。raw.md 原样不动。
回装校验必须报「✓ 零差异」。报差异说明锚点切错(漏段 / 重复 / 串行),别用结果,回去查锚点。脚本绝不改写原文一个字——它只搬运。
第 5 步 · 回报
简短告诉用户:切成几个单元、各叫什么、校验通过、可以开始读单元 1 了。raw.md 留在 chNN/ 里作源头底本(供溯源 / 日后重切),不用删、也别让用户删——它和单元同处一个目录,各司其职。
之后用户读单元、说理解、跟 LLM 聊——2-7 段的内容在那时才长出来(深读主流程,见项目 CLAUDE.md),本 skill 只铺空骨架,不预先生成注疏。
不变量
- 切分依据是理解,不是字数;长度只在切完当事后提醒铃(见 principle)。
- 缝锚在原句上,不锚行号。
- 只在「骨架态」章上跑:若某章 2-7 段已做过深读(不是
<!-- 待生成 -->),切分会毁掉成果 → 先警告、别动。
- 9 段结构模板与项目 CLAUDE.md 一致;多单元时第 5 段是「与上一单元的连接」(首单元为「与前章的连接」)。
- 单元一律落进
chNN/,原文 chNN/raw.md 只读不改不删。