Skip to Content

17a - Spec-Driven 工作流全景

本文是《AI Agent 实战手册》第 17 章第 1 节。 上一节:16c-系统设计文档AI生成 | 下一节:17b-15分钟瀑布规划法

概述

Spec-Driven Agentic Workflow 是 2025-2026 年生产级 AI 辅助开发的核心方法论。它不是对 Vibe Coding 的否定,而是其自然进化——保留 AI 生成代码的速度优势,加入结构化规格说明和人工审查机制,确保输出达到生产级质量。本节全面解析这一工作流的核心公式、三阶段流程、工具生态、模型选择,以及从 Vibe Coding 到 Spec-Driven 的演进路径,帮助开发者在实际项目中落地实施。


1. 核心公式与理论基础

1.1 Spec-Driven 的核心公式

Spec-Driven Agentic Workflow 的本质可以用一个公式概括:

Spec(source of truth)+ AI Agent(草稿生成)+ Human Review(最终审查)= 生产级代码

这个公式的三个要素缺一不可:

要素角色缺失后果
Spec需求和设计的唯一真相来源AI 生成的代码缺乏一致性,功能重复或遗漏
AI Agent基于 Spec 自主生成代码草稿开发速度回到纯手工编码时代
Human Review审查质量、安全、架构合理性技术债累积,安全漏洞,不可维护的代码

1.2 为什么 Spec 是 Source of Truth

传统开发中,代码本身就是”真相”。但在 AI 辅助开发时代,代码是由 AI 生成的草稿,随时可以重新生成。真正不可替代的是规格说明——它定义了”要做什么”和”怎么做”。

Spec 的核心组成:

Spec 文档体系 ├── requirements.md ← 用户故事 + 验收标准(做什么) ├── design.md ← 技术设计 + 架构决策(怎么做) └── tasks.md ← 任务拆分 + 执行顺序(分几步做)

Spec 的价值在于:

  1. 可重复性:同一份 Spec 交给不同 AI Agent,应产出功能等价的代码
  2. 可审查性:审查者可以对照 Spec 验证代码是否符合需求
  3. 可追溯性:每行代码都能追溯到具体的需求和设计决策
  4. 可迭代性:需求变更时,修改 Spec 后让 AI 重新生成,而非手动改代码

1.3 Agentic 与传统 AI 辅助的区别

“Agentic”意味着 AI 不再是被动的代码补全工具,而是能够自主规划、执行和验证的 Agent:

维度传统 AI 辅助(Copilot 模式)Agentic 开发(Agent 模式)
交互方式逐行补全,人类主导自主执行任务,人类审查
上下文范围当前文件 + 少量相邻文件整个代码库 + 外部工具
任务粒度单行/单函数完整功能模块
工具使用文件系统、终端、MCP、浏览器
自我修正运行测试 → 发现错误 → 自动修复
规划能力分析需求 → 制定计划 → 分步执行

2. 三阶段工作流详解

工作流全景图

┌─────────────────────────────────────────────────────────────────┐ │ Spec-Driven Agentic Workflow │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ Phase 1: 规划("15 分钟瀑布") │ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ │ │ AI 采访 │ → │ 生成 Spec │ → │ Plan Mode │ │ │ │ 理清需求 │ │ (source of │ │ (只读分析 │ │ │ │ 明确边界 │ │ truth) │ │ 不改文件) │ │ │ └────────────┘ └────────────┘ └────────────┘ │ │ ↕ 人工确认 ↕ 人工审查 ↕ 人工批准 │ │ ↓ │ │ Phase 2: 微任务执行 │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ Task 1 │ → │ Task 2 │ → │ Task 3 │ → ... │ │ │ 实现+测试 │ │ 实现+测试 │ │ 实现+测试 │ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ ↕ ↕ ↕ │ │ 人工审查 人工审查 人工审查 │ │ git commit git commit git commit │ │ ↓ │ │ Phase 3: 上下文工程 │ │ ┌──────────────────────────────────────────────┐ │ │ │ 贯穿全程的上下文管理 │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ │ │ 精确选择 │ │ MCP 连接 │ │ Steering │ │ │ │ │ │ 相关文件 │ │ 外部工具 │ │ 规则约束 │ │ │ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ │ │ ┌──────────┐ ┌──────────┐ │ │ │ │ │ 设计文档 │ │ 测试反馈 │ │ │ │ │ │ 引用 │ │ 循环 │ │ │ │ │ └──────────┘ └──────────┘ │ │ │ └──────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────┘

