开放规格
OpenSpec 将人类和 AI 编码助手与规范驱动的开发结合起来,因此您在编写任何代码之前就构建内容达成一致。无需 API 密钥。
为什么选择 OpenSpec?
AI 编码助手功能强大,但当需求存在于聊天历史记录中时,它是不可预测的。OpenSpec 添加了一个轻量级规范工作流程,可在实施之前锁定意图,为您提供确定性、可审查的输出。
主要结果:
- 人类和人工智能利益相关者在工作开始前就规范达成一致。
- 结构化变更文件夹(提案、任务和规范更新)使范围保持明确且可审计。
- 共享对建议、活动或存档内容的可见性。
- 适用于您已经使用的 AI 工具:支持的自定义斜杠命令,其他任何地方的上下文规则。
OpenSpec 的比较(概览)
- 轻量级:简单的工作流程,无需 API 密钥,最少的设置。
- 棕地优先:在 0→1 之后效果很好。OpenSpec 将事实来源与提案分开:(当前真相)和(提议的更新)。这使得差异保持显式且易于跨功能管理。
openspec/specs/openspec/changes/ - 变更跟踪:提案、任务和规范增量同时存在;存档会将已批准的更新合并回规范中。
- 与 spec-kit 和 Kiro 相比:它们在全新功能方面大放异彩 (0→1)。OpenSpec 在修改现有行为 (1→n) 时也表现出色,尤其是当更新跨越多个规范时。
请参阅 OpenSpec 如何比较中的完整比较。
这个怎么运作
┌────────────────────┐
│ Draft Change │
│ Proposal │
└────────┬───────────┘
│ share intent with your AI
▼
┌────────────────────┐
│ Review & Align │
│ (edit specs/tasks) │◀──── feedback loop ──────┐
└────────┬───────────┘ │
│ approved plan │
▼ │
┌────────────────────┐ │
│ Implement Tasks │──────────────────────────┘
│ (AI writes code) │
└────────┬───────────┘
│ ship the change
▼
┌────────────────────┐
│ Archive & Update │
│ Specs (source) │
└────────────────────┘
1. Draft a change proposal that captures the spec updates you want.
2. Review the proposal with your AI assistant until everyone agrees.
3. Implement tasks that reference the agreed specs.
4. Archive the change to merge the approved updates back into the source-of-truth specs.
开始
支持的人工智能工具
原生斜杠命令
这些工具具有内置的 OpenSpec 命令。出现提示时选择 OpenSpec 集成。
| 工具 | 命令 |
|---|---|
| 克劳德代码 | /openspec:proposal, ,/openspec:apply/openspec:archive |
| CodeBuddy 代码 (CLI) | /openspec:proposal, , () — 见文档/openspec:apply/openspec:archive.codebuddy/commands/ |
| 共同严格 | /openspec-proposal, , () — 见文档/openspec-apply/openspec-archive.cospec/openspec/commands/ |
| 光标 | /openspec-proposal, ,/openspec-apply/openspec-archive |
| 克莱恩 | 目录中的规则 (.clinerules/.clinerules/openspec-*.md) |
| 粉碎 | /openspec-proposal, ,/openspec-apply/openspec-archive (.crush/commands/openspec/) |
| 工厂机器人 | /openspec-proposal, ,/openspec-apply/openspec-archive (.factory/commands/) |
| 开放代码 | /openspec-proposal, ,/openspec-apply/openspec-archive |
| Kilo Code | /openspec-proposal.md, ,/openspec-apply.md/openspec-archive.md (.kilocode/workflows/) |
| Qoder (CLI) | /openspec:proposal, , () — 见文档/openspec:apply/openspec:archive.qoder/commands/openspec/ |
| 帆板运动 | /openspec-proposal, ,/openspec-apply/openspec-archive (.windsurf/workflows/) |
| 食品 | /openspec-proposal, , (全局: , 自动安装)/openspec-apply/openspec-archive~/.codex/prompts |
| GitHub 副驾驶 | /openspec-proposal, ,/openspec-apply/openspec-archive (.github/prompts/) |
| Amazon Q 开发人员 | @openspec-proposal, ,@openspec-apply@openspec-archive (.amazonq/prompts/) |
| Auggie(增强 CLI) | /openspec-proposal, ,/openspec-apply/openspec-archive (.augment/commands/) |
| Qwen 代码 | /openspec-proposal, ,/openspec-apply/openspec-archive (.qwen/commands/) |
Kilo Code 自动发现团队工作流程。将生成的文件保存在下,然后从命令面板中使用 、 或 触发它们。.kilocode/workflows//openspec-proposal.md/openspec-apply.md/openspec-archive.md
AGENTS.md 兼容
这些工具会自动从 中读取工作流说明。如果他们需要提醒,请他们遵循 OpenSpec 工作流程。了解有关 AGENTS.md 约定的更多信息。openspec/AGENTS.md
| 工具 |
|---|
| 放大器 • Jules • Gemini CLI • 其他 |
安装和初始化
先决条件
- Node.js >= 20.19.0 – 使用
node --version
步骤 1:全局安装 CLI
npm install -g @fission-ai/openspec@latest
验证安装:
openspec --version
第 2 步:在项目中初始化 OpenSpec
导航到您的项目目录:
cd my-project
运行初始化:
openspec init
初始化期间会发生什么:
- 系统会提示您选择任何原生支持的 AI 工具(Claude Code、CodeBuddy、Cursor、OpenCode、Qoder 等);其他助手始终依赖共享存根
AGENTS.md - OpenSpec 会自动为您选择的工具配置斜杠命令,并始终在项目根目录下编写托管切换
AGENTS.md - 在项目中创建新的目录结构
openspec/
设置后:
- 主要 AI 工具无需额外配置即可触发工作流
/openspec - 运行以验证设置并查看任何活动更改
openspec list - 如果编码助手没有立即显示新的斜杠命令,请重新启动它。斜杠命令在启动时加载, 因此,新的发布确保它们出现
可选:填充项目上下文
完成后,你将收到一个建议的提示,以帮助填充项目上下文:openspec init
Populate your project context:
"Please read openspec/project.md and help me fill it out with details about my project, tech stack, and conventions"
用于定义项目级约定、标准、体系结构模式以及所有更改中应遵循的其他准则。openspec/project.md
创建您的第一个更改
这是一个真实的示例,展示了完整的 OpenSpec 工作流程。这适用于任何人工智能工具。那些具有本机斜杠命令的人将自动识别快捷方式。
1. 起草提案
首先要求您的 AI 创建变更提案:
You: Create an OpenSpec change proposal for adding profile search filters by role and team
(Shortcut for tools with slash commands: /openspec:proposal Add profile search filters)
AI: I'll create an OpenSpec change proposal for profile filters.
*Scaffolds openspec/changes/add-profile-filters/ with proposal.md, tasks.md, spec deltas.*
2. 验证和审查
检查更改是否正确创建,然后查看提案:
$ openspec list # Confirm the change folder exists
$ openspec validate add-profile-filters # Validate spec formatting
$ openspec show add-profile-filters # Review proposal, tasks, and spec delta
3. 完善规格
迭代规范,直到它们符合您的需求:
You: Can you add acceptance criteria for the role and team filters?
AI: I'll update the spec delta with scenarios for role and team filters.
*Edits openspec/changes/add-profile-filters/specs/profile/spec.md and tasks.md.*
4. 实施变革
一旦规格看起来不错,就开始实施:
You: The specs look good. Let's implement this change.
(Shortcut for tools with slash commands: /openspec:apply add-profile-filters)
AI: I'll work through the tasks in the add-profile-filters change.
*Implements tasks from openspec/changes/add-profile-filters/tasks.md*
*Marks tasks complete: Task 1.1 ✓, Task 1.2 ✓, Task 2.1 ✓...*
5. 存档已完成的更改
实现完成后,存档更改:
AI: All tasks are complete. The implementation is ready.
You: Please archive the change
(Shortcut for tools with slash commands: /openspec:archive add-profile-filters)
AI: I'll archive the add-profile-filters change.
*Runs: openspec archive add-profile-filters --yes*
✓ Change archived successfully. Specs updated. Ready for the next feature!
或者在终端中自己运行命令:
$ openspec archive add-profile-filters --yes # Archive the completed change without prompts
注意: 具有本机斜杠命令的工具(Claude Code、CodeBuddy、Cursor、Codex、Qoder)可以使用所示的快捷方式。所有其他工具都使用自然语言请求来“创建 OpenSpec 提案”、“应用 OpenSpec 更改”或“存档更改”。
命令参考
openspec list # View active change folders
openspec view # Interactive dashboard of specs and changes
openspec show <change> # Display change details (proposal, tasks, spec updates)
openspec validate <change> # Check spec formatting and structure
openspec archive <change> [--yes|-y] # Move a completed change into archive/ (non-interactive with --yes)
示例:AI 如何创建 OpenSpec 文件
当您要求您的 AI 助手“添加双因素身份验证”时,它会创建:
openspec/
├── specs/
│ └── auth/
│ └── spec.md # Current auth spec (if exists)
└── changes/
└── add-2fa/ # AI creates this entire structure
├── proposal.md # Why and what changes
├── tasks.md # Implementation checklist
├── design.md # Technical decisions (optional)
└── specs/
└── auth/
└── spec.md # Delta showing additions
AI 生成的规范(创建于):openspec/specs/auth/spec.md
# Auth Specification
## Purpose
Authentication and session management.
## Requirements
### Requirement: User Authentication
The system SHALL issue a JWT on successful login.
#### Scenario: Valid credentials
- WHEN a user submits valid credentials
- THEN a JWT is returned
AI 生成的变更增量(创建于):openspec/changes/add-2fa/specs/auth/spec.md
# Delta for Auth
## ADDED Requirements
### Requirement: Two-Factor Authentication
The system MUST require a second factor during login.
#### Scenario: OTP required
- WHEN a user submits valid credentials
- THEN an OTP challenge is required
AI 生成的任务(创建于):openspec/changes/add-2fa/tasks.md
## 1. Database Setup
- [ ] 1.1 Add OTP secret column to users table
- [ ] 1.2 Create OTP verification logs table
## 2. Backend Implementation
- [ ] 2.1 Add OTP generation endpoint
- [ ] 2.2 Modify login flow to require OTP
- [ ] 2.3 Add OTP verification endpoint
## 3. Frontend Updates
- [ ] 3.1 Create OTP input component
- [ ] 3.2 Update login flow UI
重要:您不会手动创建这些文件。您的 AI 助手会根据您的要求和现有代码库生成它们。
了解 OpenSpec 文件
增量格式
增量是显示规范如何变化的“补丁”:
## 新增要求– 新功能## 修改要求– 更改行为(包括完整的更新文本)## 已删除要求– 已弃用的功能
格式要求:
- 用于标头
### Requirement: <name> - 每个需求至少需要一个块
#### Scenario: - 在要求文本中使用 SHALL/MUST
OpenSpec 如何比较
与规格套件
OpenSpec 的双文件夹模型(对于当前事实,用于建议的更新)将状态和差异分开。当您修改现有功能或接触多个规格时,这会缩放。spec-kit 对于 greenfield/0→1 来说很强大,但为跨规范更新和不断发展的功能提供了较少的结构。openspec/specs/openspec/changes/
与 Kiro.dev
OpenSpec 将功能的所有更改分组到一个文件夹 () 中,从而可以轻松地将相关规格、任务和设计一起跟踪。Kiro 将更新分布在多个规范文件夹中,这会使功能跟踪变得更加困难。openspec/changes/feature-name/
与无规格
如果没有规范,人工智能编码助手会根据模糊的提示生成代码,通常会缺少要求或添加不需要的功能。OpenSpec 通过在编写任何代码之前就所需的行为达成一致来带来可预测性。
团队采用
- 初始化 OpenSpec – 在存储库中运行。
openspec init - 从新功能开始 – 要求您的 AI 将即将进行的工作捕获为变更提案。
- 逐步增长 – 每次更改都会存档到记录您的系统的动态规范中。
- 保持灵活性 – 不同的队友可以使用 Claude Code、CodeBuddy、Cursor 或任何与 AGENTS.md 兼容的工具,同时共享相同的规格。
每当有人切换工具时运行,以便您的代理获取最新的指令和斜杠命令绑定。openspec update
更新 OpenSpec
- 升级套餐
npm install -g @fission-ai/openspec@latest
- 刷新代理说明
- 在每个项目中运行以重新生成 AI 指导,并确保最新的斜杠命令处于活动状态。
openspec update
- 在每个项目中运行以重新生成 AI 指导,并确保最新的斜杠命令处于活动状态。
贡献
- 安装依赖项:
pnpm install - 建:
pnpm run build - 测试:
pnpm test - 在本地开发 CLI:或
pnpm run devpnpm run dev:cli - 常规提交(单行):
type(scope): subject


没有回复内容