Skip to Content

17b - 15 分钟瀑布规划法

本文是《AI Agent 实战手册》第 17 章第 2 节。 上一节:17a-Spec-Driven工作流全景 | 下一节:17c-微任务执行与人工审查

概述

“15 分钟瀑布”是 Spec-Driven Agentic Workflow 中最具颠覆性的理念——用 AI 将传统瀑布模型中需要数天甚至数周的规划工作压缩到 15 分钟内完成。这不是跳过规划,而是用 AI 加速规划。通过结构化的三步流程(创建 Spec → Plan Mode 分析 → 任务分解),开发者能在动手写代码之前就建立清晰的需求边界、技术设计和执行路线图,从根本上避免 Vibe Coding 带来的上下文漂移和质量失控问题。


1. “15 分钟瀑布”的核心理念

1.1 什么是”15 分钟瀑布”

传统瀑布模型的规划阶段通常包含需求分析、系统设计、技术评审和任务拆分,整个过程可能耗时数天到数周。“15 分钟瀑布”保留了瀑布模型中”先规划后执行”的核心智慧,但借助 AI Agent 将规划时间压缩到 15 分钟左右。

传统瀑布规划 15 分钟瀑布规划 ┌──────────────────┐ ┌──────────────────┐ │ 需求分析(2-5 天)│ │ AI 采访理清需求 │ ← 5 分钟 ├──────────────────┤ ├──────────────────┤ │ 系统设计(3-7 天)│ │ AI 生成 Spec 文档 │ ← 5 分钟 ├──────────────────┤ ├──────────────────┤ │ 技术评审(1-2 天)│ │ Plan Mode 分析 │ ← 3 分钟 ├──────────────────┤ ├──────────────────┤ │ 任务拆分(1-2 天)│ │ 自动任务分解 │ ← 2 分钟 └──────────────────┘ └──────────────────┘ 总计:7-16 天 总计:~15 分钟

关键区别在于:传统瀑布的规划是人工密集型的,需要多次会议、文档撰写和评审循环;而 15 分钟瀑布让 AI 承担了信息整理、文档生成和初步设计的工作,人类只需审查和决策。

1.2 为什么不能跳过规划

Augment Code 的研究数据显示,采用结构化四阶段方法论(Specify → Plan → Tasks → Implement)的团队,编程时间减少了 56%,上市时间缩短了 30-40%。这个数据说明:规划不是浪费时间,而是节省时间。

跳过规划直接编码的常见后果:

问题表现根因
上下文漂移AI 在长对话中忘记早期决策,代码前后矛盾没有持久化的设计文档作为锚点
功能蔓延越做越多,偏离初始目标没有明确的需求边界
重复返工做完发现方向错了,推倒重来没有提前验证技术方案
质量失控代码能跑但不可维护没有编码规范和架构约束
集成困难各模块接口不匹配没有统一的数据模型和 API 设计

1.3 “15 分钟瀑布”的三步流程

Step 1: 创建 Spec(~5-8 分钟) ├── AI 采访:理清需求边界 ├── 生成 requirements.md:用户故事 + 验收标准 ├── 生成 design.md:技术设计 + 架构决策 └── 人工审查:确认方向正确 Step 2: Plan Mode 分析(~3-5 分钟) ├── 只读分析现有代码库 ├── 识别需要修改的模块 ├── 评估技术风险 └── 人工确认实现计划 Step 3: 任务分解(~2-3 分钟) ├── 生成 tasks.md:按依赖顺序排列 ├── 每个任务预估 1-2 小时工作量 ├── 标注任务间的依赖关系 └── 人工确认任务列表

工具推荐

工具Spec 创建能力Plan Mode任务分解价格(2025)
Kiro⭐⭐⭐⭐⭐ 原生三阶段工作流内置于 design.md 生成自动生成 tasks.md免费版 50 次/月;Pro $19/月
Claude Code⭐⭐⭐⭐ CLAUDE.md + 手动 Specclaude --plan 原生支持手动或 prompt 驱动$20/月(Claude Max)
Cursor⭐⭐⭐ 手动 SPEC.mdComposer 中可模拟手动或 prompt 驱动$20/月(Pro)
GitHub Spec Kit⭐⭐⭐⭐ 开源框架集成 Claude Code自动生成免费(开源)
Augment Code⭐⭐⭐⭐ 四阶段方法论原生支持自动生成联系销售
Traycer AI⭐⭐⭐⭐ Plan-First 原生原生支持自动分解 + 验证免费(Beta)

