开源工具包,将规格文档变成可执行产物直接驱动AI编码Agent,而非传统开发中规格只是代码的"脚手架"。支持主流AI编程助手集成,提供基于角色的预设配置。
Spec-Driven Development 颠覆了传统软件开发模式。几十年来,代码一直是主角——规格说明书不过是脚手架,一旦"真正"的编码工作开始就被丢弃了。Spec-Driven Development 改变了这一点:规格说明书变成了可执行的,直接生成可工作的实现,而不是仅仅指导实现过程。
Spec-Driven Development 颠覆了传统软件开发模式。几十年来,代码一直是主角——规格说明书不过是脚手架,一旦"真正"的编码工作开始就被丢弃了。Spec-Driven Development 改变了这一点:规格说明书变成了可执行的,直接生成可工作的实现,而不是仅仅指导实现过程。
Spec Kit 支持 30+ AI 编程 Agent——既有 CLI 工具也有基于 IDE 的助手。完整的列表及使用说明详见 Supported AI Coding Agent Integrations 指南。
运行 specify integration list 可以查看当前安装版本中所有可用的集成。
运行 specify init 后,你的 AI 编程 Agent 将可以访问这些斜杠命令来进行结构化开发。对于支持 skills 模式的集成,传入 --integration <agent> --integration-options="--skills" 会安装 agent skills 而非斜杠命令提示文件。
Spec-Driven Development 工作流的核心命令:
增强质量与验证的额外命令:
完整的命令详情、选项和示例,参阅 CLI Reference。
Spec Kit 通过两个互补的系统——扩展(extensions)和预设(presets)——以及项目本地覆盖机制来满足你的需求:
模板在运行时解析——Spec Kit 自顶向下遍历栈,使用第一个匹配项。
项目本地覆盖(.specify/templates/overrides/)允许你对单个项目进行一次性调整,而无需创建完整的预设。
扩展/预设命令在安装时应用——当你运行 specify extension add 或 specify preset add 时,命令文件会被写入 agent 目录(例如 .claude/commands/)。
如果多个预设或扩展提供同一命令,优先级最高的版本获胜。移除时,下一个最高优先级的版本会自动恢复。
如果没有覆盖或自定义,Spec Kit 使用其核心默认值。
当你需要超出 Spec Kit 核心的功能时使用扩展。扩展引入新的命令和模板——例如,添加核心 SDD 命令未覆盖的领域特定工作流、集成外部工具,或添加全新的开发阶段。它们扩展了 Spec Kit 能做的事。
# 搜索可用的扩展
specify extension search
# 安装一个扩展
specify extension add <extension-name>
例如,扩展可以添加 Jira 集成、实现后代码审查、V-Model 测试可追溯性,或项目健康诊断。
参阅 Extensions 参考以获取完整的命令指南。浏览社区扩展看看有什么可用。
当你想要改变 Spec Kit 的工作方式而不添加新能力时使用预设。预设覆盖核心和已安装扩展附带的模板和命令——例如,强制执行合规导向的规格格式、使用领域特定术语,或将组织标准应用于计划和任务。它们自定义 Spec Kit 及其扩展产生的产物和指令。
# 搜索可用的预设
specify preset search
# 安装一个预设
specify preset add <preset-name>
例如,预设可以重构规格模板以要求法规可追溯性、使工作流适应你所使用的方法论(例如敏捷、看板、瀑布、jobs-to-be-done 或领域驱动设计)、向计划添加强制性安全审查关卡、强制执行测试优先的任务排序,或将整个工作流本地化为不同语言。pirate-speak 演示展示了定制可以有多深入。多个预设可以堆叠并设置优先级顺序。
参阅 Presets 参考以获取完整的命令指南,包括解析顺序和优先级堆叠。
扩展和预设是独立的构建块。Bundle 将它们打包——连同步骤和工作流——成一个单一的版本化、角色导向的配置,这样整个团队角色(产品经理、业务分析师、安全研究员、开发者……)只需一条命令就可以完成配置。
Bundle 由一个手写的 bundle.yml 清单描述。它将每个组件固定到特定版本,并可选择针对特定集成;没有集成的 bundle 是中立的,继承项目已有的任何集成。
# 在当前目录栈中发现 bundle
specify bundle search [<query>]
# 检查 bundle 将添加的确切组件集(等同于 install 所做的)
specify bundle info <bundle-id>
# 一次性安装 bundle 的完整组件集
specify bundle install <bundle-id>
# 查看已安装的内容,然后非破坏性地更新或移除
specify bundle list
specify bundle update <bundle-id> # 或 --all
specify bundle remove <bundle-id> # 只移除此 bundle 的组件
Bundle 从优先级排序的目录栈中解析(项目 > 用户 > 内置)。每个源携带一个安装策略:install-allowed 源可以被安装,而 discovery-only 源在搜索/信息中可见但拒绝安装。用 specify bundle catalog list|add|remove 管理栈。
作者在本地验证和打包 bundle。分发方式是托管构建产物并添加一个目录源;社区 bundle 提交使用 Bundle Submission issue 模板,以便审查所需的组件目录和安装证据:
specify bundle validate --path ./my-bundle # 结构 + 引用检查
specify bundle build --path ./my-bundle # 生成版本化的 .zip 产物
四个可直接阅读的示例 bundle 清单位于 examples/bundles/ 下(产品经理、业务分析师、安全研究员、开发者)。这些是 bundle 打包示例,不是填充好的生成特性规格;端到端的社区示例参阅社区演练。
关键保证:info 精确显示 install 会添加什么(透明性);安装是幂等的且仅限于项目根目录;remove 永远不会触碰另一个已安装 bundle 仍需要的组件;所有 consume/author 命令都可离线针对本地或固定源工作。
Spec-Driven Development 是一个强调以下要点的结构化过程:
对于现有项目,将 Spec Kit 工具更新与特性产物演进分开:在升级时刷新托管的项目文件,在预期行为改变时更新 specs/ 产物。Evolving Specs 指南描述了推荐的 Brownfield 循环。
我们的研究和实验聚焦于:
技术独立性
企业约束
用户中心开发
创意与迭代过程
需要 uv(安装 uv)。将 vX.Y.Z 替换为 Releases 中的最新发布标签——保留前导 v(例如 v0.12.11,而非 0.12.11):
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@vX.Y.Z
更喜欢从 PyPI 安装?specify-cli 包也在那里发布:
uv tool install specify-cli
参阅 Installation Guide 了解替代方法、验证、升级和故障排除。
specify init my-project --integration copilot
cd my-project
要检查更新或升级已安装的 CLI,使用自管理命令。参阅 Upgrade Guide 了解详细场景和自定义选项。
# 检查是否有更新的版本可用(只读——不修改任何内容)
specify self check
# 预览将要运行的内容,而不实际升级
specify self upgrade --dry-run
# 原地升级到最新稳定版本(自动检测 uv tool vs pipx 安装)
specify self upgrade
# 或固定到特定发布标签(将 vX.Y.Z[suffix] 替换为你想要的发布标签)
specify self upgrade --tag vX.Y.Z[suffix]
单独的 specify self upgrade 立即执行,匹配 pip install -U 和 npm update 等命令的无提示行为。对于 uv tool 安装,它在底层运行 uv tool install specify-cli --force --from <git ref>,因此固定发布标签有效,包括 dev、alpha/beta/rc 或构建元数据后缀。uvx(临时)运行和源代码检出会被检测到并产生路径特定的指导,而不是运行安装程序。设置 SPECIFY_UPGRADE_TIMEOUT_SECS 以限制安装程序子进程可以运行的时间(默认:无超时——如需要用 Ctrl+C 中断)。
在项目目录中启动你的编程 Agent。大多数 Agent 将 spec-kit 公开为 /speckit.* 斜杠命令;Codex CLI 和 Command Code 在 skills 模式下使用 $speckit-*;GitHub Copilot CLI 使用 /agents 选择 Agent 或直接在提示中寻址。
使用 /speckit.constitution 命令创建你项目的治理原则和开发指南,它们将指导所有后续开发。
/speckit.constitution Create principles focused on code quality, testing standards, user experience consistency, and performance requirements
使用 /speckit.specify 命令描述你想要构建的内容。聚焦于"什么"和"为什么",而不是技术栈。
/speckit.specify Build an application that can help me organize my photos in separate photo albums. Albums are grouped by date and can be re-organized by dragging and dropping on the main page. Albums are never in other nested albums. Within each album, photos are previewed in a tile-like interface.
使用 /speckit.plan 命令提供你的技术栈和架构选择。
/speckit.plan The application uses Vite with minimal number of libraries. Use vanilla HTML, CSS, and JavaScript as much as possible. Images are not uploaded anywhere and metadata is stored in a local SQLite database.
使用 /speckit.tasks 从你的实现计划创建可操作的任务列表。
/speckit.tasks
使用 /speckit.implement 执行所有任务并根据计划构建你的特性。
/speckit.implement
详细的分步说明,参阅我们的综合指南。
想看 Spec Kit 的实际运作?观看我们的视频概览!

在 Spec Kit 文档站点探索社区贡献的资源:
社区贡献由各自作者独立创建和维护。安装前审查源代码,风险自负。
想贡献?参阅 Extension Publishing Guide、Presets Publishing Guide 或 Community Bundles 指南。
如果遇到 Agent 问题,请提交 issue,以便我们优化集成。
如需支持,请提交 GitHub Issue。我们欢迎错误报告、功能请求以及关于使用 Spec-Driven Development 的问题。
这个项目深受 John Lam 的工作和研究影响。
本项目根据 MIT 开源许可证的条款授权。请参阅 LICENSE 文件了解完整条款。