RSS

第 4 章 / 共 10 章

spec、plan、tasks 各管什么

约 6 分钟 更新于

4.1 混在一份文件里会发生什么

第2章那份规格已经不错了,但如果你把它直接丢给 agent 说「照着做」,还是会出问题——特别是当需求稍大一点的时候。

因为它只回答了「做什么」。「怎么做」(用哪个库解析 XML?还是手写字符串拼接?在哪一层做转义?)和「分几步做」(先写序列化还是先接按钮?)仍然是空白。agent 会在同一次回复里同时做这三件事:一边确定需求、一边定技术方案、一边写代码。三件事混在一个上下文里,你既没法在方案错的时候及时叫停,也没法只重做其中一段。

主流工具在这一点上高度一致,只是叫法不同:

  • GitHub Spec Kit 的命令链是 /speckit.constitution → /speckit.specify → /speckit.plan → /speckit.tasks → /speckit.implement,中间还有 /speckit.clarify(澄清)和 /speckit.analyze(一致性检查)。
  • Kiro 由提示先生成用户故事和 EARS 验收标准,再分析代码库生成设计文档(数据流图、接口、数据库 schema、API 端点),最后生成带依赖顺序、且每条都回链到需求的任务列表。
  • OpenSpec 走的是更轻的三段:/opsx:propose(提出变更)→ /opsx:apply(实施)→ /opsx:archive(归档)。

抛开工具名,它们是同一条链路。

4.2 三份文件的分工

第4章:三份产物的分工
图 4.1:注意每一层的「可否被推翻」——越靠前,改动成本越低,所以争议要在前面解决。
产物回答谁来评审改动成本
spec(规格)做什么、什么算完你(也可能包括产品、使用者)最低,改几行字
plan(计划)用什么方案、动哪些文件、有什么风险你(技术判断)中等,改方案不改代码
tasks(任务)分几步、每步怎么验收你快速扫一眼中等
实现代码测试 + 代码审查最高

这张表的实际用途是把争论提前。方案上的分歧,在 plan 阶段是一段文字的修改;等到实现完再发现,就是一个 PR 的重写。

一份 plan 大致长这样:

# 计划:订阅列表导出为 OPML

## 技术方案
- 不引入 XML 库。OPML 结构简单且固定,用模板字符串生成,转义单独抽一个函数处理。
- 下载通过 Blob + URL.createObjectURL 触发,避免依赖后端。
- 分组映射:folder 为空的订阅挂在根 outline 下,非空的按 folder 名聚合成父 outline。

## 涉及文件
- 新增 src/lib/opml.ts:serializeToOpml(subs: Subscription[]): string
- 新增 src/lib/opml.test.ts
- 修改 src/pages/Settings.tsx:新增按钮与点击处理

## 风险
- folder 名可能重复或含特殊字符 → 转义函数需同时用于 title 和 folder
- 大列表下主线程阻塞 → 已在非目标中排除,千条以内可接受

## 不改动
- src/store/subscriptions.ts

注意 plan 里出现了函数签名和文件路径,但没有出现循环和条件语句——它停在「方案」这一层,不下探到实现。

4.3 任务卡的粒度

任务拆分最常见的错误是拆得太粗(「实现导出功能」等于没拆)或太细(「创建文件」「写函数签名」这种)。

好粒度只有一个判断标准:一张任务卡完成后,你能立刻验收它,而且它不依赖尚未完成的其他卡。

# 任务

## T1 OPML 序列化函数
- 实现 src/lib/opml.ts 的 serializeToOpml
- 覆盖验收标准 1、2、4
- 验收:npm test src/lib/opml.test.ts 全绿,测试包含空列表、含分组、含特殊字符三种输入

## T2 设置页导出入口
- 在 Settings.tsx 新增「导出订阅」按钮与点击处理
- 覆盖验收标准 1、3
- 验收:手动点击可下载文件;订阅为空时显示提示且不下载

## T3 端到端验证
- 用真实订阅数据导出一次,导入到另一个阅读器
- 覆盖验收标准 1、2、4
- 验收:目标阅读器成功识别全部订阅与分组

4.4 追溯性不是免费的

顺带提一个真实的取舍。已有研究比较了几种追溯强度不同的 SDD 做法:要求逐行引用需求的、只做产物级追溯的(Spec Kit 属于这一档)、以及事后补追溯图的(OpenSpec 属于这一档)。结论是取舍关系:不要求逐行引用时,模型输出的确定性更高;但只有要求引用的条件下,才能自动检测出「代码里出现了规格中不存在的东西」这类幻觉。

对个人项目和小团队,产物级追溯(任务卡回链验收标准)就是性价比最高的一档。逐行引用留给真正需要合规审计的场景。

4.5 回顾:让争论发生在最便宜的那一格