2. Step 1:创建 Spec——从模糊想法到结构化文档

Spec 创建是 15 分钟瀑布的核心环节。目标是将开发者脑中模糊的想法转化为结构化的、可执行的规格说明文档。不同工具有不同的实现路径,但核心流程一致:需求澄清 → 文档生成 → 人工审查。

2.1 在 Kiro 中创建 Spec(推荐方式)

Kiro 是目前唯一原生内置完整 Spec 工作流的 IDE,提供了从需求到设计到任务的三阶段自动化流程。

操作步骤

步骤 1:启动 Spec 创建

1. 打开 Kiro IDE 2. 在 Kiro 面板中点击 Specs 下的 "+" 按钮 (或通过命令面板 Ctrl+Shift+P → "Kiro: Create New Spec") 3. 在对话框中描述你要构建的功能

步骤 2:描述功能需求

用自然语言描述你的功能。Kiro 会像一位产品经理一样,通过提问帮你理清需求边界:

示例输入: "我要实现一个文件同步引擎,支持本地文件夹与百度网盘之间的 增量同步。需要支持文件变更检测、冲突处理和断点续传。 技术栈是 Tauri(Rust 后端 + React 前端)。"

步骤 3:审查 requirements.md

Kiro 自动生成 requirements.md,包含用户故事和验收标准。使用 EARS(Easy Approach to Requirements Syntax)格式确保需求的精确性:

# 生成的 requirements.md 示例片段 ### Requirement 1: 文件变更检测 **User Story:** As a 用户, I want 系统自动检测本地文件变更, so that 变更能及时同步到云端。 #### Acceptance Criteria 1. WHEN a file is created in a monitored folder, THE system SHALL detect the change within 2 seconds 2. WHEN a file is modified, THE system SHALL compute the file hash and compare with the last known hash 3. WHEN a file is deleted, THE system SHALL mark it as pending deletion in the sync queue

审查要点:

  • 每个用户故事是否覆盖了一个独立的功能点?
  • 验收标准是否具体、可测试?
  • 是否遗漏了重要的非功能需求(性能、安全、可用性)?

步骤 4:审查 design.md

确认 requirements 后,Kiro 生成 design.md,包含技术设计和架构决策:

# 生成的 design.md 示例片段 ## Architecture ### 系统架构图 ┌─────────────┐ ┌──────────────┐ ┌─────────────┐ │ React UI │ ←→ │ Tauri Bridge │ ←→ │ Rust Core │ │ (前端) │ │ (IPC 通信) │ │ (后端引擎) │ └─────────────┘ └──────────────┘ └─────────────┘ ┌──────────────────────────┤ ↓ ↓ ↓ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ 文件监控 │ │ 差异计算 │ │ 同步调度 │ │ Module │ │ Module │ │ Module │ └──────────┘ └──────────┘ └──────────┘ ### Components - **FileWatcher**: 基于 notify crate 的文件系统监控 - **DiffEngine**: 基于文件哈希的增量差异计算 - **SyncScheduler**: 带优先级队列的同步任务调度器 - **BaiduPanClient**: 百度网盘 API 封装

审查要点:

  • 架构方案是否合理?是否有更简单的替代方案?
  • 数据模型是否完整?
  • API 设计是否清晰?
  • 关键算法是否正确?

步骤 5:确认生成 tasks.md

最后,Kiro 基于 requirements 和 design 生成任务列表:

