写在前面
继上篇自动化分析跑起来之后,我的 Token 额度很快就见底了,每天都在等重置,导致每次跑不了几小时自动化。在这等重置的一段时间里,我突然想知道每次分析的这十几分钟里,Claude 到底在做什么,哪些地方比较在耗时。
于是我就问 Claude 为什么每次分析这么慢?
我还以为它会告诉我它在搜索数据之类的原因。
没想到得到的回复竟然是它在调试代码。
=_=
我这才意识到它每次生成的脚本都不是复用的,并且生成的脚本有可能有 Bug,它需要测试并修改直到成功。虽然已经让它把流程固化在 SKILL 中,但是纯文字版的 SKILL.md 缺乏脚本层支撑, Claude 每次执行都要从 0 生成 Prompt, 这才是 Token 消耗的真正原因。而且 SKILL 本身就支持固化脚本在内部,只是我的第一版 SKILL 没有要求。
灵光一闪我又想到了 SDD 驱动开发的文章,它的流程是不写一行代码,只写规范。相当于 PRD,然后让 AI 完成代码的部分。感觉和我的场景很匹配,需求固化到 PRD,然后让 AI 把 PRD 解释成 SKILL,每一步生成对应的脚本,这样既能固化需求,又能节省 Token,这才是 AI 工作流的正确打开方式。
SDD 怎么落地
先聊聊 SDD 它是什么。 SDD(Spec-Driven Development,规范驱动开发) 的核心思路是: 先把规范(spec)写清楚,再让 AI 生成代码。
跟传统开发 先写代码 → 补文档 完全反过来。
具体到我这套读书工作流,SDD 落地的形式是这样的:
- PRD 决定「做什么」: 做什么和不做什么是大模型每次输出不一样的最根本问题,只有限制好 LLM,才能每次都得着想要的结果。
- SKILL.md 决定「顺序和陷阱」: 从 PRD 中拆解出来可重复的 SOP 的执行步骤、约束等固定操作。让流程规范化。
- 脚本 决定「确定性」: 每一条固化好的 SOP,在端上会形成经过验证的脚本以及确定性的结果。也避免每次大模型都在调试工具。
- 笔记模板 决定「结构和风格」: 整体的风格和结构,按照 PRD 提前生成对应的模板,LLM 就会使用固定的风格。
PRD 决定 schema,SKILL.md 决定流程,脚本决定确定性,笔记模板决定风格。每一层约束一个不同维度,缺一不可。
没脚本就输出不稳定,没模板就实体抽取风格随机,没 SKILL.md 执行顺序混乱,没 PRD 校验就缺依据。
跟之前纯提示词方案相比,整个流程的 LLM 部分从「全程」压缩到了「中间一环」,脚本化让「不确定」只发生在一个环节。
1 | 阶段 1 (PRD 阶段): 跟 Claude 一起打磨 "规范文档" |
只有先 PRD → 后 SKILL → 再脚本,每一层都在上一层的约束下,才能保证稳定。
这套流程还有一个隐性收益,上层的修改下层自动生效,不会陷入改一行脚本就要全部重来的困境,这让整个工作流能快速迭代。
Skill 目录结构
1 | ~/.claude/skills/productivity/book-vault-analysis/ |
分析流程
下面是分析流程和上面的 SKILL 目录的对应关系:
1 | EPUB 文件 |
把这 8 步对照前面的 4 层固化,刚好一一对应:
| 流程步骤 | 对应固化层 | 决定什么 |
|---|---|---|
| 脚本 1-3 (s20/s30/s40) | 第 3 层 (Python 脚本) | 数据层 (EPUB / 分类 / 豆瓣) 怎么拿 |
| Claude 实体抽取 | 第 1 层 (PRD) + 第 4 层 (模板) | 输出什么 / 用什么模板 |
| 脚本 4 (s50) | 第 3 层 (Python 脚本) | 怎么把抽取结果落地成文件 |
| 脚本 5-8 (s90/s95/s96/s97) | 第 3 层 (Python 脚本) | 校验规则怎么判定 |
| 整体顺序 | 第 2 层 (SKILL.md) | 哪步先、哪步后、出错怎么修 |
最终结果
对比之前的纯提示词方案,每次分析一本书的时间从每本书 10-20 分钟,缩短到了 5 分钟左右。Token 也不用总是担心不够用了。
| 步骤 | 耗时 | 类型 |
|---|---|---|
| 8 个脚本总耗时 | < 15 秒 | 脚本(确定) |
| Claude 实体抽取 + MOC + Mermaid | 3-5 分钟 | LLM(唯一不确定) |
| 总耗时 | 5-8 分钟 | — |