Phase 1:规划(“15 分钟瀑布”)

规划阶段的目标是在 15 分钟内完成传统瀑布模型需要数天的工作——需求澄清、技术设计和任务拆分。这不是跳过规划,而是用 AI 加速规划。

操作步骤

步骤 1:需求澄清(AI 采访)

让 AI 扮演产品经理,通过提问帮你理清需求边界:

提示词模板: 我要实现 [功能描述]。请扮演一位资深产品经理, 通过提问帮我理清以下方面: 1. 核心用户场景(谁在什么情况下使用) 2. 功能边界(做什么,不做什么) 3. 非功能需求(性能、安全、可用性) 4. 依赖和约束(现有系统、技术栈限制) 每次只问 2-3 个问题,等我回答后再继续。

步骤 2:生成 Spec 文档

需求明确后,生成结构化的 Spec 文档:

提示词模板: 基于我们刚才的讨论,生成一份技术规格文档,包含: ## 1. 概述(2-3 句话) ## 2. 功能需求 - 用户故事(As a... I want... So that...) - 每个故事的验收标准(WHEN... THEN...) ## 3. 技术设计 - 架构方案(含 Mermaid 图) - 数据模型 - API 设计 - 关键算法 ## 4. 正确性属性 - 系统必须满足的不变量 ## 5. 任务拆分 - 按依赖顺序排列 - 每个任务预估 1-2 小时工作量

步骤 3:Plan Mode 分析

在执行任何代码修改前,先用只读模式分析现有代码库:

# Claude Code 中使用 Plan Mode $ claude --plan "分析当前代码库架构,基于 SPEC.md 提出实现计划, 标注哪些现有模块需要修改,哪些需要新建" # Kiro 中 # Spec 的 design.md 自动包含对现有代码库的分析 # 通过 #File 和 #Folder 引用相关代码

Phase 2:微任务执行

这是工作流的核心环节。将大任务拆分为可独立完成、可独立审查的微任务,逐个执行。

操作步骤

步骤 1:选择当前任务

从 tasks.md 中选择下一个未完成的任务。 确保其依赖任务已完成。

步骤 2:向 AI Agent 下达精确指令

提示词模板: 请执行 Task [编号]:[任务标题]。 参考文档: - design.md 中的 [相关章节] - 现有代码 [相关文件路径] 要求: 1. 只实现这一个任务,不要做其他任务 2. 遵循 steering 文件中的编码规范 3. 为新增功能编写单元测试 4. 确保所有现有测试仍然通过

步骤 3:人工审查

每个任务完成后,必须进行人工审查:

审查清单: □ 代码是否符合 design.md 中的设计? □ 是否有安全问题(SQL 注入、XSS、密钥泄露)? □ 是否有性能问题(N+1 查询、内存泄漏)? □ 测试是否覆盖了验收标准? □ 是否引入了不必要的依赖? □ 代码是否可读、可维护?

步骤 4:确认并提交

# 审查通过后 git add . git commit -m "feat: Task 3.1 - 实现文件哈希计算函数" # 标记任务完成,进入下一个任务

关键原则:一次一个任务

❌ 错误做法: "请实现整个同步引擎" → AI 生成大量代码,质量不可控,上下文漂移严重 ✅ 正确做法: "请实现 Task 3.1:文件哈希计算函数" → 聚焦、可审查、可测试、可回滚

Phase 3:上下文工程

上下文工程贯穿整个工作流,决定了 AI Agent 的输出质量。详细内容参见 03a-上下文工程方法论,这里聚焦开发阶段的实践要点。

