spec → plan → tasks 结构化工作流
这是 Claude Code 社区广泛推荐的项目规划方法,把复杂项目从"需求"到"策略"到"执行"逐层拆解,让 Claude 按文档驱动而非凭记忆工作。
三个文件的角色
| 文件 | 角色 | 内容 | 由谁编写 |
|---|---|---|---|
spec.md | 需求规格 | 做什么、约束、目标、成功标准 | 你写(人) |
plan.md | 实施计划 | 怎么做、文件结构、数据模型、模块边界、实现顺序 | Claude 写(读 spec 后生成) |
tasks.md | 任务清单 | 具体执行步骤,带状态标记 [ ] / [x] | Claude 写(读 plan 后拆解) |
执行流程
第一步:你写 spec.md
用自然语言描述你要做什么,尽量具体无歧义:
markdown
# 项目:任务追踪 CLI
## 概述
命令行工具,管理每日任务,数据持久化到 JSON。
## 需求
- 添加、列出、完成、删除任务
- 支持优先级(高/中/低)
- 按状态或优先级筛选
## 约束
- Python 3.10+,无外部依赖第二步:让 Claude 生成 plan.md
启动会话,告诉 Claude 读取 spec.md 并生成架构级实施计划。
第三步:审查 plan.md(推荐用新会话)
重新开一个会话,让 Claude 审查计划中的风险和遗漏(见多会话协作策略)。
第四步:让 Claude 生成 tasks.md
审查通过后,让 Claude 把计划拆解为可逐条执行的清单:
markdown
# Tasks
- [ ] 1. 创建项目结构(目录、__init__.py)
- [ ] 2. 实现 Task 数据模型
- [ ] 3. 编写 Task 模型测试
- [ ] 4. 实现 Storage.load/save
- [ ] 5. 编写 Storage 测试
- [ ] 6. 实现 add_task 命令
- [ ] 7. 搭建 CLI 入口(argparse)第五步:逐条执行
每个会话只做几条任务,完成后标记 [x],提交 git:
任务 1-3 已完成。开始执行任务 4:实现 Storage.load/save为什么有效
| 优势 | 说明 |
|---|---|
| 减少幻觉 | Claude 基于书面文档工作,不是凭"记忆"推断 |
| 跨会话延续 | 新会话读文件即可恢复上下文 |
| 可追溯 | 每条任务可回溯到 plan 步骤,plan 回溯到 spec 需求 |
| 容易回退 | 每条任务一个 git commit,出错就 revert 一条 |
变体
| 规模 | 文件组合 |
|---|---|
| 小项目 | spec.md + tasks.md |
| 中等项目 | spec.md → plan.md → tasks.md |
| 大项目 | 再加 arch.md(架构决策)、decisions.md(关键决策及原因) |