Spec Kit 终结AI瞎写代码

Spec Kit 终结AI瞎写代码

告别AI胡说八道!GitHub开源神器SpecKit来了!
先去看看这个教程吧:

目录
  • spec-kit是什么?
    • 核心理念(SDD 四个关键词)
    • SpecKit组成与目录结构
    • SpecKit典型适用场景
  • 安装过程
  • 完整工作流程
    • 阶段0:Build(构建):目标:设置项目环境和初始化Spec-Kit
    • 阶段1:Specify 命令 - 功能规范创建
    • 阶段2:Plan 命令 - 实现计划生成
    • 阶段3:Tasks命令 - 任务列表生成
    • 阶段4:Implement(实现)
  • 具体使用
    • Spec-Driven 工作流(以Claude Code为例)
      • 1. 初始化一个 spec 项目<PROJECT_NAME>(核心功能,依赖 Git 已可用)

spec-kit是什么?

Spec-Kit 是一套微软发布的“规格驱动开发(Spec-Driven Development, SDD)”工具包,方法论 + 脚手架 + CLI + 模板:把“规格→计划→任务→实现”的流程标准化,并把这些步骤做成可执行的斜杠命令,让 Claude Code / Copilot / Gemini CLI 等代理有章可循,而不是即兴“凭感觉写代码”。核心组件是 Specify CLI(命令:specify),用于初始化模板、生成命令、校验环境等。目标是把“先写清楚规格/意图,再规划,再拆任务,最后由 AI 代理实现”的流程产品化,替代一把梭的大Prompt“vibe coding”。

Spec-Kit有什么用呢:

  • 让“写什么/为什么”(Spec)先于“怎么做”(Plan/Tasks/Impl),减少返工;
  • 给代理提供统一的“宪法”和护栏(安全、质量、SLO、禁行区等);
  • 产出一套可追溯的工件与目录结构(如 .specify/、任务清单、计划文档等)。

核心理念(SDD 四个关键词)

  • Intent first:明确要做“什么/为什么”,再谈实现细节;
  • Rich specs:用结构化的规格与检查清单约束 AI;
  • Multi-step refinement:多阶段收敛替代一次性大Prompt;
  • Model-agnostic control:与多种代理协同但不绑定技术栈。

SpecKit组成与目录结构

仓库主要包含:src/specify_cli(CLI)、templates/(规格/计划/任务模板)、scripts/(自动化脚本)、memory/(团队“宪法/准则”文档)、docs/ 等。初始化后项目下还会生成 specs// 的规范与计划树。

典型初始化后的目录示例:

your-project/
├── .specify/                   # Spec Kit 配置目录(v0.0.34+)
│   ├── memory/                 # 项目知识库
│   │   ├── constitution.md     # 项目宪法(九大架构原则)
│   │   └── constitution_update_checklist.md
│   ├── scripts/                # 自动化脚本
│   │   └── powershell/         # PowerShell脚本版本
│   │       ├── create-new-feature.ps1
│   │       ├── setup-plan.ps1
│   │       ├── check-task-prerequisites.ps1
│   │       ├── common.ps1
│   │       ├── get-feature-paths.ps1
│   │       └── update-agent-context.ps1
│   └── templates/              # 模板文件
│       ├── spec-template.md    # 规范模板
│       ├── plan-template.md    # 计划模板
│       ├── tasks-template.md   # 任务模板
│       └── agent-file-template.md # AI助手配置模板
├── specs/                      # 功能规范目录(用户创建的规范)
│   └── 001-feature-name/       # 自动编号的功能目录
│       ├── spec.md             # 功能规范
│       ├── plan.md             # 实现计划
│       ├── research.md         # 技术研究
│       ├── data-model.md       # 数据模型
│       ├── contracts/          # API契约
│       ├── quickstart.md       # 快速验证指南
│       └── tasks.md            # 任务列表
└── CLAUDE.md                   # AI助手配置(自动生成)

目录结构更新说明:从 v0.0.34 版本开始,Spec Kit 将配置文件和脚本统一放在 .specify/ 隐藏目录中,以避免与用户项目文件冲突并提供更清晰的项目结构。

SpecKit典型适用场景

新功能开发:完整的四阶段流程,适合复杂功能开发
Bug修复:简化流程,重点关注测试和验证
代码重构:先明确规格,再进行重构
API设计:详细的规格定义和测试用例
团队协作:规格文档作为团队沟通的统一语言
项目交接:完整的规格和文档便于项目移交