操作步骤

步骤 1:精确选择相关文件

原则:只给 AI 看它需要的文件,不多不少。 ✅ 好的上下文: "参考 src/sync/hash.ts 和 src/types/index.ts, 实现 src/sync/diff.ts 中的差异计算函数" ❌ 差的上下文: "看看整个 src 目录,帮我实现差异计算" → 上下文噪音太多,AI 容易分心

步骤 2:利用 MCP 连接外部工具

// .kiro/settings/mcp.json 示例 { "mcpServers": { "github": { "command": "npx", "args": ["-y", "@anthropic/github-mcp-server"], "env": { "GITHUB_TOKEN": "your-token" } }, "postgres": { "command": "npx", "args": ["-y", "@anthropic/postgres-mcp-server"], "env": { "DATABASE_URL": "postgresql://..." } } } }

步骤 3:用 Steering 规则约束 AI 行为

<!-- .kiro/steering/coding-standards.md --> # 编码规范 ## 通用规则 - 所有公共函数必须有文档注释 - 错误处理不能用 try-catch 吞掉异常 - 不允许使用 any 类型(TypeScript) ## 测试规范 - 每个模块必须有单元测试 - 核心逻辑必须有 Property-Based Testing - 测试文件与源文件同目录

3. 工具生态与选型

3.1 Spec-Driven 编码工具推荐

工具定位Spec 支持核心特点价格(2025)
KiroSpec-Driven IDE⭐⭐⭐⭐⭐ 原生内置内置 Spec 工作流(requirements→design→tasks)、Hooks 自动化、Steering 规则、Vibe/Spec 双模式免费版 50 次/月;Pro $20/月(225 vibe + 125 spec);Pro+ $39/月
CursorAI-First 编辑器⭐⭐⭐ 手动配置强大的上下文管理(@引用)、多模型支持、Composer 多文件编辑、.cursorrules 规则文件$20/月(Pro);$40/月(Business)
Claude Code终端 AI Agent⭐⭐⭐⭐ CLAUDE.mdPlan Mode 只读分析、Subagent 并行、完整终端访问、深度 repo 感知$20/月(Claude Max);$100/月(Max 5x);$200/月(Max 20x)
GitHub Copilot内联补全 + Agent⭐⭐ 基础深度 GitHub 集成、Agent Mode、多模型切换、Copilot Workspace$10/月(Individual);$19/月(Business)
WindsurfAI 编辑器⭐⭐⭐ CascadeCascade 多步骤 Agent、Flow 架构、被 Cognition(Devin)收购后增强$15/月(Pro)
Augment Code企业级 Agent⭐⭐⭐⭐ 原生四阶段方法论(Specify→Plan→Tasks→Implement)、企业级安全联系销售
TraycerPlan-First 工具⭐⭐⭐⭐ 原生将高层意图分解为结构化计划,交给 AI Agent 执行后验证免费(Beta)

工具选型决策树

你的项目类型是? ├── 个人项目/原型 → Kiro(免费版)或 Cursor ├── 中小团队生产项目 │ ├── 偏好 GUI → Kiro Pro 或 Cursor Pro │ └── 偏好终端 → Claude Code ├── 企业级项目 │ ├── 需要审计合规 → Augment Code │ └── 已有 GitHub 生态 → GitHub Copilot Business └── 开源项目 → Claude Code + Kiro 免费版

3.2 模型选择指南

不同模型在编码任务中各有优势,选择合适的模型能显著提升开发效率:

模型最适合场景上下文窗口编码基准API 价格(输入/输出 per 1M tokens)
Claude Opus 4复杂架构设计、长链推理、困难 bug 调试200KSWE-bench 顶级$15 / $75
Claude Sonnet 4日常编码、性价比最优、快速迭代200KSWE-bench 优秀$3 / $15
GPT-4o多模态任务、快速原型、广泛工具集成128K良好$2.50 / $10
Gemini 2.5 Pro超长上下文分析、大型代码库理解1M+优秀$1.25 / $10
Grok 4推理密集型任务、低成本 API128K优秀$3 / $15
DeepSeek R1推理密集型、开源自部署128K良好$0.55 / $2.19
Claude Haiku 3.5简单任务、高吞吐、低成本200K基础$0.80 / $4