# 生成的 tasks.md 示例片段 ## Tasks - [ ] 1. 项目初始化 - [ ] 1.1 创建 Tauri + React 项目骨架 - [ ] 1.2 配置 Rust 依赖(notify, tokio, serde) - [ ] 1.3 配置 TypeScript 依赖和构建工具 - [ ] 2. 配置管理模块 - [ ] 2.1 定义配置数据结构 - [ ] 2.2 实现 TOML 配置读写 - [ ] 2.3 实现配置变更监听 - [ ] 3. 文件监控模块 - [ ] 3.1 实现文件系统事件监听 - [ ] 3.2 实现文件哈希计算 - [ ] 3.3 实现变更事件去重和节流

提示词模板:优化 Kiro Spec 输出

如果 Kiro 生成的 Spec 不够详细,可以在描述中加入更多上下文:

提示词模板: 我要实现 [功能名称]。 背景信息: - 项目类型:[Web 应用/桌面应用/CLI 工具/移动应用] - 技术栈:[具体技术栈] - 现有代码库:[有/无,如有请描述规模和架构] - 目标用户:[用户画像] - 性能要求:[具体指标,如响应时间 < 200ms] - 安全要求:[认证方式、数据加密等] 核心功能: 1. [功能点 1] 2. [功能点 2] 3. [功能点 3] 明确不做的事情: - [排除项 1] - [排除项 2] 请生成详细的 Spec,包含用户故事、验收标准、技术设计和任务拆分。

2.2 在 Claude Code 中创建 Spec(终端工作流)

Claude Code 没有内置的 Spec 面板,但通过 CLAUDE.md 和 Plan Mode 可以实现等效的工作流。

操作步骤

步骤 1:创建 SPEC.md 文件

# 在项目根目录创建 Spec 文件 touch SPEC.md

步骤 2:用 AI 采访理清需求

# 启动 Claude Code,进入 Plan Mode $ claude # 在对话中使用以下提示词

提示词模板:Claude Code Spec 生成

提示词模板(需求采访): 我要实现 [功能描述]。请扮演一位资深产品经理和架构师, 通过提问帮我理清以下方面: 1. 核心用户场景(谁在什么情况下使用) 2. 功能边界(做什么,不做什么) 3. 非功能需求(性能、安全、可用性) 4. 依赖和约束(现有系统、技术栈限制) 5. 成功标准(怎样算"做完了") 每次只问 2-3 个问题,等我回答后再继续。 当你认为需求已经足够清晰时,告诉我你准备好生成 Spec 了。
提示词模板(Spec 文档生成): 基于我们刚才的讨论,生成一份完整的技术规格文档(SPEC.md), 包含以下结构: ## 1. 概述 [2-3 句话说明项目目标] ## 2. 功能需求 对每个功能点: - 用户故事(As a... I want... So that...) - 验收标准(WHEN... THEN... 格式) ## 3. 非功能需求 - 性能指标 - 安全要求 - 可用性要求 ## 4. 技术设计 - 架构方案(含 ASCII 或 Mermaid 图) - 数据模型(含字段类型和关系) - API 设计(端点、请求/响应格式) - 关键算法(伪代码或流程图) ## 5. 正确性属性(Properties) - 列出系统必须满足的不变量 - 例如:"同步后,本地文件和远程文件的哈希值必须一致" ## 6. 任务拆分 - 按依赖顺序排列 - 每个任务预估 1-2 小时工作量 - 标注任务间的依赖关系 请确保每个验收标准都是可测试的。

步骤 3:审查并保存

# Claude Code 会将内容写入 SPEC.md # 审查后,用 Plan Mode 验证 $ claude --plan "审查 SPEC.md 的完整性和一致性, 检查是否有遗漏的需求或矛盾的设计决策"

2.3 在 Cursor 中创建 Spec(编辑器工作流)

Cursor 通过 Composer 和 .cursorrules 文件支持 Spec 创建,虽然不如 Kiro 原生,但灵活性更高。

操作步骤

步骤 1:配置 .cursorrules 启用 Spec 工作流

<!-- .cursorrules --> # 项目规范 ## Spec-Driven 工作流规则 - 所有新功能必须先创建 SPEC.md - SPEC.md 必须包含用户故事、验收标准、技术设计 - 代码实现必须引用 SPEC.md 中的具体需求编号 - 每个 PR 必须说明对应的 Spec 任务编号 ## 编码规范 [项目特定的编码规范]