它的核心用途集中在三方面:

  • 项目初始化:快速生成带规范目录(如 .specify/ 、 specs/ 、 scripts/ )和模板的项目骨架,无需手动搭建基础结构。
  • 流程标准化:Specify(规格化) → Plan(规划) → Tasks(任务分解) → Implement(实现)
    提供 /speckit.constitution (定项目原则)、 /speckit.specify (写功能规格)、 /speckit.plan (出技术方案)等一系列斜杠命令,覆盖从需求澄清到任务拆解的全流程。
  • 一致性保障:通过 /speckit.analyze 等命令检查需求文档、技术方案、任务列表之间的矛盾或遗漏,避免开发偏离目标,同时支持并行任务识别,提升开发效率。

安装过程

安装命令:

uv tool install specify-cli --from git+https://github.com/github/spec-kit.git#如果提示错误:
Command 'uv' not found, but can be installed with:
sudo snap install astral-uv# 安装完成后,验证是否成功(查看 uv 版本)
uv --version
uv 0.8.17 (10960bc13 2025-09-10)#(base) root@Desktop-CLF:~# uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
/ has 'other' write 40757
# 以 root 身份修复根目录权限(仅保留必要权限,移除其他用户的写入权)​
sudo chmod 755 /
# 修复后验证权限是否正确(应显示 drwxr-xr-x)​
ls -ld /
drwxr-xr-x 25 root root 4096 Oct  8 17:41 /
#若仍显示 40757 或包含 w 权限,重新执行 sudo chmod 755 / 确保生效(部分系统需重启终端刷新权限缓存)

官网地址:https://github.com/github/spec-kit

安装完成后,可以用specify check来检查一下:
image

  1. 优势:基础开发环境已完备(无需额外配置即可用)​
    核心依赖 Git 和常用 IDE VS Code 已安装,后续使用 specify-cli 的基础功能(如创建项目、关联 IDE、版本控制)时无需额外补装工具,可直接上手。​
    Claude Code CLI 已可用,若你需要 AI 辅助编写 spec 文件(如自动生成 spec.yaml 配置),可直接调用该功能,提升效率。​

  2. 可补充点:非核心工具按需安装(不影响基础使用)​
    若后续需要使用某类扩展功能,可针对性安装缺失工具,例如:​
    需用 Google Gemini 辅助开发:安装 Gemini CLI(参考官方文档 gcloud components install gemini-cli);​
    常用 Cursor IDE:安装 Cursor 后,通过 specify check 会自动识别 Cursor IDE agent,支持 specify open --ide=cursor 直接唤起。

#如何切换AI后端?A: 可以通过配置文件修改:
# .spec-kit/config.yml
ai_backend: claude  # 可选: claude, gemini, copilot
#规范文件存储在哪里?A: 默认存储在项目根目录的.spec-kit/specs/目录下。

完整工作流程

参考上面的视频教程,也可以看这2篇文章:
入门:https://zhuanlan.zhihu.com/p/1959040296479339345
重点阅读:https://blog.csdn.net/thinktodo1998/article/details/151832870

阶段0:Build(构建):目标:设置项目环境和初始化Spec-Kit

  1. 按照上述安装步骤完成环境配置
  2. 确认所有命令可用
  3. 准备开始规格驱动开发

阶段1:Specify 命令 - 功能规范创建

目标:明确项目需求和规格
核心作用:将自然语言功能描述转化为结构化技术规范

执行机制:
自动扫描现有规范,确定下一个功能编号(如003)
创建语义化分支名(如 003-user-management-system)
基于规范模板生成结构化文档
创建 specs/003-user-management-system/spec.md

自动生成内容:
用户场景和测试:基于描述生成的用户交互流程
功能需求:每个需求都必须可测试和明确
关键实体:如果涉及数据,识别核心数据实体
验收标准:明确的成功标准和完成定义

执行命令,使用/specify命令描述你要构建的内容:

  1. 专注于什么和为什么,而不是技术栈
  2. 描述用户旅程和体验
  3. 定义成功标准

审查和修改,执行/specify命令后,Claude Code会生成详细的规格文档(spec.md)需要审查并修改:
重点关注:

  1. 业务逻辑准确性:是否符合你的业务需求
  2. 功能完整性:是否遗漏重要功能
  3. 边界条件:错误处理、异常情况
  4. 性能要求:响应时间、并发用户数等
  5. 安全要求:认证、授权、数据保护

阶段2:Plan 命令 - 实现计划生成

目标:制定技术实现计划
核心作用:读取功能规范,生成详细的技术实现计划

执行机制:
读取和分析功能规范中的需求、用户故事和验收标准
读取项目宪法确保架构合规性
执行计划模板的9个阶段流程
在specs目录生成多个设计文档

