Spec Kit 实践:从 Prompt 工程到规范驱动开发

当前 Vibe Coding 的困扰

是否已经遇到过以下问题?

  • 花费大量时间编写和修改 Prompt,但 AI 生成的代码与预期不符?
  • 完成需求后难以追溯设计原则和具体改动点?
  • 开发完成后希望补充文档,但上下文已被压缩丢失?
  • 编码规则和规范散落在不同编辑器中,缺乏统一管理?
  • 难以建立标准化的 AI 编程流程和质量保障机制?

例如下面的提示词语言排行榜:

而 Spec Kit 提供了一种"规范即代码"的解决方案,旨在解决传统 Prompt 工程中存在的重复修改、缺乏系统性信息留存等问题。

什么是 Spec Kit

Spec Kit 是 GitHub 团队近期推出的开发工具套件,倡导"规范即代码"的开发理念。

它引入了规范驱动开发的新型软件开发模式,通过 AI 技术提升代码质量和开发效率。其核心思想是将需求规格置于开发流程的中心,让开发者首先精确定义"做什么"和"为什么",再由 AI 基于清晰的规范生成代码。

简而言之,Spec Kit 通过文档先行的方式,建立系统化的开发工作流。

环境准备与安装

支持的环境

目前 Spec Kit 支持 ClaudeGeminiCopilot 等 AI 助手。如果无法使用 Claude,也可以将模型替换为 Qwen、DeepSeek 等其他兼容模型。

本文以 Claude Code 作为演示环境。

系统要求

  • Python ≥ 3.11
  • Git(任意版本)

安装步骤

打开终端(PowerShell、Terminal 等),执行以下命令安装 specify-cli:

shell 复制代码
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git

或在项目内直接安装:

shell 复制代码
uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>

项目初始化

在已有项目目录中执行初始化命令(claude 可替换为其他支持的 AI 助手):

shell 复制代码
specify init . --ai claude

初始化完成后,项目目录中会生成 .specify 目录,包含以下结构:

  • memory/ - 存储项目级原则和规范
  • scripts/bash/ - Spec Kit 的调用脚本
  • template/ - 执行命令时使用的模板文件

核心命令参考

所有 Spec Kit 命令都以 /speckit. 开头:

命令 用途描述 使用时机
/speckit.constitution 制定或更新项目级开发原则和指南 项目初始化或引入新规范时
/speckit.specify 明确需求范围和用户故事 开始新功能开发时
/speckit.plan 基于技术栈创建实施方案 需求明确后
/speckit.tasks 生成可执行的任务清单 方案确定后
/speckit.implement 按计划执行所有开发任务 任务分解完成后
/speckit.clarify 澄清需求中的模糊领域 制定计划前
/speckit.analyze 跨工件一致性和覆盖率分析 任务生成后,实施前
/speckit.checklist 生成质量检查清单 需求验证阶段

常用的核心命令包括:specifyplantasksimplement

constitution 主要用于项目初始化阶段或引入新的技术规范时。clarify 用于补充说明需求中的边界条件。checklist 生成验证清单,类似于文本形式的测试用例。

以下是 Spec Kit 的完整工作和核心流程参考:

实战演示:二维码生成工具开发

启动开发环境

通过终端或编辑器插件启动 Claude Code(为提升效率,可启用 YOLO 模式跳过权限确认):

shell 复制代码
claude --dangerously-skip-permissions

建立项目规范

在对话中输入以下命令,可根据实际项目背景补充具体规范:

shell 复制代码
/speckit.constitution 创建专注于代码质量、测试标准、用户体验一致性和性能要求的原则。

定义功能需求

使用 specify 命令定义二维码生成工具的需求:

shell 复制代码
/speckit.specify 需要开发一个二维码生成工具库,支持 color、size、logo 等基本配置,提供使用示例,满足常见使用场景。

此步骤会生成 spec.mdrequirements.md,明确功能需求和验收标准,为后续开发奠定基础。

澄清需求边界

如果发现生成的需求存在模糊之处,可使用 clarify 进行澄清:

shell 复制代码
/speckit.clarify 不需要考虑 Node.js 环境,仅针对 Web 端使用。

clarify 会记录澄清过程,并提出其他需要明确的边界问题,通过交互式对话完善需求文档。

例如,系统可能会提出以下澄清问题:

问题 1: Logo 图像输入方式