步骤 2:在 Composer 中生成 Spec

在 Cursor Composer(Ctrl+I)中输入: @SPEC.md 请基于以下需求生成完整的技术规格文档: 需求:[详细描述] 参考现有代码: @src/main.ts @src/types/index.ts @package.json 请遵循 .cursorrules 中定义的 Spec 格式。

步骤 3:迭代优化

Cursor 的优势在于可以用 @ 引用现有代码, 让 AI 基于实际代码库生成更准确的 Spec: @src/ 分析现有代码结构,然后更新 @SPEC.md 中的 技术设计部分,确保新功能与现有架构兼容。

2.4 使用 GitHub Spec Kit(开源方案)

GitHub Spec Kit 是一个开源的 Spec-Driven 开发框架,提供了标准化的 Spec 模板和工作流。

操作步骤

步骤 1:安装 Spec Kit

# 克隆 Spec Kit 模板 npx spec-kit init # 或手动创建目录结构 mkdir -p .spec touch .spec/spec.md .spec/plan.md .spec/tasks.md

步骤 2:定义 Spec

Spec Kit 遵循四步流程:Specify → Plan → Tasks → Implement

<!-- .spec/spec.md --> # Feature: 文件同步引擎 ## Goal 实现本地文件夹与云存储之间的增量同步 ## Requirements 1. 文件变更检测(创建、修改、删除) 2. 增量同步(只传输变更部分) 3. 冲突检测与解决 4. 断点续传 ## Constraints - 技术栈:Rust + React(Tauri) - 性能:单文件同步延迟 < 5 秒 - 安全:传输加密,本地配置加密存储

步骤 3:生成 Plan 和 Tasks

# 使用 Claude Code 基于 Spec 生成计划 $ claude "基于 .spec/spec.md 生成详细的技术计划, 写入 .spec/plan.md" # 然后生成任务列表 $ claude "基于 .spec/plan.md 生成可执行的任务列表, 写入 .spec/tasks.md,每个任务 1-2 小时工作量"

提示词模板:Spec 质量检查

无论使用哪个工具,生成 Spec 后都应该进行质量检查:

提示词模板(Spec 质量审查): 请审查以下 Spec 文档,检查: 1. 完整性:是否覆盖了所有核心功能?是否遗漏了边缘场景? 2. 一致性:需求之间是否有矛盾?设计是否与需求对齐? 3. 可测试性:每个验收标准是否可以编写自动化测试? 4. 可行性:技术方案是否可行?是否有更简单的替代方案? 5. 明确性:是否有模糊的描述需要澄清? Spec 文档: [粘贴 Spec 内容] 请按优先级列出发现的问题,并给出改进建议。

3. Step 2:Plan Mode 分析——在动手前理解代码库

Plan Mode 是 15 分钟瀑布的第二步,目标是在执行任何代码修改之前,先用只读模式分析现有代码库,理解架构、识别风险、制定实现策略。这一步对于已有代码库的项目尤为关键。

3.1 Plan Mode 的核心原则

Plan Mode 的本质是”只读分析,不做修改”。AI Agent 可以阅读文件、搜索代码、分析依赖,但不能创建、修改或删除任何文件。这确保了分析阶段的安全性。

Plan Mode 的输入和输出: 输入: ├── Spec 文档(requirements + design) ├── 现有代码库 ├── 配置文件(package.json, Cargo.toml 等) └── 开发者的补充说明 输出: ├── 代码库架构理解 ├── 需要修改的模块清单 ├── 潜在风险和技术债 ├── 建议的实现顺序 └── 预估的工作量

工具推荐

工具Plan Mode 实现特点价格
Claude Codeclaude --plan 或 Shift+Tab原生只读模式,禁止文件修改$20/月起
Kirodesign.md 生成时自动分析集成在 Spec 工作流中免费版可用
CursorComposer 中手动指定”只分析不修改”需要 prompt 约束$20/月
Verdent AI原生 Plan-First 工作流分离规划与实现免费(Beta)

操作步骤