模型选择策略

任务复杂度评估: ├── 简单(样板代码、CRUD、格式转换) │ → Claude Haiku 3.5 或 GPT-4o-mini(低成本高速) ├── 中等(功能实现、测试编写、重构) │ → Claude Sonnet 4(最佳性价比) ├── 复杂(架构设计、跨模块重构、算法设计) │ → Claude Opus 4 或 Grok 4 └── 超长上下文(大型代码库分析、长文档处理) → Gemini 2.5 Pro(1M+ tokens)

提示词模板

模型选择决策提示词: 我正在做 [任务描述]。 代码库规模:[文件数/行数] 任务复杂度:[简单/中等/复杂] 预算敏感度:[高/中/低] 需要的上下文量:[少量文件/多文件/整个代码库] 请推荐最适合的模型,并说明理由。

4. 从 Vibe Coding 到 Spec-Driven 的演进

4.1 Vibe Coding 的定义与价值

“Vibe Coding”一词由 Andrej Karpathy 在 2025 年初提出,描述了一种用自然语言描述意图、由 AI 生成代码的开发方式。开发者不再逐行编写代码,而是”描述氛围”,让 AI 理解并实现。

Vibe Coding 的核心特征:

  • 即兴式交互:像爵士乐即兴演奏,开发者与 AI 实时互动
  • 意图驱动:描述”要什么”而非”怎么做”
  • 快速迭代:几分钟内从想法到可运行原型
  • 低门槛:非专业开发者也能构建应用

4.2 Vibe Coding 的局限性

随着实践深入,Vibe Coding 的问题逐渐暴露:

问题表现根因
不可重复同一 prompt 不同时间产出不同代码缺乏确定性规格说明
上下文漂移长对话中 AI 忘记早期决策没有持久化的设计文档
质量不可控代码能跑但不可维护缺乏审查机制和编码规范
知识孤岛每个开发者有自己的 prompt 习惯缺乏团队共享的规格标准
安全隐患AI 生成的代码可能包含漏洞缺乏安全审查流程
技术债累积快速堆叠导致架构混乱缺乏架构设计和约束

研究数据表明,AI 生成的代码比人工编写的代码逻辑错误率高约 30%,这进一步说明了审查机制的必要性。

4.3 演进路径:四个成熟度级别

组织采用 AI 辅助开发通常经历四个阶段:

Level 1: 代码补全(Copilot 模式) ↓ 效率提升 10-20%,但不改变流程 Level 2: Vibe Coding(对话式生成) ↓ 效率提升 30-50%,但质量不稳定 Level 3: Spec-Driven(结构化 Agent) ↓ 效率提升 50-70%,质量可控 Level 4: 全自主工厂(Dark Factory) → 效率提升 80%+,人类只审批结果

Level 1 → Level 2:从逐行补全到整段生成,开发者开始”描述意图”而非”编写代码”。

Level 2 → Level 3:这是当前大多数团队正在经历的关键跃迁。核心变化是引入 Spec 作为 source of truth,将即兴式交互转变为结构化工作流。

Level 3 → Level 4:少数先锋团队已开始探索”暗工厂”模式——AI 接收 Spec、自主构建、自主测试、产出可交付物,人类只审批最终结果。StrongDM 的案例中,三名工程师运行了一个无人编码、无人审查的软件工厂。

4.4 Vibe Coding 与 Spec-Driven 的关系

两者不是对立关系,而是互补关系:

维度Vibe CodingSpec-Driven
适用阶段探索、原型、概念验证生产开发、团队协作
速度⚡ 极快(分钟级)🏃 快(小时级)
质量不可预测可控、可审查
可维护性
团队协作困难自然支持
适合项目黑客松、MVP、个人工具生产应用、企业项目

