Spec 编程工作流文档
Spec 编程是一种以 规格驱动开发 的工程方法论:在动手写代码之前,先把"做什么"写清楚,再把"怎么做"想明白,最后才动手实现。AI 辅助下的 Spec 编程将每个阶段都变成人机协作的结构化产出。
总体流程
复制代码
PRD → UI 设计 → 技术方案 → 开发 → 测试 → 上线
每个阶段都有明确的输入、产出物、验收标准,上一阶段的产出是下一阶段的输入。
阶段一:PRD(产品需求文档)
目标
将模糊的业务诉求转化为清晰、可验证的需求规格。
输入
- 业务目标 / 用户痛点
- 相关背景资料(竞品分析、数据报告等)
推荐 AI 工具
| 工具 |
用途 |
| ChatGPT / Claude |
用户故事梳理、PRD 草稿生成、需求完整性检查 |
| Notion AI |
在 Notion 中直接生成和整理 PRD 文档 |
| Gemini |
结合 Google Workspace,快速整理调研资料 |
| Perplexity |
竞品调研、行业背景快速检索 |
推荐 Claude Code Skill
| Skill / 命令 |
使用方式 |
说明 |
自定义 /prd |
/prd [功能名] |
将 PRD 提示词模板注册为 slash command,一键生成标准 PRD 草稿 |
自定义 /ac |
/ac [功能描述] |
自动生成验收标准(Acceptance Criteria)列表 |
自定义 /review-prd |
/review-prd |
读取当前 PRD.md,检查完整性(缺失异常流、边界条件、Out of Scope) |
如何注册自定义 Skill :在项目根目录创建 .claude/commands/prd.md,写入提示词,即可通过 /prd 调用。
与 AI 协作方式
- 描述业务背景,让 AI 帮你梳理核心用户故事
- AI 生成 PRD 草稿,人工审查并补充边界条件
- AI 检查需求完整性(是否有遗漏的异常流、权限场景)
markdown
复制代码
## 功能名称
## 背景与目标
## 用户角色
## 核心用户故事
- As [角色], I want [功能], so that [价值]
## 功能需求(正常流 + 异常流)
## 非功能需求(性能、安全、兼容性)
## 数据需求
## 验收标准(AC)
## 不在范围内(Out of Scope)
## 开放问题(Open Questions)
验收标准
阶段二:UI 设计
目标
将文字需求转化为可交互的视觉规格,消除理解歧义。
输入
推荐 AI 工具
| 工具 |
用途 |
| v0 (Vercel) |
输入文字描述,直接生成 React UI 组件和页面 |
| Galileo AI |
自然语言生成高保真 UI 设计稿 |
| Uizard |
草图/截图转 UI 原型,支持 AI 生成线框图 |
| Figma AI / Magician |
Figma 内的 AI 插件,生成图标、文案、变体 |
| Claude / ChatGPT |
生成页面清单、组件树、交互说明文字 |
| Midjourney / DALL-E |
生成 UI 风格参考图、插画、配图 |
推荐 Claude Code Skill
| Skill / 命令 |
使用方式 |
说明 |
自定义 /ui-inventory |
/ui-inventory |
读取 PRD.md,自动输出页面清单、组件清单、状态列表(loading/empty/error) |
自定义 /design-review |
/design-review |
对照 PRD 检查 UI 设计稿是否遗漏状态或交互场景 |
自定义 /design-token |
/design-token |
根据设计描述生成标准 Design Token 定义(颜色、字体、间距) |
与 AI 协作方式
- 提供 PRD,让 AI 生成页面清单和信息架构
- AI 输出低保真线框图描述 / Markdown 表格形式的组件清单
- 人工在设计工具(Figma / Pencil)中实现,AI 辅助生成样式规范
- AI 检查设计是否覆盖了 PRD 中所有状态(loading、empty、error)
产出物
| 产出物 |
说明 |
| 页面清单 |
所有页面/弹窗/底部栏的列表 |
| 组件规范 |
颜色、字体、间距、圆角等 Design Token |
| 交互说明 |
每个操作对应的状态流转 |
| 标注文档 |
供开发使用的精确尺寸标注 |
验收标准
阶段三:技术方案设计
目标
在写代码之前,确定架构、接口、数据模型、关键算法,让团队对实现路径达成共识。
输入
推荐 AI 工具
| 工具 |
用途 |
| Claude |
架构设计讨论、数据模型设计、API 接口设计、任务拆解 |
| ChatGPT |
技术选型对比、方案权衡分析 |
| GitHub Copilot Chat |
结合代码库上下文的技术方案讨论 |
| Mermaid + AI |
用 AI 生成 Mermaid 语法的架构图、流程图、ER图 |
| Eraser.io |
AI 生成系统架构图、时序图 |
推荐 Claude Code Skill
| Skill / 命令 |
使用方式 |
说明 |
自定义 /tech-design |
/tech-design |
读取 PRD.md,输出完整技术方案草稿(数据模型、API 设计、任务拆解) |
自定义 /task-breakdown |
/task-breakdown |
将技术方案拆解为带依赖关系的开发子任务列表 |
自定义 /api-design |
/api-design [资源名] |
为指定资源生成 RESTful API 接口定义(含请求/响应示例和错误码) |
自定义 /security-review |
/security-review |
对技术方案进行安全检查,列出潜在漏洞和应对措施 |
与 AI 协作方式
- 描述需求,让 AI 列出候选技术方案及其权衡
- AI 生成数据模型草稿(数据库表结构 / 数据类)
- AI 生成 API 接口设计(RESTful / GraphQL)
- 人工确认方案,AI 检查潜在的性能和安全问题
- AI 将方案拆解为可并行的开发子任务
产出物:TECH_DESIGN.md
markdown
复制代码
## 技术选型与理由
## 系统架构图(文字描述 / ASCII 图)
## 数据模型
- 实体定义
- 字段说明
- 关系图
## API 设计
- 接口列表
- 请求/响应结构
- 错误码规范
## 关键流程
- 核心业务流程图
- 状态机
## 安全考量
## 性能考量
## 任务拆解(Task Breakdown)
- 任务列表(可并行 / 串行标注)
- 依赖关系
## 技术风险与应对
验收标准
阶段四:开发
目标
按技术方案实现功能,保持代码可读、可测试、可维护。
输入
- TECH_DESIGN.md 中的任务列表
- API 接口文档
- UI 设计稿
推荐 AI 工具
| 工具 |
用途 |
| Claude Code |
在终端中直接操作代码库,理解上下文后生成/修改代码 |
| GitHub Copilot |
IDE 内代码补全、函数实现、注释生成 |
| Cursor |
AI 原生 IDE,支持多文件上下文编辑和 Chat |
| Windsurf |
AI 驱动的 IDE,支持 Cascade 多步骤自动完成任务 |
| Codeium |
免费的 AI 代码补全,支持多种 IDE |
| Tabnine |
本地部署的 AI 代码补全,适合隐私要求高的场景 |
推荐 Claude Code Skill
| Skill / 命令 |
使用方式 |
说明 |
内置 /commit |
/commit |
自动分析 staged 变更,生成符合 Conventional Commits 规范的提交信息 |
内置 simplify |
/simplify |
Review 已修改的代码,检查复用性、代码质量和效率,自动修复问题 |
内置 claude-api |
/claude-api |
帮助使用 Claude API / Anthropic SDK 构建 AI 功能 |
自定义 /impl |
/impl [任务描述] |
读取任务上下文(PRD + 接口文档),按规范实现功能代码 |
自定义 /review |
/review |
对当前 diff 做代码 Review,检查逻辑、安全、性能问题 |
/commit 和 /simplify 是 Claude Code 内置 Skill,可直接使用,无需配置。
与 AI 协作方式(逐任务循环)
markdown
复制代码
1. 给 AI 提供当前任务描述 + 相关上下文文件
2. AI 生成代码实现草稿
3. 人工 Review:检查逻辑正确性、安全问题、编码风格
4. AI 根据 Review 意见修改
5. 人工确认,提交代码
开发规范
markdown
复制代码
## 提交规范
- feat: 新功能
- fix: Bug 修复
- refactor: 重构(不改变行为)
- test: 测试相关
- docs: 文档更新
## 代码 Review 检查项
- [ ] 逻辑与需求一致
- [ ] 无明显性能问题(N+1 查询、不必要的重复计算)
- [ ] 无安全漏洞(SQL注入、XSS、未授权访问)
- [ ] 错误处理完整
- [ ] 关键逻辑有注释
产出物
- 通过 Code Review 的 PR / MR
- 与 API 文档保持同步的接口实现
- 单元测试(覆盖核心业务逻辑)
验收标准
阶段五:测试
目标
系统性地验证实现与需求的一致性,发现并修复缺陷。
输入
推荐 AI 工具
| 工具 |
用途 |
| Claude / ChatGPT |
根据 AC 生成测试用例矩阵、分析失败原因 |
| GitHub Copilot |
在 IDE 中自动生成单元测试代码 |
| Cursor |
根据实现代码自动生成对应测试文件 |
| Applitools |
AI 驱动的视觉回归测试,自动比对 UI 差异 |
| Testim |
AI 辅助录制和维护 E2E 自动化测试 |
| Mabl |
AI 自动修复因 UI 变更而失效的测试脚本 |
| Katalon |
AI 辅助生成和执行跨平台 UI 测试 |
推荐 Claude Code Skill
| Skill / 命令 |
使用方式 |
说明 |
自定义 /gen-tests |
/gen-tests [文件路径] |
读取实现代码,自动生成对应的单元测试,覆盖正常流和边界值 |
自定义 /test-matrix |
/test-matrix |
读取 PRD 验收标准,生成完整的测试用例矩阵 |
自定义 /bug-report |
/bug-report |
交互式生成标准化 Bug 报告(引导填写复现步骤、预期/实际行为) |
内置 loop |
/loop 30m /run-tests |
每 30 分钟自动执行测试并汇报结果,适合 CI 等待期监控 |
与 AI 协作方式
- 提供 PRD,让 AI 生成测试用例矩阵
- AI 辅助生成自动化测试脚本(UI 自动化 / 接口测试)
- 测试执行后,AI 辅助分析失败原因
- AI 生成 Bug 报告模板,标准化缺陷描述
测试分层
| 层级 |
类型 |
工具(Android/KMP) |
覆盖目标 |
| L1 |
单元测试 |
JUnit5 / kotlin.test |
业务逻辑、算法 |
| L2 |
集成测试 |
Ktor Test / MockK |
API 集成、数据层 |
| L3 |
UI 测试 |
Espresso / Compose UI Test |
核心用户流程 |
| L4 |
端到端测试 |
手动 / Maestro |
Happy Path + 关键异常流 |
测试用例结构
markdown
复制代码
## 测试用例:[功能名称]
### 前置条件
### 测试步骤
### 预期结果
### 实际结果
### 状态:Pass / Fail / Blocked
Bug 报告结构
markdown
复制代码
## Bug 标题
## 严重级别:P0 / P1 / P2 / P3
## 复现步骤
## 预期行为
## 实际行为
## 环境信息(设备、OS版本、App版本)
## 截图/录屏
产出物
- 测试用例文档
- 测试执行报告
- Bug 列表(已关闭 / 遗留说明)
验收标准
阶段六:上线
目标
安全、可回滚地将功能发布到生产环境,并监控上线后的质量。
输入
推荐 AI 工具
| 工具 |
用途 |
| Claude / ChatGPT |
生成上线 Checklist、撰写 Release Notes、分析告警日志 |
| Datadog AI |
智能告警归因、异常检测、日志摘要 |
| Sentry AI |
自动分析崩溃堆栈,关联代码变更,推断根因 |
| New Relic AI |
自然语言查询监控数据,AI 辅助根因分析 |
| PagerDuty AIOps |
告警降噪、智能事件关联、自动升级策略 |
| Grafana Assistant |
自然语言生成监控看板查询语句 |
推荐 Claude Code Skill
| Skill / 命令 |
使用方式 |
说明 |
自定义 /release-notes |
/release-notes |
分析 git log 中本次发布的所有提交,自动生成结构化 Release Notes |
自定义 /deploy-checklist |
/deploy-checklist |
根据本次变更内容(diff / PR 描述)生成定制化上线 Checklist |
自定义 /incident |
/incident [告警内容] |
粘贴监控告警或崩溃日志,AI 辅助分析根因并给出排查建议 |
内置 update-config |
/update-config |
配置 Claude Code 自动化钩子,如"上线后自动执行健康检查脚本" |
内置 loop |
/loop 10m /check-deploy |
上线期间定时轮询部署状态或监控指标,自动汇报 |
与 AI 协作方式
- AI 生成上线 Checklist(根据本次变更内容定制)
- AI 辅助撰写发布说明(Release Notes)
- 上线后,AI 辅助分析监控告警和日志
上线 Checklist
markdown
复制代码
## 上线前
- [ ] 所有测试用例通过
- [ ] P0/P1 Bug 已修复
- [ ] 数据库迁移脚本已准备并测试
- [ ] 配置项 / 环境变量已更新到生产环境
- [ ] 回滚方案已明确(回滚步骤、耗时评估)
- [ ] 灰度/特性开关已配置(如需要)
- [ ] 相关文档已更新(API 文档、运维手册)
- [ ] 通知相关干系人(产品、客服、运营)
## 上线中
- [ ] 按灰度策略逐步放量
- [ ] 实时监控关键指标(崩溃率、错误率、核心业务指标)
- [ ] 值班人员就位
## 上线后(24-72小时)
- [ ] 崩溃率、ANR 率未超过基线
- [ ] 核心业务转化指标正常
- [ ] 用户反馈渠道无异常集中投诉
- [ ] 监控告警无持续触发
发布说明模板
markdown
复制代码
## v1.x.x 发布说明
### 新功能
- [功能名] 简要描述
### 问题修复
- [Bug描述] 修复说明
### 已知问题
- [遗留说明]
### 升级注意事项
- [迁移步骤(如有)]
产出物
- 发布包(APK / AAB / 服务端镜像)
- 上线执行记录
- 上线后监控报告(24h 快报)
验收标准
阶段间传递规范
markdown
复制代码
PRD.md ──→ UI 设计稿 + 组件规范
──→ TECH_DESIGN.md(API 设计 + 任务拆解)
──→ 代码 PR + 单元测试
──→ 测试报告 + Bug 列表
──→ 上线记录 + 监控报告
黄金原则:下一阶段不开始,除非当前阶段的验收标准已满足。
自定义 Claude Code Skill 创建指南
文档中标注"自定义"的 Skill 均需要在项目中手动创建,方法如下:
目录结构
bash
复制代码
项目根目录/
└── .claude/
└── commands/
├── prd.md # /prd
├── ac.md # /ac
├── tech-design.md # /tech-design
├── task-breakdown.md # /task-breakdown
├── impl.md # /impl
├── review.md # /review
├── gen-tests.md # /gen-tests
├── test-matrix.md # /test-matrix
├── release-notes.md # /release-notes
└── deploy-checklist.md # /deploy-checklist
示例:创建 /prd Skill
新建 .claude/commands/prd.md,内容如下:
markdown
复制代码
你是一个经验丰富的产品经理。基于用户提供的功能描述,生成一份完整的 PRD 文档,包含:
1. 背景与目标
2. 用户角色
3. 核心用户故事(As / I want / So that 格式)
4. 功能需求(正常流 + 异常流)
5. 非功能需求
6. 验收标准(AC)
7. Out of Scope
8. Open Questions
功能描述:$ARGUMENTS
内置 Skill 一览
| Skill |
命令 |
无需配置 |
| commit |
/commit |
直接使用 |
| simplify |
/simplify |
直接使用 |
| loop |
/loop [间隔] [命令] |
直接使用 |
| update-config |
/update-config |
直接使用 |
| claude-api |
/claude-api |
直接使用 |
AI 协作通用提示词模板
PRD 阶段
markdown
复制代码
我要做一个 [功能名],背景是 [业务背景],目标用户是 [用户角色]。
请帮我:
1. 梳理核心用户故事
2. 列出功能需求(正常流 + 异常流)
3. 指出可能遗漏的边界场景
4. 生成验收标准(AC)
技术方案阶段
markdown
复制代码
基于以下 PRD,帮我设计技术方案:
[粘贴 PRD 内容]
请输出:
1. 数据模型设计
2. API 接口设计
3. 关键流程说明
4. 任务拆解(标注依赖关系)
5. 潜在风险
开发阶段
css
复制代码
当前任务:[任务描述]
相关上下文:[粘贴相关文件或接口定义]
请实现该功能,要求:
- 遵循 [项目编码规范]
- 包含错误处理
- 关键逻辑加注释
测试阶段
css
复制代码
基于以下 AC,生成测试用例矩阵:
[粘贴验收标准]
要求覆盖:正常流、异常流、边界值、权限场景
本文档基于 Spec 编程方法论,适用于 AI 辅助软件开发场景。