在 Claude Code 中使用 Plan Mode

步骤 1:启动 Plan Mode

# 方式 1:命令行参数 $ claude --plan "分析当前代码库,基于 SPEC.md 提出实现计划" # 方式 2:在对话中切换 # 按 Shift+Tab 切换到 Plan Mode # 或输入 /plan 命令

步骤 2:引导分析方向

提示词模板:Plan Mode 代码库分析

提示词模板(代码库全景分析): 请在 Plan Mode 下分析当前代码库,回答以下问题: 1. 项目结构: - 主要目录和模块划分 - 入口文件和核心模块 - 依赖关系图 2. 架构模式: - 使用了哪些设计模式? - 数据流是怎样的? - 错误处理策略是什么? 3. 基于 SPEC.md 的实现评估: - 哪些现有模块可以复用? - 哪些模块需要修改? - 哪些功能需要从零开始? 4. 风险识别: - 现有代码中有哪些技术债? - 新功能可能与哪些现有功能冲突? - 有哪些性能瓶颈需要注意? 请不要修改任何文件,只进行分析。
提示词模板(针对特定模块的深度分析): 请分析 [模块路径] 的实现细节: 1. 这个模块的职责是什么? 2. 它依赖哪些其他模块? 3. 它暴露了哪些公共 API? 4. 基于 SPEC.md 中的 [需求编号], 这个模块需要做哪些修改? 5. 修改的风险等级是?(高/中/低) 6. 建议的修改策略是? 请只分析,不要修改代码。

步骤 3:审查分析结果

Plan Mode 的输出通常包含:

Plan Mode 输出示例: ## 代码库分析结果 ### 项目结构 src/ ├── main.ts # 应用入口 ├── config/ # 配置管理(可复用) ├── sync/ # 同步引擎(需要大幅修改) │ ├── watcher.ts # 文件监控(可复用,需扩展) │ ├── diff.ts # 差异计算(需要重写) │ └── scheduler.ts # 调度器(需要新建) └── ui/ # React 组件(需要新建同步状态面板) ### 实现计划 #### 阶段 1:基础设施(Task 1-3) - 修改 config/ 添加同步配置项 - 扩展 watcher.ts 支持递归目录监控 - 风险:低 #### 阶段 2:核心引擎(Task 4-7) - 重写 diff.ts 使用增量哈希算法 - 新建 scheduler.ts 实现优先级队列 - 新建 cloud-client.ts 封装云存储 API - 风险:中(API 集成可能有兼容性问题) #### 阶段 3:UI 层(Task 8-12) - 新建同步状态面板组件 - 新建冲突解决对话框 - 风险:低

在 Kiro 中使用 Plan Mode

Kiro 的 Plan Mode 集成在 Spec 工作流中。当 Kiro 生成 design.md 时,它会自动分析现有代码库:

在 Kiro 中,Plan Mode 是隐式的: 1. 创建 Spec 时,Kiro 自动扫描项目结构 2. design.md 中的架构设计基于实际代码库 3. tasks.md 中的任务考虑了现有模块的修改 你也可以显式引导分析: - 使用 #File 引用特定文件让 AI 重点分析 - 使用 #Folder 引用整个目录 - 在 Spec 描述中提及现有模块

Plan Mode 的多轮迭代

一次 Plan Mode 分析可能不够。最佳实践是进行 2-3 轮迭代,逐步深入:

第 1 轮:全景扫描 "分析整个项目结构,给出高层架构理解" 第 2 轮:重点深入 "基于第 1 轮的分析,深入分析 [关键模块], 评估实现 [具体需求] 的可行性" 第 3 轮:风险评估 "基于前两轮分析,列出实现计划中的 Top 5 风险和缓解策略"

这种”Plan-Critique-Execute”模式能显著提高实现计划的质量。


4. Step 3:任务分解——从设计到可执行的微任务

任务分解是 15 分钟瀑布的最后一步,也是连接规划和执行的桥梁。好的任务分解能让每个任务独立可执行、独立可测试、独立可审查。

4.1 任务分解的核心原则

