链载Ai

标题: Spec Kit 实践:从 Prompt 工程到规范驱动开发 [打印本页]

作者: 链载Ai    时间: 1 小时前
标题: Spec Kit 实践:从 Prompt 工程到规范驱动开发

当前 Vibe Coding 的困扰

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

图源GitHub

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

什么是 Spec Kit

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

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

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

环境准备与安装

支持的环境

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

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

系统要求

安装步骤

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

uv tool install specify-cli --from git+https://github.com/github/spec-kit.git

或在项目内直接安装:

uvx --from git+https://github.com/github/spec-kit.git specify init <ROJECT_NAME>

项目初始化

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

specify init . --ai claude

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

核心命令参考

所有 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 模式跳过权限确认):

claude --dangerously-skip-permissions

建立项目规范

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

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

定义功能需求

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

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

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

澄清需求边界

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

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

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

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

问题 1: Logo 图像输入方式

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

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

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

> yes

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

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

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

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

> yes

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

制定技术方案

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

/speckit.plan

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

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

任务分解与执行

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

/speckit.tasks

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

执行所有开发任务:

/speckit.implement
正在执行 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个任务)

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

/speckit.implement 继续执行

直到执行完成所有 Task

开发成果

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

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

总结

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






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5