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 生成新代码 更新测试 实现完成

相关推荐
vkv55884 小时前
我做了一个自媒体多平台发布工具:支持 AI 生成、账号管理、自动登录与批量发布
人工智能·媒体
IT_陈寒4 小时前
React hooks依赖数组这个坑差点把我埋了
前端·人工智能·后端
我科绝伦(Huanhuan Zhou)4 小时前
分享一个服务故障自愈系统
运维·人工智能·自动化
做个文艺程序员4 小时前
Spring AI + Qwen3.5 实现多步 Agent:从工具调用到自主任务拆解的踩坑全记录
java·人工智能·spring
波动几何5 小时前
极简万能通用AI Agent:universal-agent
人工智能
行者-全栈开发5 小时前
腾讯地图 Map Skills 快速入门:从零搭建 AI 智能行程规划应用
人工智能·typescript·腾讯地图·ai agent·mcp 协议·map skills·智能行程规划
彩虹编程5 小时前
通俗讲解LTN中的非逻辑符号、连接词、量词
人工智能·神经符号
DoUfp0bgq5 小时前
解决RDK X5(ARM64架构)板卡Remote-SSH运行Antigravity AI崩溃(SIGILL):Samba网络盘本地挂载方案
人工智能·架构·ssh
小小小怪兽5 小时前
⛏️深入RAG
人工智能·langchain
Kel5 小时前
Pi Monorepo Stream Event Flow 深度分析
人工智能·架构·node.js