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-Driven 工作流(以Claude Code为例)
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来检查一下:
-
优势:基础开发环境已完备(无需额外配置即可用)
核心依赖 Git 和常用 IDE VS Code 已安装,后续使用 specify-cli 的基础功能(如创建项目、关联 IDE、版本控制)时无需额外补装工具,可直接上手。
Claude Code CLI 已可用,若你需要 AI 辅助编写 spec 文件(如自动生成 spec.yaml 配置),可直接调用该功能,提升效率。 -
可补充点:非核心工具按需安装(不影响基础使用)
若后续需要使用某类扩展功能,可针对性安装缺失工具,例如:
需用 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:Specify 命令 - 功能规范创建
目标:明确项目需求和规格
核心作用:将自然语言功能描述转化为结构化技术规范
执行机制:
自动扫描现有规范,确定下一个功能编号(如003)
创建语义化分支名(如 003-user-management-system)
基于规范模板生成结构化文档
创建 specs/003-user-management-system/spec.md
自动生成内容:
用户场景和测试:基于描述生成的用户交互流程
功能需求:每个需求都必须可测试和明确
关键实体:如果涉及数据,识别核心数据实体
验收标准:明确的成功标准和完成定义
执行命令,使用/specify命令描述你要构建的内容:
- 专注于什么和为什么,而不是技术栈
- 描述用户旅程和体验
- 定义成功标准
审查和修改,执行/specify命令后,Claude Code会生成详细的规格文档(spec.md)需要审查并修改:
重点关注:
- 业务逻辑准确性:是否符合你的业务需求
- 功能完整性:是否遗漏重要功能
- 边界条件:错误处理、异常情况
- 性能要求:响应时间、并发用户数等
- 安全要求:认证、授权、数据保护
阶段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
这里写的很清楚啦,下一步要做的事是:
│ 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,一经查实,立即删除!