sql 复制代码
基于用户明确只针对 Web 端使用,Logo 的输入方式需要明确。

推荐方案: 选项 C (File 对象/Blob + URL 字符串) -
覆盖 Web 开发中最常见的所有场景,实现复杂度适中。

| 选项    | 描述                                 |
|-------|------------------------------------|
| A     | 仅支持 URL 字符串                    |
| B     | 仅支持 File 对象或 Blob              |
| C     | 同时支持 File 对象/Blob 和 URL 字符串 |
| D     | 支持 HTMLImageElement 或 Canvas 元素 |

> yes

问题 2: 颜色对比度处理策略

less 复制代码
当用户设置的前景色和背景色对比度过低时,系统应该如何处理?

推荐方案: 选项 B (警告但允许生成) -
既尊重开发者的设计自由度,又通过警告提醒潜在问题。

| 选项    | 描述             |
|-------|----------------|
| A     | 拒绝生成并返回错误  |
| B     | 发出警告但仍允许生成 |
| C     | 自动调整颜色对比度  |
| D     | 静默生成不做提示    |

> yes

澄清过程会记录所有决策,确保需求文档的完整性。

制定技术方案

使用 plan 命令生成技术实施方案:

shell 复制代码
/speckit.plan

plan 会综合分析 spec.mdrequirements.mdconstitution.md,制定完整的技术方案,包括市场调研、技术选型和架构设计。

系统会进行技术调研,分析现有解决方案,并基于调研结果设计数据模型和系统架构。

任务分解与执行

基于设计方案进行任务拆分:

shell 复制代码
/speckit.tasks

系统会将项目分解为多个用户故事,每个故事包含详细的任务清单。

执行所有开发任务:

shell 复制代码
/speckit.implement
shell 复制代码
正在执行 Phase 1: Setup... (esc to interrupt · ctrl+t to hide todos · 2m 15s · ↑ 1.2k tokens)
  ⎿  ☒ 验证并创建项目 ignore 文件
     ☐ Phase 1: Setup (7个任务)
     ☐ Phase 2: Foundational (7个任务)
     ☐ Phase 3: User Story 1 - MVP (7个任务)
     ☐ Phase 4: User Story 2 (5个任务)
     ☐ Phase 5: User Story 5 (5个任务)
     ☐ Phase 6: User Story 3 (7个任务)
     ☐ Phase 7: User Story 4 (4个任务)
     ☐ Phase 8: Polish (8个任务)

如果执行过程中断,可使用以下命令继续:

shell 复制代码
/speckit.implement 继续执行

直到执行完成所有 Task

开发成果

通过 Spec Kit 完成的二维码生成工具开发,从需求定义到代码实现,整体耗时约 1 小时(包含网络延迟和指令等待时间)。这种方法相比传统的即时 Prompt 工程,提供了更系统化的开发体验。

项目实现了完整的二维码生成功能,包括:

  • 基础二维码生成
  • 颜色和尺寸定制
  • Logo 嵌入支持
  • 完整的文档和示例

总结

Spec Kit 通过规范驱动的开发方法,将产品需求、技术架构、测试标准和开发实现有机结合,提供了系统化的 AI 辅助编程解决方案。相比传统的即时 Prompt 工程,它能够:

  • 确保需求实现的准确性
  • 提供完整的设计决策记录
  • 生成一致且可维护的代码
  • 建立标准化的开发流程

完整项目代码仓库:github.com/CrazyMrYan/...

文献

相关推荐
云起SAAS4 小时前
早晚安打卡抖音快手微信小程序看广告流量主开源
微信小程序·小程序·ai编程·看广告变现轻·早晚安打卡
该用户已不存在4 小时前
Google Antigravity 测评:免费的智能体 IDE 有多强
后端·ai编程·gemini
魁首5 小时前
初识 ACP (Agent Client Protocol)
人工智能·ai编程·mcp
yaocheng的ai分身5 小时前
可验证性是极限
ai编程
程序员鱼皮8 小时前
7 个 Cursor AI 极限省钱大法,别花冤枉钱!
后端·ai编程·cursor
不老刘8 小时前
在 Windows 系统上安装官方 Gemini CLI 教程
ai编程·gemini
小妖同学学AI9 小时前
Claude Code:开启AI编程新纪元的开源智能体
ai编程
ChinaRainbowSea10 小时前
13. Spring AI 的观测性
java·人工智能·后端·spring·flask·ai编程