自动生成的文档:
plan.md - 详细实现计划和架构决策
research.md - 技术选型研究和决策依据
data-model.md - 完整的数据模型设计
contracts/ - OpenAPI规范和事件定义
quickstart.md - 关键验证场景和设置指南

执行命令,使用/plan命令提供技术实现规划
审查技术计划,Claude Code会生成详细的技术计划,包括:
架构设计:系统整体架构
技术栈选择:前后端技术栈
数据库设计:数据模型和关系
API端点规划:RESTful API设计
部署策略:部署和运维方案

/plan — 出技术实施方案(How)
指定技术栈、架构、接口契约、数据模型,生成 plan.md / contracts/ / research.md / quickstart.md 等实施细节。

阶段3:Tasks命令 - 任务列表生成

目标:将规格和计划分解为可执行任务
核心作用:分析设计文档,生成按依赖关系排序的可执行任务列表

执行机制:
读取plan.md获取技术栈和库信息
如果存在,读取data-model.md、contracts/、research.md
根据可用文档生成相应任务
创建依赖排序和并行执行指导

任务生成规则:
每个契约文件 → 契约测试任务 [P](可并行)
每个数据实体 → 模型创建任务 [P](可并行)
每个API端点 → 实现任务(如果共享文件则串行)
每个用户故事 → 集成测试任务 [P](可并行)

任务列表管理,生成的任务列表需要你:
优先级排序:调整任务执行顺序
任务细化:对复杂任务进一步分解
依赖关系:确认任务间的依赖关系

/tasks — 拆成可验证的小任务并实施
生成可执行的任务列表与分支命名,驱动代理逐项提交实现与测试

