什么是 SpecKit
SpecKit 是由 GitHub 开源的规范驱动开发(Spec-Driven Development, SDD)工具包,它通过将"规范变为可执行"的方式,彻底改变了传统的软件开发流程。
核心理念
传统开发流程:需求 → 编码 → 测试 → 文档
SpecKit 开发流程:规范 → AI 执行 → 自动实现 → 持续演进
主要特点
- 规范即源码:规范不再是一次性的设计文档,而是项目的核心资产
- AI 原生:深度集成 14+ 种 AI 编码助手(Claude Code, GitHub Copilot, Cursor 等)
- 结构化开发:通过明确的阶段和命令,确保开发过程可控、可追溯
- 开源免费:MIT 许可证,GitHub 28K+ stars
核心概念
Spec-Driven Development (SDD)
1. Spec-First(规范优先)
在开发之前编写详细的规范文档,用于指导 AI 辅助开发。
2. Spec-Anchored(规范锚定)
开发完成后保留规范,用于功能演进和维护。
3. Spec-as-Source(规范即源码)
规范成为唯一的源文件,人类只修改规范,AI 负责更新代码。
架构层次说明
1. 开发者层
- 开发者通过 CLI 或 AI 助手与 SpecKit 交互
- AI 助手负责理解规范并生成代码
2. SpecKit 核心
- Specify CLI: 命令行工具,提供项目初始化和检查功能
- Slash Commands: 结构化命令集,控制开发流程各阶段
- 模板系统: 提供标准化的文档模板
3. 规范体系
五个核心制品(Artifacts),形成完整的规范链:
- Constitution → Specification → Plan → Tasks → Implementation
4. 输出产物
根据规范自动生成的代码、测试和文档
核心组件
核心命令
/speckit.constitution
定义项目的不可协商规则和开发指南。
用途:
- 编码规范(代码风格、命名约定)
- 架构原则(DRY、SOLID 等)
- 安全要求
- 性能标准
- 测试策略
/speckit.specify
描述要构建的功能,关注"是什么"和"为什么"。
关键要素:
- 用户故事
- 功能需求
- 非功能需求
- 边界条件
- 验收标准
/speckit.clarify
通过系统化提问消除规范中的模糊性。
工作方式:
- AI 自动识别不明确的需求
- 提出具体的澄清问题
- 记录答案到 Clarifications 部分
/speckit.plan
制定技术实现方案,选择技术栈和架构。
包含内容:
- 技术栈选型
- 系统架构设计
- 数据模型设计
- API 设计
- 第三方集成方案
/speckit.tasks
将计划分解为可执行的独立任务。
任务特征:
- 原子性:每个任务独立完成一个功能点
- 可测试:每个任务都有明确的验证标准
- 有序性:任务按依赖关系排序
- 并行标记 :使用
[P]标记可并行执行的任务
/speckit.implement
执行所有任务,构建功能。
执行策略:
- 按照任务顺序逐个实现
- 在每个检查点验证测试通过
- 遵循 TDD(测试驱动开发)原则
工作流程:
- 读取
tasks.md - 按顺序执行每个任务
- 运行相关测试验证
- 记录实现进度
- 处理依赖关系
/speckit.analyze
验证规范、计划和任务之间的一致性。
检查项:
- 规范中的需求是否都有对应任务
- 任务是否符合技术方案
- 是否存在冲突或遗漏
工作流程
代码仓库 SpecKit CLI AI 助手 开发者 代码仓库 SpecKit CLI AI 助手 开发者 loop [每个任务] specify init my-project 创建 .speckit/ 目录 项目初始化完成 /speckit.constitution 生成 constitution.md 宪法文档已创建 /speckit.specify\n描述功能需求 生成 specification.md 规范文档已创建 /speckit.clarify 提出澄清问题 回答问题 更新 specification.md /speckit.plan 生成 plan.md 技术方案已创建 /speckit.tasks 生成 tasks.md 任务清单已创建 /speckit.implement 读取任务详情 生成测试代码 生成实现代码 运行测试验证 任务 X 完成 所有任务已完成 specify check 质量检查报告
安装与配置
-
Claude Code ,GitHub Copilot,Cursor, Gemini CLI 或其他的任何一种AI助手
-
uv安装
macOS/Linux: curl -LsSf https://astral.sh/uv/install.sh | sh Windows: pip install uv
SpecKit CLI
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
specify --version
项目初始化
创建新项目
# 初始化项目
specify init my-awesome-app #首次会让你选择AI助手,命令终端
#或者指定AI
specify init my-awesome-app --ai claude
#指定AI和终端((Windows/powershell)
specify init my-awesome-app --ai copilot --script ps
cd my-awesome-app
tree /F ./
生成的目录结构:
my-awesome-app/
├─.claude
│ └─commands
│ speckit.analyze.md
│ speckit.checklist.md
│ speckit.clarify.md
│ speckit.constitution.md
│ speckit.implement.md
│ speckit.plan.md
│ speckit.specify.md
│ speckit.tasks.md
│ speckit.taskstoissues.md
│
└─.specify
│ init-options.json
│
├─memory
│ constitution.md
│
├─scripts
│ └─powershell
│ check-prerequisites.ps1
│ common.ps1
│ create-new-feature.ps1
│ setup-plan.ps1
│ update-agent-context.ps1
│
└─templates
agent-file-template.md
checklist-template.md
constitution-template.md
plan-template.md
spec-template.md
tasks-template.md
配置 AI 助手
Claude Code 配置
在 Claude Code 中,SpecKit 的命令会自动识别,无需额外配置。
GitHub Copilot 配置
确保安装了 GitHub Copilot Chat 扩展,命令会自动可用。
Cursor 配置
- 打开 Cursor 设置
- 启用自定义命令支持
- SpecKit 命令会自动加载
使用指南
Step 1: 初始化项目
Step 2: 定义项目宪法
AI助手中执行/speckit.constitution
AI 会引导你定义项目原则,如一些基本的原则:
- 使用 C++ + QT
- 所有响应使用标准 JSON 格式
Step 3: 编写功能规范
执行:/speckit.specify
对于功能的描述和约束
Step 4: 澄清需求
执行:/speckit.clarify
细节描述
Step 5: 制定技术方案
执行:/speckit.plan
技术选型
Step 6: 分解任务
执行:/speckit.tasks
Step 7: 执行实现
执行:/speckit.implement
AI 会按照任务顺序逐个实现
持续演进策略
代码库 AI 助手 规范文档 开发者 用户 代码库 AI 助手 规范文档 开发者 用户 用户需求描述 完善需求 分解功能任务 规范保持最新\n代码自动生成 新需求:用户需求说明 更新 specification.md /speckit.plan 更新 plan.md /speckit.tasks 更新 tasks.md /speckit.implement 生成新代码 更新测试 实现完成