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.mzph.cn/news/932136.shtml

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

相关文章

长宁网站建设优化seowordpress高级检索插件

动态规划的算法题往往都是各大公司笔试题的常客。在不少算法类的微信公众号中&#xff0c;关于“动态规划”的文章屡见不鲜&#xff0c;都在试图用最浅显易懂的文字来描述讲解动态规划&#xff0c;甚至有的用漫画来解释&#xff0c;认真读每一篇公众号推送的文章实际上都能读得…

怎么知道网站有没有被收录嘉定西安网站建设

1、 文档目标 对 JTAG 接口有更多的认识&#xff0c;在遇到关于 JTAG 接口问题时有一些排查的思路。 2、 问题场景 在使用调试器过程时&#xff0c;免不了要接触到 JTAG 接口&#xff0c;当出现连接不上时&#xff0c;就不知道从哪来进行排查。 3、软硬件环境 1 软件版本&am…

广西住房和城乡建设厅网站证件谷歌推广怎么样

Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分。文本总是Unicode&#xff0c;由str类型表示&#xff0c;二进制数据则由bytes类型表示。Python 3不会以任意隐式的方式混用str和bytes&#xff0c;正是这使得两者的区分特别清晰。你不能拼接字符串和字节…

公司网站建设怎么计费2021跨境电商最火的产品

目录 一、v-show二、v-if2.1 基本使用2.2 条件渲染分组2.3 与 v-else-if、v-else 结合使用 三、v-if vs v-show四、测试案例 本节条件渲染所涉及到的指令有&#xff1a; v-showv-ifv-else-ifv-else 一、v-show 1. 用法&#xff1a; 语法: v-show" 表达式"&#xff…

做搜狗网站点击WordPress图片上传最大尺寸

第一段 第二段 实现思路 通过 GestureDetector 的 Drag 方法&#xff0c;动态改变Dialog的高度&#xff0c;通过设置一个最大高度和最小高度分成两层进行展示 实现 常用的展示BottomSheet的方法为 showModalBottomSheet /// 设置最高最好以高度的比例进行设置&#xff0c;方…

12388网站建设管理情况PHP网站开发与管理设计心得

基本使用TortoiseGit 操作本地仓库(分支) 分支的概念 几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来&#xff0c;避免影响开发主线。多线程开发,可以同时开启多个任务的开发&#xff0c;多个任务之间互不影响。 为何要…

莒南做网站网站建设技术的实现

第十三题讲解人&#xff1a;张小龙 8.23邮箱&#xff1a;2304940425qq.com一&#xff0e;什么是final?final是java中的一个关键字&#xff0c;可以用来修饰变量、方法和类。用关键词final修饰的域成为最终域。用关键词final修饰的变量一旦赋值&#xff0c;就不能改变&…

做网站的如何找业务常州网上车管所

在 Web.config 中创建数据库连接串我们需要在网站的配置文件中增加一些行&#xff0c;以便 Entity Framework 知道如何连接到我们的数据库&#xff0c;双击Web.config 文件。 卷到文件的最后&#xff0c;然后增加一个 <connectionStrings> 的配置节&#xff0c;如何所示&…

嘉兴网站建设企业网站制作军事新闻大事

原标题&#xff1a;2018河南高考一分一段统计表&#xff0c;查排名必备&#xff01;&#xff1a;点击这里信息省招办公布了2018年普通高招分数段统计表&#xff0c;对每个分数段有多少考生进行了详细统计。你考了多少分&#xff1f;处在哪个位置&#xff1f;快来看看&#xff0…

网站访问量过大jsp网站开发制作

在医疗器械行业找工作&#xff0c;有些JD上会明确要求熟悉相关的医疗器械法规和标准&#xff0c;比如&#xff1a;ISO13485、NMPA、CE、IEC62304、IEC60601、IEC14971等等&#xff0c;根据这些我来简单总结下&#xff1a; ISO 13485&#xff08;医疗器械质量管理体系&#xff0…

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

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

什么网站专做外贸dedecms wap网站模板下载

原帖由 WHITLACK 于 2009-9-28 08:48 发表 针对某个文件&#xff0c;如何设置权限&#xff0c;可以禁止删除&#xff1f;文件权限的r-w-x好像不能禁止删除的啊&#xff0c;谢谢指教&#xff01;1:使用粘滞位可以做到,下面是介绍.强制位与冒险位、粘滞位针对u&#xff0c;g&…

电商网站功能介绍vs做网站怎么放视频

这几天看dronekit&#xff0c;做无人机失控保护。 PX4官网上的经典案例&#xff0c;我做了很多注解&#xff0c;把代码过了一遍。 无人机具体执行了&#xff1a; 先起飞&#xff0c;飞至正上空10m->向北移动10m->向东移动10m->向南移动10m->向西移动10m->回到初…

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

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

深圳最好的网站建设公司哪家好做网站网站的推广是不是犯罪的

掌握&#xff1a;消息队列机制、打开/创建消息队列、发送消息、接收消息 1 消息队列 消息队列是System V IPC对象的一种 消息队列由消息队列ID来唯一标识 消息队列就是一个消息的列表。用户可以在消息队列中添加消息、读取消息等 消息队列可以按照类型来发送/接收消息 消…

建站公司电话淘宝店铺做网站收录

原标题&#xff1a;9针rs232串口接线图以及接线方法九针串口即RS-232接口&#xff0c;个人计算机上的通讯接口之一&#xff0c;由电子工业协会(Electronic Industries AssociaTIon&#xff0c;EIA) 所制定的异步传输标准接口。通常 RS-232 接口以9个引脚 (DB-9) 或是25个引脚 (…

做国内打不开的网站现在帮人做网站赚钱吗

What’s more 山东大学 2020级数据库系统 实验一 山东大学 2020级数据库系统 实验二 山东大学 2020级数据库系统 实验三 山东大学 2020级数据库系统 实验四 山东大学 2020级数据库系统 实验五 山东大学 2020级数据库系统 实验六 山东大学 2020级数据库系统 实验七 山东大学 20…

最便宜的货源网站大全2级a做爰片免费网站

全卷积神经网络FCN整体概述 FCN是首个端对端针对像素级预测的全卷积网络。FCN会用到分类网络作为backbone FCN的网络结构类比分类网络 分类网络经过卷积操作后&#xff0c;接全连接层&#xff0c;最后一个全连接层输出长度与分类类别数量相同&#xff0c;最后经过softmax得到术…

宝安品牌网站制作江苏外协机械加工网

介绍 上一节中&#xff0c;我们介绍了protobuf&#xff0c;简单来说&#xff0c;它是一种消息数据格式&#xff0c;其作用类似于json&#xff0c;但是比json的使用效率要高。 除此以外&#xff0c;我们介绍了protobuf的简单使用&#xff0c;也就是如何可以像使用json一样&…

车票网站模板网站建设项目经验怎么写

一、CS与BS的差异 二、Tomcat Tomcat :web container 可执行文件目录 配置文件 部署项目的一个文件夹&#xff08;现在不怎么用这种方法&#xff09; 在webapp中&#xff0c;可以创建自己的web项目&#xff1a; 里面需要包含一个文件夹&#xff1a;WEB-INF以及自己的网页 之后…