好的任务分解遵循 SMART 原则: S - Specific(具体):明确要做什么,不含糊 M - Measurable(可衡量):有明确的完成标准 A - Achievable(可实现):1-2 小时内可完成 R - Relevant(相关):与 Spec 中的需求直接对应 T - Time-bound(有时限):预估工作量 示例: ❌ "实现同步功能"(太大、太模糊) ✅ "Task 3.1:实现基于 SHA-256 的文件哈希计算函数, 输入文件路径,输出 64 字符哈希字符串, 包含单元测试,预估 1 小时"

4.2 任务粒度指南

粒度工作量适用场景示例
太大> 4 小时需要进一步拆分”实现整个同步引擎”
合适1-2 小时理想的任务大小”实现文件哈希计算函数”
太小< 30 分钟可以合并到相邻任务”添加一个类型定义”

操作步骤

步骤 1:自动生成任务列表

在 Kiro 中,tasks.md 在 Spec 工作流的第三阶段自动生成。在其他工具中,使用以下提示词:

提示词模板:任务分解

提示词模板(任务分解): 基于以下 Spec 文档,生成一份详细的任务列表。 要求: 1. 每个任务 1-2 小时工作量 2. 按依赖顺序排列(被依赖的任务排在前面) 3. 每个任务包含: - 任务编号和标题 - 具体要做什么(2-3 句话) - 对应的 Spec 需求编号 - 依赖的前置任务 - 完成标准(怎样算"做完了") 4. 使用 Markdown checkbox 格式 Spec 文档: [粘贴 Spec 内容] 请生成 tasks.md。
提示词模板(任务依赖分析): 请分析以下任务列表的依赖关系,生成依赖图: [粘贴任务列表] 要求: 1. 用 ASCII 图或 Mermaid 图展示依赖关系 2. 标注关键路径(最长依赖链) 3. 标注可以并行执行的任务组 4. 如果发现循环依赖,提出解决方案

步骤 2:审查任务列表

生成的任务列表需要人工审查,重点检查:

任务列表审查清单: □ 任务粒度是否合适?(每个 1-2 小时) □ 依赖顺序是否正确?(被依赖的任务在前) □ 是否覆盖了 Spec 中的所有需求? □ 每个任务的完成标准是否明确? □ 是否有遗漏的任务?(如测试、文档、配置) □ 是否有可以并行的任务?(标注出来提高效率) □ 总工作量预估是否合理?

步骤 3:标注任务元数据

为每个任务添加有用的元数据,帮助执行阶段更高效:

# 增强版 tasks.md 示例 ## Tasks - [ ] 1. 项目初始化 - [ ] 1.1 创建 Tauri + React 项目骨架 - 依赖:无 - 预估:30 分钟 - 风险:低 - _Requirements: 1.1_ - [ ] 1.2 配置 Rust 依赖 - 依赖:1.1 - 预估:30 分钟 - 风险:低(版本兼容性需验证) - _Requirements: 1.1_ - [ ] 2. 文件监控模块 - [ ] 2.1 实现文件系统事件监听 - 依赖:1.1, 1.2 - 预估:1.5 小时 - 风险:中(跨平台兼容性) - _Requirements: 2.1, 2.2_ - [ ] 2.2 实现文件哈希计算 - 依赖:1.2 - 预估:1 小时 - 风险:低 - _Requirements: 2.3_

4.3 任务分解的常见模式

模式 1:按层分解(适合全栈项目)

Layer 1: 数据层(类型定义、数据模型、数据库迁移) Layer 2: 业务逻辑层(核心算法、服务函数) Layer 3: API 层(端点定义、中间件、验证) Layer 4: UI 层(组件、页面、样式) Layer 5: 集成层(测试、配置、部署)

模式 2:按功能分解(适合功能独立的项目)

Feature A: 用户认证 ├── Task A.1: 注册接口 ├── Task A.2: 登录接口 └── Task A.3: 认证中间件 Feature B: 文件管理 ├── Task B.1: 文件上传 ├── Task B.2: 文件列表 └── Task B.3: 文件删除

模式 3:按风险分解(适合不确定性高的项目)