最佳实践:混合使用

项目生命周期中的模式切换: 1. 创意探索阶段 → Vibe Coding "帮我快速搭一个文件同步工具的原型" 2. 方案确认后 → 切换到 Spec-Driven "基于原型验证的结果,创建正式的 Spec" 3. 生产开发 → 严格 Spec-Driven "按 tasks.md 逐个执行任务" 4. 小修小补 → 回到 Vibe Coding "修复这个 CSS 对齐问题"

5. “70% 问题”与人机协作策略

5.1 什么是”70% 问题”

AI 能轻松处理约 70% 的开发工作——样板代码、标准模式、测试生成、文档编写。但最后 30% 的打磨和集成需要人类的专业判断。这个比例在 2025-2026 年的多项研究中被反复验证。

Connext Global 的调查显示,70% 的受访者认为 AI 的可靠性来自”人类安全网”——AI 加轻度审查(35%)或 AI 加专门监督(35%),仅 17% 认为 AI 可以独立运行。

5.2 70/30 分工详解

70% — AI 高效处理的部分: ├── 样板代码(CRUD、DTO、Schema、配置文件) ├── 标准模式实现(认证、分页、缓存、日志) ├── 测试用例生成(单元测试、集成测试骨架) ├── 文档生成(API 文档、README、注释) ├── 代码重构(提取函数、重命名、格式化) ├── 类型定义和接口声明 ├── 数据库迁移文件 └── CI/CD 配置 30% — 人类不可替代的部分: ├── 架构决策(选择哪种方案、权衡取舍) ├── 边缘场景处理(AI 容易遗漏的异常路径) ├── 性能优化(需要 profiling 和实测数据) ├── 安全审查(AI 可能引入的漏洞) ├── 用户体验细节(微交互、动画、手感) ├── 业务逻辑验证(AI 不理解业务上下文) ├── 依赖评估(库的安全性、维护状态、许可证) └── 技术债管理(何时重构、何时妥协)

5.3 最大化 AI 贡献的策略

策略 1:用 Spec 提升 AI 的 70% 质量

没有 Spec 时 AI 的 70%: → 能跑但不一致的代码,需要大量人工修正 → 实际有效贡献可能只有 40-50% 有 Spec 时 AI 的 70%: → 符合设计规范的代码,人工只需微调 → 实际有效贡献可达 65-70%

策略 2:用 Steering 规则减少人工审查负担

<!-- 通过 Steering 规则预防常见问题 --> # 安全规则 - 所有用户输入必须经过验证和清洗 - 数据库查询必须使用参数化查询 - API 密钥不得硬编码在源代码中 - 所有 HTTP 端点必须有认证检查 # 代码质量规则 - 函数不超过 50 行 - 圈复杂度不超过 10 - 不使用 console.log 作为日志方案

策略 3:用 Property-Based Testing 自动验证正确性

传统测试:验证特定输入的特定输出(example-based) PBT:验证所有输入都满足某个属性(property-based) 示例: - 属性:"排序后的数组长度等于原数组长度" - 属性:"加密后解密应得到原文" - 属性:"同步后本地和远程文件内容一致" PBT 能自动发现 AI 代码中的边缘场景 bug, 减少人类需要手动检查的 30% 中的工作量。

提示词模板

审查 AI 生成代码的提示词: 请审查以下代码,重点检查: 1. 是否符合 design.md 中 [章节] 的设计 2. 安全性:SQL 注入、XSS、密钥泄露、权限绕过 3. 性能:N+1 查询、内存泄漏、不必要的计算 4. 边缘场景:空输入、超大输入、并发访问、网络中断 5. 可维护性:命名清晰、职责单一、适当抽象 代码: [粘贴代码] 请按严重程度排序列出问题,并给出修复建议。

6. Spec-Driven 工作流的四种实施模式

根据团队规模和项目类型,Spec-Driven 工作流有四种典型实施模式:

模式 1:Solo Developer(一人开发)