设置任务 → 测试任务 → 实现任务 → 集成任务 → 完善任务↓         ↓          ↓          ↓          ↓T001      T002       T005       T008       T010T003      T004       T006       T009       T011T007                             T012## 任务列表### 设置阶段
- **T001**: 项目初始化和依赖安装
- **T002**: 代码检查和格式化配置### 测试阶段(可并行执行)
- **T003 [P]**: WebSocket事件契约测试
- **T004 [P]**: REST API契约测试
- **T005 [P]**: 用户模型单元测试### 实现阶段
- **T006**: 实现用户认证服务
- **T007**: 实现聊天室管理服务
- **T008**: 实现WebSocket消息处理### 并行执行示例
```bash
# 可以同时运行的任务组
Group 1: T003, T004, T005
Group 2: T010, T011, T012

阶段4:Implement(实现)

目标:基于TDD原则实现代码
代码生成原则,让Claude生成代码时遵循:
必须先写测试(TDD原则)
获得测试批准后再生成实现代码
通过迭代测试和审查完善代码

执行编程工作,最后,开始一键执行实现(会按依赖顺序执行任务、调用本地 CLI、TDD 流程等)
/speckit.implement
这些标记[P]的task,都是claude code可以用task agent并行执行的。
spec-kit也只有支持并行的claude code可以玩转。否则就是痛苦的等待。

以上命令与阶段是 Spec-Kit 的标准路径;执行后可在 specs/<编号-特性名>/ 下看到 spec.md / plan.md / tasks.md / data-model.md / contracts/* 等产物。
这个流程就比较长了。不过claude code很好的一点是,他可以并行。

具体使用

Spec-Driven 工作流(以Claude Code为例)

1. 初始化一个 spec 项目<PROJECT_NAME>(核心功能,依赖 Git 已可用)

#进入项目:
cd <PROJECT_NAME>#方式一:创建新项目
# 依赖: Python、uv、Git、以及你要用的 AI 代理(如 Claude Code/Gemini CLI/Copilot),
uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME> #使用默认AI后端# 创建时指定AI助手 Claude Code(推荐)
uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME> --ai claude# GitHub Copilot
uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME> --ai copilot# Gemini CLI
uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME> --ai gemini# Cursor
uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME> --ai cursor#方式二:在现有项目中初始化
# 在当前目录初始化Spec-Kit,指定Claude Code(推荐):
# 使用Claude Code(推荐)
specify init --here --ai claude# 使用GitHub Copilot
specify init --here --ai copilot# 使用Google Gemini
specify init --here --ai gemini# 使用Cursor
specify init --here --ai cursor# 在当前目录就地初始化(目录非空时可加 --force)
specify init . --ai claude --script ps
specify init --here --force --ai claude --script ps# 本机还没装 claude / 或被公司环境拦截时,跳过检测强行拉模板
specify init my-feature --ai claude --script ps --ignore-agent-tools

初始化后,会生成 .specify/、templates/、specs/、scripts/ 等目录与模版,且模板会自动注入一组 /speckit.* 的斜杠命令供代理使用。可用 specify check 自检依赖。

这里我用的是一个已有项目,使用specify init --here --ai claude, Do you want to continue? [y/N]: y
image
image
image

这里写的很清楚啦,下一步要做的事是:
│ 1. You're already in the project directory! │
│ 2. Start using slash commands with your AI agent: │
│ 2.1 /speckit.constitution - Establish project principles │
│ 2.2 /speckit.specify - Create baseline specification │
│ 2.3 /speckit.plan - Create implementation plan │
│ 2.4 /speckit.tasks - Generate actionable tasks │
│ 2.5 /speckit.implement - Execute implementation │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

╭──────────────────────────────────────────────── Enhancement Commands ────────────────────────────────────────────────╮
│ │
│ Optional commands that you can use for your specs (improve quality & confidence) │
│ │
│ ○ /speckit.clarify (optional) - Ask structured questions to de-risk ambiguous areas before planning (run before │
│ /speckit.plan if used) │
│ ○ /speckit.analyze (optional) - Cross-artifact consistency & alignment report (after /speckit.tasks, before │
│ /speckit.implement) │
│ ○ /speckit.checklist (optional) - Generate quality checklists to validate requirements completeness, clarity, and │
│ consistency (after /speckit.plan)

所以,依次在 Claude Code 里发送这些命令(每条回车执行):
1)建立项目原则(生成/更新 .specify/memory/constitution.md)
/speckit.constitution

2)撰写功能规格(不要先纠结技术栈,专注要做什么 & 为什么)
/speckit.specify

3)结构化澄清需求
/speckit.clarify

4)产出技术实现方案
这一步再指定技术栈、架构
/speckit.plan

5)从实现方案拆解成任务列表
/speckit.tasks

6)检查一致性
对当前特性的所有工件做一次一致性/覆盖率体检——检查 constitution.md、spec.md、plan.md、tasks.md 之间是否互相矛盾、是否遗漏关键验收项/边界条件,是否存在范围蔓延、不可实现或未落地到任务的条目等。
/speckit.analyze

以上做完后,会留存下一系列文件,也就是常态化存储。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/174188.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年R系列斜齿轮减速机厂家最新推荐:R系列斜齿轮减速机/F系列平行轴齿轮减速机/K系列螺旋斜齿轮减速机/S系列蜗轮减速机实力厂家精准传动解决方案

在工业自动化蓬勃发展的今天,减速机作为机械传动系统的核心部件,其性能优劣直接影响设备运行效率与稳定性。R系列斜齿轮减速机凭借结构紧凑、传动效率高、承载能力强等优势,已成为工业设备升级换代的首选传动方案。…

2025化工泵厂家权威推荐榜:磁力泵/多级泵/高温泵/混流泵/浆液泵/螺杆泵/陶瓷泵/脱硫泵/旋涡泵/液下泵/轴流泵/自吸泵厂家,高效节能与耐用品质实力之选

在化工行业高质量发展的背景下,化工泵作为生产流程中的核心装备,其性能表现直接关系到生产效率和运营成本。随着环保政策趋严和节能要求提升,高效节能与耐用品质已成为化工泵选型的关键指标。为帮助行业用户筛选优质…

课程作业

课程作业这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/25rjjc这个作业的目标 介绍自己并确立课程目标姓名-学号 潘均昊 2023329301031自我介绍: 大家好,我是浙江理工大学2023级自动化1班的潘均昊,我是…

task2.c

task2.cinclude <stdio.h> int main() { double a, b, c; scanf_s("%lf%lf%lf" , &a, &b, &c); if (a + b > c and a + c > b and b + c > a)printf("能构成三角形\n"…

SpringCloud实用篇02-(Nacos配置管理,Feign远程调用,Gateway服务网关) - a

SpringCloud实用篇02-(Nacos配置管理,Feign远程调用,Gateway服务网关) 目录SpringCloud实用篇02-(Nacos配置管理,Feign远程调用,Gateway服务网关)0.学习目标1.Nacos配置管理1.1.统一配置管理1.1.1.在nacos中添…

reLeetCode 热题 100- 76 最小覆盖串 - MKT

reLeetCode 热题 100- 76 最小覆盖串 自己 滑动窗 class Solution { public: // 自己第一个 5% 时间满 内存64% 动态滑动窗string minWindow1(string s, string t) {if(s.size()<t.size()){return "";}v…

SpringCloud-01(认识微服务,服务拆分和远程调用,Eureak注册中心,Ribbon负载均衡,Nacos注册中心) - a

SpringCloud01 目录SpringCloud011.认识微服务1.0.学习目标1.1.单体架构1.2.分布式架构1.3.微服务1.4.SpringCloud1.5.总结2.服务拆分和远程调用2.1.服务拆分原则2.2.服务拆分示例2.2.1.导入Sql语句2.2.2.导入demo工程…

task.1_2.c

task.1_2.c//task1_2.c include <stdio.h> int main() { printf("%s\t%s\t\n"," 0"," 0"); printf("%s\t%s\t\n","", ""); printf("%s\t%s\t…

使用Quarkus构建首个Keycloak MCP服务器实战指南

本文详细介绍了如何使用Quarkus框架构建一个基于Model Context Protocol的Keycloak管理服务器,包含完整的代码实现、工具定义和部署流程,帮助开发者理解MCP协议在实际项目中的应用。A Keycloak示例 - 使用Quarkus构建…

AI数据管道同步引擎技术解析

本文详细介绍了一种新型数据同步引擎技术,它能够整合分布式计算服务,构建统一数据层,解决非结构化数据接入AI管道的难题,通过并行架构支持快速扩展,降低企业AI应用成本。某机构SyncEngine助力AI代理获取多源非结构…

20232427 2025-2026-1 《网络与系统攻防技术》实验一实验报告

一、实验目的 篡改程序流程——直接修改可执行文件,跳转至getShell; 栈溢出攻击——利用foo函数的缓冲区溢出漏洞,覆盖返回地址触发getShell; Shellcode注入——构造恶意输入注入自定义Shellcode并执行。 二、基础…

PWN手的成长之路-11-CISCN 2019华北 PWN1-栈溢出

远程连接以下靶机,看看交互。file 查看程序文件。checksec 查看程序文件安全属性。开启了 NX 保护,栈上不可执行。IDA 打开程序文件。查看 ain 函数,发现调用了 func 函数。查看 func 函数。这里需要判断 v2 是否等…

sensitive-word:一个简单易用的敏感词过滤框架

这篇文章,分享一个开源项目:sensitive-word 。Github 地址:https://github.com/houbb/sensitive-wordsensitive-word 是一个功能强大的 Java 敏感词过滤框架,它不仅提供了基础的敏感词检测功能,还支持单词标签分类…

如何使用 ManySpeech 调用 SenseVoiceSmall 模型

一、模型与组件简介SenseVoice 模型多语言音频理解开源模型,支持语音识别、语种识别、情感识别等功能,适用于中、粤、英、日、韩等语言。 ManySpeech.AliParaformerAsrC# 语音识别推理库,支持 paraformer-large、pa…

国庆假期总结

🎉国庆总览🎉 学习🎯被学习充满的假期真是太充实(无聊)了机器学习。学习了吴恩达的机器学习,看了一百多集,实践做了小部分,我感觉到只学习到了皮毛,难的。其实只是选修课而已在这个学期,但是我想这是专业…

2025浇注型聚氨酯厂家最新推荐榜:聚氨酯胶黏剂/聚氨酯胶辊/聚氨酯制品/聚氨酯原料/液体聚氨酯/聚氨酯浇注料/聚氨酯ABC料/浇筑聚氨酯/聚氨酯预聚物全场景实力厂家

在当今工业材料领域,浇注型聚氨酯作为一种高性能弹性体材料,因其优异的耐磨性、耐油性和机械强度,在机械制造、矿山设备、印刷包装等行业得到广泛应用。随着市场需求持续增长,如何从众多厂家中筛选出优质供应商成为…

动态张量运算自动优化技术解析

本文介绍了一种名为DietCode的新型自动调度器,能够高效处理动态形状的张量运算,将优化过程加速6倍以上,同时使生成代码性能提升高达70%,显著提升机器学习工作效率。自动优化动态张量运算的执行 深度学习模型核心依…

多线程插入也是随机io,那为啥不用uuid

多线程插入也是随机io,那为啥不用uuid首先,并发写入确实是随机io,但是uuid带来的页分裂更恶劣 而多线程并发写入有序id,操作系统有办法优化老实说ds说的有点牵强

[论文阅读]PPT: Backdoor Attacks on Pre-trained Models via Poisoned Prompt Tuning - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

10. 模型与视图

一、模型与视图模型/视图架构包含三部分:模型(Model)是应用对象,用来表示数据;视图(View)是模型的用户界面,用来显示数据;委托(Delegate,也被称为 代理)可以定制数据的渲染和编辑方式。通过数据和界面进行…