Phase 1: 高风险任务(先做,早发现问题) ├── 第三方 API 集成验证 ├── 核心算法原型 └── 性能瓶颈验证 Phase 2: 中风险任务 ├── 业务逻辑实现 └── 数据模型完善 Phase 3: 低风险任务(最后做,确定性高) ├── UI 组件实现 ├── 文档编写 └── 部署配置

实战案例:用 15 分钟瀑布规划 RustSync 文件同步工具

案例背景

RustSync 是一个基于 Tauri(Rust + React)的桌面文件同步工具,需要支持本地文件夹与百度网盘之间的增量同步。以下是使用 15 分钟瀑布规划的完整过程。

分钟 0-5:创建 Spec

在 Kiro 中创建新 Spec,输入描述: "我要开发一个桌面文件同步工具 RustSync, 使用 Tauri(Rust 后端 + React 前端)。 核心功能: 1. 监控本地文件夹的文件变更 2. 计算文件差异,只同步变更部分 3. 通过百度网盘 API 上传/下载文件 4. 检测和处理同步冲突 5. 支持 .gitignore 风格的忽略规则 6. 提供同步进度和日志的 UI 不做的事情: - 不支持实时协作编辑 - 不支持多云存储(只支持百度网盘) - 不做移动端"

Kiro 生成的 requirements.md 包含 12 个用户故事,每个都有 EARS 格式的验收标准。审查后确认无遗漏。

分钟 5-10:Plan Mode 分析

Kiro 在生成 design.md 时自动分析了项目结构。 design.md 中的关键决策: - 文件监控:使用 notify crate(跨平台) - 差异计算:基于 SHA-256 文件哈希 - 同步调度:带优先级的异步任务队列 - 前端状态:React hooks + CSS Modules - IPC 通信:Tauri 的 invoke 机制 审查后调整了一个设计决策: 将冲突解决策略从"自动选择最新版本" 改为"提示用户选择",因为自动策略可能导致数据丢失。

分钟 10-15:任务分解

Kiro 生成的 tasks.md 包含 25 个任务,分为 5 个阶段: 阶段 1:基础设施(Task 1-3,约 3 小时) ├── 项目初始化 ├── 配置管理模块 └── 类型定义 阶段 2:核心引擎(Task 4-7,约 8 小时) ├── 文件监控模块 ├── 差异计算引擎 ├── 百度网盘 API 集成 └── 同步调度器 阶段 3:高级功能(Task 8-11,约 6 小时) ├── 冲突检测与解决 ├── 忽略规则引擎 ├── 断点续传 └── 日志系统 阶段 4:UI 层(Task 12-19,约 8 小时) ├── 布局组件 ├── 文件夹列表 ├── 同步状态栏 ├── 设置面板 ├── 同步日志 ├── 同步报告 ├── 添加文件夹对话框 └── 百度网盘授权组件 阶段 5:测试与打磨(Task 20-25,约 6 小时) ├── 单元测试 ├── Property-Based Testing ├── 集成测试 ├── 错误处理完善 ├── 性能优化 └── 打包配置 审查后合并了两个过小的任务,最终确认 25 个任务。 总预估工作量:约 31 小时(4 个工作日)。

案例分析

这个 15 分钟的规划投入带来了以下回报:

  1. 避免了方向性错误:在规划阶段就发现了冲突解决策略的问题,避免了实现后返工
  2. 明确了技术选型:提前确定了 notify、SHA-256、tokio 等关键依赖,避免了中途更换
  3. 建立了执行节奏:25 个任务按依赖排序,每个 1-2 小时,开发者可以按节奏推进
  4. 降低了审查负担:每个任务聚焦单一功能,代码审查更高效
  5. 提供了进度可见性:tasks.md 的 checkbox 让进度一目了然

避坑指南

