一、问题与解决方案
1.1 氛围编码的典型缺陷
-
代码表面无错,运行存在逻辑漏洞
-
无统一开发规范,协作与迭代困难
-
缺乏测试与质量校验,无法交付
-
需求模糊,实现与预期偏离
1.2 Spec-Kit 概述
Spec-Kit是GitHub官方开源的一套规格驱动开发工具包,旨在将AI编码行为从不可控的"自由发挥"转变为可预期、可验证的工程流程。其核心理念是:在与AI交互之前,首先以结构化文档形式明确定义项目的开发规范、功能需求、技术方案和任务清单,然后将这些规格作为唯一输入交付给AI,由AI按规格生成代码。这种方式避免了自然语言提示词的歧义性和AI的随意性,确保每次生成的代码都能保持一致的风格、完备的逻辑和可测试性。Spec-Kit兼容Claude Code、GitHub Copilot、Gemini CLI等主流AI编码工具,能够在无需改变现有开发习惯的前提下,引入规范的规格驱动流水线。
二、环境安装
2.1 前置依赖
-
Git
-
PowerShell(Windows)或终端(macOS/Linux)
2.2 在线安装步骤
-
安装 uv 工具
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"(macOS/Linux可使用
curl -LsSf https://astral.sh/uv/install.sh | sh) -
验证 uv 安装
uv --version -
在线安装 Spec-Kit CLI
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git该命令会直接从GitHub仓库拉取最新版本并安装。
-
验证安装
specify --help
三、项目初始化
3.1 新项目
specify init my-project --ai claude
3.2 现有项目
specify init . --ai claude
3.3 核心目录结构
-
.specify/memory:全局规范与开发原则 -
.specify/scripts:核心执行脚本 -
.specify/templates:规格、计划、任务模板
四、核心命令与提示词
以下命令需在 Claude Code 环境中执行,所有提示词均为全新示例,覆盖不同业务场景。
4.1 /speckit.constitution -- 项目宪章生成
生成项目全局开发规范,统一技术栈、代码风格、命名、测试、安全及Git协作标准。
通用型提示词(适用于全栈项目):
/speckit.constitution 分析当前项目已存在的代码和技术栈,生成一份适用于全栈应用的开发宪章。宪章需包含以下维度,每条规则标注 MUST / SHOULD / MAY:
1. 技术栈统一:明确前端框架(React/Vue/Angular)、后端框架(Node.js/Go/Spring)、数据库类型、ORM/ODM、构建工具、包管理器的当前版本及升级策略。
2. 目录结构规范:规定前端组件、页面、服务、工具函数的组织方式;后端按模块或领域划分的文件夹结构。
3. 命名约定:文件命名(kebab-case / PascalCase)、变量/函数(camelCase)、常量(UPPER_SNAKE_CASE)、CSS类名(BEM或utility-first)。
4. API设计规范:RESTful或GraphQL风格,URL命名、HTTP方法使用、请求/响应统一结构、错误码标准。
5. 状态管理策略:全域状态与局部状态的划分原则,禁止直接修改状态的规则。
6. 代码风格:缩进(2或4空格)、分号使用、引号风格、最大行长度、注释要求(JSDoc/TSDoc)。
7. 错误处理:同步/异步错误捕获的统一方式,用户级错误与系统级错误的区分,日志记录级别。
8. 测试标准:单元测试覆盖率门槛(如≥80%),集成测试范围,E2E关键路径覆盖。
9. 安全基线:输入校验(XSS/注入防护)、身份认证机制、敏感信息存储(环境变量)、CORS策略。
10. Git协作:分支命名(feature/xxx, fix/xxx)、commit message格式(Conventional Commits)、PR审核最少人数。
11. 文档要求:README内容模板、API文档生成工具、组件使用示例。
4.2 /speckit.specify -- 需求规格定义
将自然语言需求转化为结构化规格文档,包含用户故事、功能需求、验收标准、边界条件。
示例提示词(电商商品筛选与排序功能):
/speckit.specify 开发一个电商商品列表页功能。需求如下:
- 页面展示商品卡片,每个卡片包含图片、名称、价格、销量、评分(5星制)。
- 支持按商品类目(三级联动下拉)筛选、按价格区间(0-99, 100-499, 500以上)筛选。
- 支持按价格(升序/降序)、按销量(降序)排序。
- 支持关键字搜索(商品名称模糊匹配)。
- 列表默认分页加载,每页20条,支持跳页。
- 筛选、排序、搜索条件变化时,自动重置页码并刷新列表。
- 后端数据量预计10万级别,前端需保证筛选排序响应时间不超过500ms。
要求输出完整规格文档:用户角色、用户故事优先级、核心实体(Product, Category)、功能需求清单(包含边界逻辑)、非功能需求(性能、兼容性)、验收标准(可量化的测试点)、异常场景处理(无数据、加载失败、网络超时)。
4.3 /speckit.plan -- 技术方案规划
基于规格文档生成技术方案,含数据模型、页面结构、依赖、性能约束。
示例提示词(React + Tailwind方案):
/speckit.plan 根据上述商品筛选排序规格文档,制定前端技术实现方案。要求:
- 前端框架:React 18 + TypeScript,使用函数组件与Hooks。
- 状态管理:使用 useReducer 或 Zustand 管理筛选条件与商品列表状态。
- UI组件:自研组件,基于Tailwind CSS实现响应式布局。
- API交互:封装fetch拦截器,处理loading与错误态,请求防抖(搜索输入延迟300ms)。
- 性能优化:商品图片懒加载,列表虚拟滚动(可选,若数据量超过200条时启用)。
- 分页实现:后端游标分页或传统offset/limit,前端维护页码参数。
- 路由:React Router v6,列表页支持URL参数同步(便于分享筛选条件)。
输出内容:数据模型定义(TypeScript接口)、组件树结构、API端点设计、关键算法(筛选条件组合、排序比较)、性能目标及验证方法、依赖包清单、开发顺序建议。
4.4 /speckit.tasks -- 任务拆解
自动拆解为可并行、有依赖的细分开发任务,标注优先级与阶段。
直接执行:
/speckit.tasks
4.5 /speckit.implement -- 自动编码
按任务清单自动创建文件、编写逻辑、适配规范、执行基础校验。
直接执行:
/speckit.implement
4.6 辅助命令
-
需求澄清 :
/speckit.clarify-- 用于模糊需求或边界缺失时补充逻辑。 -
质量校验 :
/speckit.checklist-- 生成功能检查清单,用于上线前验收。
五、标准开发流程
推荐按以下顺序执行命令,确保从规范到落地的完整闭环:
-
/speckit.constitution-- 初始化项目规范 -
/speckit.specify-- 需求规格化 -
/speckit.clarify-- (按需)澄清模糊点 -
/speckit.plan-- 技术方案设计 -
/speckit.tasks-- 任务拆解 -
/speckit.implement-- 自动编码实现 -
/speckit.checklist-- 质量验收
六、总结
Spec-Kit将AI编程从随性的"氛围编码"提升为规格驱动的工程化开发。通过标准化的命令流程与精细化的提示词,AI能够生成规范、可测试、可迭代的企业级代码,适用于个人开发与团队协作。本文提供的全新提示词示例覆盖了典型电商场景,可直接用于Claude Code,用户也可按需调整业务描述,实现同样严谨的AI工程化流程。
附:核心命令速查表
| 命令 | 作用 | 使用阶段 |
|---|---|---|
/speckit.constitution |
生成项目开发宪章与全局规范 | 项目初始化 |
/speckit.specify |
需求结构化,生成验收标准 | 功能启动 |
/speckit.plan |
输出技术方案与数据模型 | 需求定稿后 |
/speckit.tasks |
拆解精细化开发任务 | 方案确定后 |
/speckit.implement |
全自动编码实现功能 | 任务拆解后 |
/speckit.clarify |
澄清模糊需求与边界 | 全程按需 |
/speckit.checklist |
生成质量验收清单 | 功能收尾验收 |