开发者 ←→ AI Agent Spec(自己写 + AI 辅助) 逐任务执行 + 自我审查 git commit + 自动测试

适用:个人项目、独立开发者、自由职业 工具推荐:Kiro 或 Claude Code 关键:自律地执行审查,不要因为”只有自己”就跳过

模式 2:Small Team(2-5 人团队)

产品经理 → Spec 初稿 技术负责人 → Spec 审查 + 技术设计 开发者 ←→ AI Agent → 代码草稿 Code Review(团队成员交叉审查) CI/CD → 自动测试 → 部署

适用:创业团队、小型产品团队 工具推荐:Kiro + GitHub PR 流程 关键:Spec 作为团队共享的 source of truth

模式 3:Enterprise Team(大型团队)

产品团队 → PRD 架构师 → 技术 Spec + ADR 多个开发者 ←→ 各自的 AI Agent 自动化 Code Review + 安全扫描 QA 团队 → 验收测试 DevOps → 自动部署

适用:企业级项目、大型团队 工具推荐:Augment Code + GitHub Copilot Business 关键:统一的 Steering 规则、安全合规、审计追踪

模式 4:Dark Factory(全自主)

人类 → 高层 Spec(Markdown 格式) AI 系统 → 自动分解任务 AI Agent 集群 → 并行实现 AI 测试 → 自动验证行为场景 人类 → 审批最终产出物

适用:高度标准化的项目、内部工具 工具推荐:自建 Agent 编排系统 关键:极高的 Spec 质量要求,完善的自动化测试


实战案例:用 Kiro 开发 RustSync 文件同步工具

项目背景

RustSync 是一个基于 Tauri(Rust + React)的桌面文件同步工具,支持增量同步到百度网盘。以下是使用 Spec-Driven 工作流的完整开发过程。

完整工作流演示

Day 1 上午:规划(约 30 分钟) ├── 在 Kiro 中创建 spec "rustsync-tool" ├── AI 生成 requirements.md → 审查确认 12 个用户故事 ├── AI 生成 design.md → 审查确认架构设计(Tauri + React) └── AI 生成 tasks.md → 确认 25 个实现任务 Day 1 下午:核心模块(约 4 小时) ├── Task 1: 项目初始化(Tauri + React + TypeScript) ├── Task 2: 配置管理模块(TOML 配置读写) ├── Task 3: 文件监控模块(inotify/FSEvents 封装) └── 每个任务:AI 生成 → 人工审查 → 测试 → git commit Day 2:同步引擎(约 6 小时) ├── Task 4: 差异计算引擎(基于文件哈希的增量检测) ├── Task 5: 百度网盘 API 集成(OAuth + 文件上传/下载) ├── Task 6: 同步调度器(队列管理 + 并发控制) └── Task 7: 冲突检测与解决(时间戳 + 用户选择) Day 3:UI 层(约 5 小时) ├── Task 8-15: React 组件实现 │ ├── 文件夹列表、同步状态栏、设置面板 │ ├── 同步日志、同步报告、添加文件夹对话框 │ └── 通过 Steering 规则确保 CSS Modules + 函数式组件 └── 通过 MCP 读取设计稿辅助 UI 实现 Day 4:测试与打磨(约 4 小时) ├── Task 16-20: 单元测试 + Property-Based Testing ├── Task 21-23: 集成测试 └── Task 24-25: 打包与发布配置

关键 Steering 文件

<!-- .kiro/steering/coding-standards.md --> # RustSync 编码规范 ## Rust 代码规范 - 使用 thiserror 处理错误,禁止 unwrap() - 所有公共函数必须有文档注释 - 使用 clippy 的所有默认 lint - 异步代码使用 tokio ## TypeScript 代码规范 - 使用 CSS Modules,不用内联样式 - 组件使用函数式组件 + hooks - 类型定义集中在 types/index.ts - 状态管理使用 React hooks,不引入额外状态库 ## 测试规范 - 每个模块必须有单元测试 - 核心逻辑必须有 Property-Based Testing - 测试文件与源文件同目录,使用 .test.ts/.test.rs 后缀