❌ 常见错误

  1. Spec 写得太粗糙

    • 问题:只写了一句话的需求描述,AI 生成的代码偏离预期
    • 正确做法:花 5 分钟把需求描述清楚,包含功能边界、非功能需求和排除项。Spec 的质量直接决定了后续所有工作的质量
  2. 跳过 Plan Mode 直接执行

    • 问题:AI 不了解现有代码库,生成的代码与现有架构冲突,导致大量集成问题
    • 正确做法:对于已有代码库的项目,必须先用 Plan Mode 分析。即使是新项目,Plan Mode 也能帮助验证技术方案的可行性
  3. 任务拆分粒度不当

    • 问题:任务太大(> 4 小时)导致 AI 上下文漂移;任务太小(< 30 分钟)导致管理开销过大
    • 正确做法:每个任务 1-2 小时工作量,包含实现和测试。如果一个任务描述超过 5 句话,考虑拆分
  4. Spec 生成后不审查

    • 问题:AI 生成的 Spec 可能包含不合理的假设、遗漏的需求或过度设计
    • 正确做法:逐条审查验收标准,确认每条都是你真正需要的。删除不需要的比后来加上遗漏的成本低得多
  5. 不更新 Spec

    • 问题:开发过程中需求变更,但 Spec 没有同步更新,导致 Spec 与代码脱节
    • 正确做法:需求变更时先改 Spec,再改代码。Spec 是 source of truth,不是一次性文档
  6. 过度依赖单一工具

    • 问题:只用一个工具完成所有规划工作,忽略了不同工具的互补优势
    • 正确做法:可以组合使用——例如用 Kiro 生成 Spec,用 Claude Code 的 Plan Mode 做深度代码分析
  7. 忽视任务间的依赖关系

    • 问题:并行执行有依赖关系的任务,导致接口不匹配或重复工作
    • 正确做法:在 tasks.md 中明确标注依赖关系,严格按顺序执行有依赖的任务
  8. 规划时间过长

    • 问题:花了 2 小时写 Spec,失去了 AI 辅助规划的速度优势
    • 正确做法:15 分钟瀑布的关键是”快速但不草率”。如果 15 分钟内无法完成,说明功能范围太大,需要先缩小范围

✅ 最佳实践

  1. 先描述”不做什么”:明确排除项比列举功能更能帮助 AI 理解边界
  2. 用具体数字替代模糊描述:不说”快速响应”,说”响应时间 < 200ms”
  3. Plan Mode 做 2-3 轮迭代:第一轮全景扫描,第二轮重点深入,第三轮风险评估
  4. 任务列表留有缓冲:预估工作量乘以 1.5 作为实际预期
  5. 每个任务都关联 Spec 需求编号:确保可追溯性
  6. 保存 Plan Mode 的分析结果:作为后续开发的参考文档
  7. 团队项目中共享 Spec 模板:降低每次创建 Spec 的成本
  8. 定期回顾和更新 Spec:每完成一个阶段的任务后,检查 Spec 是否需要更新

相关资源与延伸阅读

  1. Kiro IDE — AWS 推出的 Spec-Driven 原生 IDE,内置 requirements→design→tasks 三阶段工作流

  2. Claude Code Plan Mode 文档 — Anthropic 官方的 Plan Mode 使用指南和常见工作流

  3. GitHub Spec Kit — GitHub 开源的 Spec-Driven 开发框架,提供标准化的 Specify→Plan→Tasks→Implement 流程

  4. Augment Code Spec-Driven 指南 — 企业级四阶段方法论的详细说明,包含 56% 编程时间减少的数据

  5. Traycer AI — Plan-First AI 编码工具,将高层意图分解为结构化计划后交给 AI Agent 执行

  6. Addy Osmani 的 Spec 编写指南 — Google Chrome 团队工程师分享的如何为 AI Agent 编写好的 Spec

  7. Spec-Driven Development 社区 — specdriven.ai 提供的方法论资源和社区讨论

  8. Plan-Critique-Execute 模式 — 多轮 Plan Mode 迭代的实践指南

  9. Hashrocket Spec-to-Shipping 指南 — 从 Spec 到交付的完整开发者工作流实践


参考来源

Content was rephrased for compliance with licensing restrictions.


📖 返回 总览与导航 | 上一节:17a-Spec-Driven工作流全景 | 下一节:17c-微任务执行与人工审查

Last updated on