SpecKit学习

什么是 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(测试驱动开发)原则

工作流程

  1. 读取 tasks.md
  2. 按顺序执行每个任务
  3. 运行相关测试验证
  4. 记录实现进度
  5. 处理依赖关系
/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 配置
  1. 打开 Cursor 设置
  2. 启用自定义命令支持
  3. 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 生成新代码 更新测试 实现完成

相关推荐
xu_ws2 小时前
Spring-ai项目-deepseek-6-哄哄模拟器
java·人工智能·spring
喵叔哟2 小时前
0.【.NET10 实战--孢子记账--产品智能化】--目录
人工智能·微服务·.net
萌兰三太子2 小时前
企业级 AI 智能体平台安全沙箱在 E2B 中的实现
人工智能·安全
sensen_kiss2 小时前
INT305 Coursework2 用卷积神经网络训练CIFAR-10数据集以进行图像识别
人工智能·神经网络·机器学习·cnn
一起来学吧2 小时前
【OpenClaw系列教程】第二篇:OpenClaw 是什么? 开源AI智能体平台
人工智能·ai·openclaw
qq_454245032 小时前
规则AI与大模型的认知互补:从游戏智能体到通用智能的边界探索
人工智能·游戏
L-影2 小时前
从野蛮生长到精耕细作:AI中的Scaling Law正在开启新篇章(下篇)
人工智能·ai·scaling law
掘金安东尼2 小时前
本地模型怎么玩?把 .GGUF 丢 进 LM Studio 跑起来
人工智能