案例分析

这个案例展示了 Spec-Driven 工作流的几个关键优势:

  1. 规划投入小,回报大:30 分钟的 Spec 创建节省了后续数天的返工
  2. 微任务可控:每个 Task 1-2 小时,审查负担可控
  3. Steering 规则统一质量:AI 生成的代码自动遵循团队规范
  4. MCP 扩展能力:通过 MCP 连接外部工具,AI 能力不受限于代码编辑

避坑指南

❌ 常见错误

  1. 不用 Spec 直接 Vibe Coding 生产代码

    • 问题:代码不一致、功能重复、废弃库引入、架构混乱
    • 正确做法:先写 Spec(哪怕只花 15 分钟),再让 AI 编码
  2. 给 AI 太大的任务

    • 问题:上下文漂移严重,AI 忘记初始目标,生成大量不可审查的代码
    • 正确做法:拆成微任务,每个 1-2 小时工作量,一次只执行一个
  3. 不审查 AI 生成的代码

    • 问题:合并了自己不理解的代码,埋下技术债和安全隐患
    • 正确做法:每行代码都要理解,不理解就让 AI 解释
  4. 盲目信任 AI 推荐的依赖库

    • 问题:AI 可能推荐不存在的库(幻觉)或有安全漏洞的版本
    • 正确做法:手动验证每个依赖的存在性、维护状态和安全性
  5. 跳过 Plan Mode 直接执行

    • 问题:AI 不了解现有代码库结构,生成的代码与现有架构冲突
    • 正确做法:先用 Plan Mode 分析代码库,再执行修改
  6. Spec 写完就不更新

    • 问题:代码和 Spec 逐渐脱节,Spec 失去 source of truth 的价值
    • 正确做法:代码变更时同步更新 Spec,保持一致性
  7. 上下文给太多或太少

    • 问题:太多导致 AI 分心,太少导致 AI 缺乏必要信息
    • 正确做法:只给当前任务相关的文件和设计文档
  8. 忽视 Steering 规则

    • 问题:AI 每次生成的代码风格不一致,团队成员各自为政
    • 正确做法:项目初始化时就建立 Steering 规则,全团队共享

✅ 最佳实践

  1. Spec 是 source of truth,代码是 Spec 的实现,不是反过来
  2. 一次一个任务,完成后审查、测试、提交,再进入下一个
  3. 每个任务都要有测试,核心逻辑用 Property-Based Testing
  4. 用 Steering/Rules 文件统一编码规范,让 AI 自动遵循
  5. 定期用 git diff 审查 AI 的所有改动,不要盲目接受
  6. 保持 Spec 与代码同步,需求变更时先改 Spec 再改代码
  7. 善用 MCP 扩展 AI 能力,连接数据库、API、设计工具
  8. 建立团队的 Spec 模板,降低每次创建 Spec 的成本
  9. 记录架构决策(ADR),帮助 AI 理解”为什么这样设计”
  10. 渐进式采用,从 Vibe Coding 逐步过渡到 Spec-Driven,不要一步到位

相关资源与延伸阅读

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

  2. Claude Code CLI — Anthropic 的终端 AI Agent,支持 Plan Mode 和 Subagent

  3. Cursor — AI-First 代码编辑器,强大的上下文管理和多模型支持

  4. Augment Code — 企业级 Spec-Driven 开发平台,四阶段方法论

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

  6. Addy Osmani 的 AI 编码工作流 — Google Chrome 团队工程师分享的 LLM 编码工作流实践

  7. Spec-Driven Development 社区讨论 — Reddit r/ChatGPTCoding 社区的实践分享

  8. fast-check — TypeScript/JavaScript 的 Property-Based Testing 库,Spec-Driven 测试的利器


参考来源

Content was rephrased for compliance with licensing restrictions.


📖 返回 总览与导航 | 上一节:16c-系统设计文档AI生成 | 下一节:17b-15分钟瀑布规划法

Last updated on