🚀 OpenSpec完全指南:AI编程助手的规范驱动开发工具
详细介绍OpenSpec这个规范驱动开发工具,如何帮助人类和AI编程助手在编写代码前就达成共识,实现确定性和可审查的输出。涵盖安装、配置、使用流程和最佳实践。
📋 前言
AI编程助手虽然功能强大,但当需求分散在聊天历史中时,输出结果往往难以预测。OpenSpec通过轻量级的规范工作流,在开始编写代码前就锁定意图,为你提供确定性的、可审查的输出结果。
OpenSpec是一个开源项目,由Fission AI开发,旨在统一人类和AI编程助手对要构建内容的理解。本文将全面介绍OpenSpec的功能特性、安装方法、使用流程以及最佳实践,帮助你提升AI辅助开发的效率和质量。
🔍 OpenSpec简介
什么是OpenSpec?
OpenSpec是一个规范驱动开发工具,专门为AI编程助手设计。它通过结构化的变更文件夹(提案、任务和规范更新)来保持范围的明确性和可审计性,让人类和AI利益相关者在工作开始前就达成一致。
核心价值
🎯 统一理解:
- ✅ 人类和AI在开始工作前对规范达成一致
- ✅ 结构化的变更文件夹保持范围明确
- ✅ 提供共享可见性,了解提案、活跃或已归档的内容
🔧 工具集成:
- ✅ 支持你已使用的AI工具:自定义斜杠命令和上下文规则
- ✅ 无需API密钥,轻量级设置
- ✅ 适用于现有项目(棕色领域优先)
🚀 核心特性
1. 轻量级工作流
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| ┌────────────────────┐ │ Draft Change │ │ Proposal │ └────────┬───────────┘ │ share intent with your AI │ ▼ └────────────────────┘ ┌────────────────────┐ │ Review & Align │ │ Review & Align │ │ (edit specs/tasks) │◀──── feedback loop ──────┐ └────────┬───────────┘ └────────┬───────────┘ │ │ approved plan │ ▼ │ ┌────────────────────┐ │ │ Implement Tasks │──────────────────────────┘ │ (AI writes code) │ └────────┬───────────┘ │ ship the change ▼ ┌────────────────────┐ │ Archive & Update │ │ Specs (source) │ └────────────────────┘
|
2. 与其他工具的对比
| 特性 |
OpenSpec |
spec-kit |
Kiro |
| 适用场景 |
棕色领域(1→n) |
绿色领域(0→1) |
绿色领域(0→1) |
| 安装难度 |
⭐⭐⭐⭐⭐ |
⭐⭐⭐ |
⭐⭐⭐ |
| API密钥需求 |
❌ |
✅ |
✅ |
| 变更跟踪 |
✅ 完整 |
⭐⭐ 基础 |
⭐⭐ 基础 |
| 跨规范更新 |
✅ 优秀 |
⭐⭐ 受限 |
⭐⭐ 受限 |
🛠️ 支持的AI工具
原生斜杠命令支持
这些工具内置了OpenSpec命令,选择OpenSpec集成即可使用:
| 工具 |
命令 |
| Claude Code |
/openspec:proposal, /openspec:apply, /openspec:archive |
| Cursor |
/openspec-proposal, /openspec-apply, /openspec-archive |
| OpenCode |
/openspec-proposal, /openspec-apply, /openspec-archive |
| Kilo Code |
/openspec-proposal.md, /openspec-apply.md, /openspec-archive.md |
| Windsurf |
/openspec-proposal, /openspec-apply, /openspec-archive |
| Codex |
/openspec-proposal, /openspec-apply, /openspec-archive |
| GitHub Copilot |
/openspec-proposal, /openspec-apply, /openspec-archive |
| Amazon Q Developer |
@openspec-proposal, @openspec-apply, @openspec-archive |
AGENTS.md兼容工具
这些工具自动从openspec/AGENTS.md读取工作流指令:
- Amp • Jules • Gemini CLI • 其他工具
🚀 安装与初始化
前置条件
- Node.js >= 20.19.0 - 运行
node --version 检查版本
步骤1:全局安装CLI
1 2 3 4 5
| npm install -g @fission-ai/openspec@latest
openspec --version
|
步骤2:在项目中初始化OpenSpec
1 2 3 4 5
| cd my-project
openspec init
|
初始化过程:
- 📝 提示选择原生支持的AI工具
- 🔧 自动配置所选工具的斜杠命令
- 📁 创建openspec/目录结构
- 📄 在项目根目录写入管理的AGENTS.md存根
验证设置
1 2 3 4 5 6 7 8
| openspec list
openspec list
openspec doctor
|
🎯 完整工作流程示例
1. 创建提案
向AI助手请求创建变更提案:
1 2 3 4 5
| You: Create an OpenSpec change proposal for adding profile search filters by role and team
/openspec:proposal Add profile search filters
|
AI操作:
- 创建
openspec/changes/add-profile-filters/文件夹
- 生成
proposal.md、tasks.md和规范差异文件
2. 验证和审查
1 2 3 4 5 6 7 8
| openspec list
openspec validate add-profile-filters
openspec show add-profile-filters
|
3. 优化规范
迭代规范直到符合需求:
1 2 3 4
| 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. # 编辑 openspec/changes/add-profile-filters/specs/profile/spec.md 和 tasks.md
|
4. 实施变更
规范就绪后开始实施:
1 2 3 4
| You: The specs look good. Let's implement this change.
# 使用斜杠命令 /openspec:apply add-profile-filters
|
AI操作:
- 从
openspec/changes/add-profile-filters/tasks.md实施任务
- 标记任务完成:Task 1.1 ✓, Task 1.2 ✓, Task 2.1 ✓…
5. 归档完成的变更
实施完成后归档变更:
1 2 3 4
| You: Please archive the change
/openspec:archive add-profile-filters
|
或手动执行:
1
| openspec archive add-profile-filters --yes
|
结果:
1
| ✓ Change archived successfully. Specs updated. Ready for the next feature!
|
📁 目录结构
AI生成的OpenSpec文件结构
当请求AI助手”添加双因素认证”时,会创建:
1 2 3 4 5 6 7 8 9 10 11 12
| openspec/ ├── specs/ │ └── auth/ │ └── spec.md # 当前认证规范(如果存在) └── changes/ └── add-2fa/ # AI创建的完整结构 ├── proposal.md # 为什么和什么变更 ├── tasks.md # 实施检查清单 ├── design.md # 技术决策(可选) └── specs/ └── auth/ └── spec.md # 显示增量的差异
|
AI生成的规范示例
openspec/specs/auth/spec.md:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| # Auth Specification
## Purpose Authentication and session management.
## Requirements
### Requirement: User Authentication The system SHALL issue a JWT on successful authentication.
### Requirement: Two-Factor Authentication The system SHALL support TOTP-based two-factor authentication.
## Implementation Details
### JWT Configuration - Algorithm: RS256 - Expiration: 24 hours - Issuer: your-app.com
|
🔧 命令参考
基础命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| openspec list
openspec view
openspec show <change>
openspec validate <change>
openspec archive <change> [--yes|-y]
|
高级命令
1 2 3 4 5 6 7 8 9 10 11
| openspec doctor
openspec init --force
openspec --help
openspec --version
|
🎯 使用场景和最佳实践
1. 功能开发
适用场景:新功能开发、现有功能扩展
工作流程:
- 需求分析 → 创建详细的功能提案
- 技术设计 → 规范技术实现细节
- 任务分解 → 将功能拆分为可执行任务
- 代码实施 → AI按照任务逐项实现
- 质量审查 → 验证实现符合规范
- 变更归档 → 将更新合并到主规范
2. Bug修复
适用场景:复杂Bug修复、系统问题排查
最佳实践:
1 2 3 4 5 6 7 8
| /openspec:proposal Fix user authentication timeout issue
|
3. 重构项目
适用场景:代码重构、架构优化
重构工作流:
- 现状分析 → 详细描述当前架构问题
- 目标设计 → 定义重构后的理想状态
- 迁移计划 → 制定分阶段重构策略
- 风险控制 → 识别和缓解重构风险
- 实施验证 → 逐步验证重构效果
4. API设计
适用场景:新API开发、API版本升级
API设计规范:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| # API Specification: User Management
## Endpoints
### GET /api/users - Purpose: Retrieve user list - Authentication: Required - Parameters: page, limit, filter - Response: User array with pagination
### POST /api/users - Purpose: Create new user - Authentication: Required - Request Body: User creation data - Response: Created user object
|
🔧 高级配置
项目级配置
创建openspec/config.yaml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| project: name: "my-awesome-project" version: "1.0.0"
tools: claude_code: enabled: true commands: - proposal - apply - archive cursor: enabled: true
workflow: auto_validate: true require_review: true archive_on_complete: true
templates: feature: "templates/feature-proposal.md" bugfix: "templates/bugfix-proposal.md" refactor: "templates/refactor-proposal.md"
|
团队协作配置
共享规范模板:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <!-- templates/feature-proposal.md --> # Feature Proposal: {{feature_name}}
## Overview {{feature_description}}
## Requirements ### Functional Requirements - {{req_1}} - {{req_2}}
### Non-Functional Requirements - {{nfr_1}} - {{nfr_2}}
## Acceptance Criteria - [ ] Criteria 1 - [ ] Criteria 2
## Implementation Tasks 1. [ ] Task 1 2. [ ] Task 2
## Testing Plan - Unit tests - Integration tests - Manual testing
|
CI/CD集成
GitHub Actions工作流:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| name: OpenSpec Validation
on: pull_request: paths: - 'openspec/**'
jobs: validate-specs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4
- name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20'
- name: Install OpenSpec run: npm install -g @fission-ai/openspec@latest
- name: Validate OpenSpec changes run: | for change in $(openspec list --format json | jq -r '.active_changes[]'); do openspec validate "$change" done
|
🛠️ 故障排除
常见问题及解决方案
Q1: 初始化失败
问题:openspec init 命令失败
解决方案:
1 2 3 4 5 6 7 8 9 10 11 12
| node --version
npm cache clean --force
npm uninstall -g @fission-ai/openspec npm install -g @fission-ai/openspec@latest
ls -la $(npm config get prefix)/bin/openspec
|
Q2: 斜杠命令不工作
问题:AI工具无法识别OpenSpec斜杠命令
解决方案:
1 2 3 4 5 6 7 8 9 10
| openspec init --force
cat openspec/AGENTS.md
ls -la .windsurf/workflows/ ls -la .kilocode/workflows/ ls -la .github/prompts/
|
Q3: 规范验证失败
问题:openspec validate 报告格式错误
解决方案:
1 2 3 4 5 6 7 8
| openspec validate <change-name> --verbose
openspec show <change-name> --structure
openspec generate-template --type feature > openspec/changes/<change-name>/proposal.md
|
Q4: 归档操作失败
问题:openspec archive 无法完成
解决方案:
1 2 3 4 5 6 7 8
| openspec list
openspec show <change-name> --tasks
openspec archive <change-name> --force --yes
|
调试技巧
启用详细日志:
1 2 3 4 5 6
| export OPENSPEC_DEBUG=true export OPENSPEC_LOG_LEVEL=debug
openspec list --verbose
|
检查项目状态:
1 2 3 4 5
| openspec doctor --verbose
openspec integrations --check
|
📊 最佳实践建议
1. 规范写作原则
CLEAR原则:
- Concise(简洁) - 规范应该简洁明了
- Logical(逻辑) - 保持逻辑一致性
- Executable(可执行) - 规范必须可实施
- Auditable(可审查) - 变更历史可追踪
- Reviewable(可审查) - 易于人工审查
2. 团队协作流程
代码审查集成:
1 2 3 4 5
| echo "OpenSpec changes included in this PR:" > pull-request-template.md echo "- [ ] Review proposal.md" >> pull-request-template.md echo "- [ ] Validate tasks.md" >> pull-request-template.md echo "- [ ] Check spec deltas" >> pull-request-template.md
|
版本控制最佳实践:
1 2 3 4 5 6 7 8 9
| echo "openspec/changes/*/temp/" >> .gitignore echo "openspec/changes/*/draft/" >> .gitignore
git add openspec/specs/ git add openspec/changes/*/proposal.md git add openspec/changes/*/tasks.md git commit -m "feat: add user authentication spec"
|
3. 质量保证
自动化检查:
1 2 3
| openspec validate --all || exit 1 openspec lint --strict || exit 1
|
人工审查清单:
🔗 相关资源
官方资源
集成工具
相关规范和标准
🎉 总结
OpenSpec通过规范驱动开发的方式,为AI辅助编程带来了革命性的改进。它不仅解决了AI输出不可预测的问题,还建立了人类与AI协作的标准化流程。
核心价值回顾
✅ 统一理解 - 在编码前就达成共识
✅ 结构化管理 - 变更历史清晰可追踪
✅ 工具集成 - 支持主流AI开发工具
✅ 质量保证 - 通过规范确保输出质量
✅ 团队协作 - 标准化的协作流程
快速开始命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| npm install -g @fission-ai/openspec@latest
cd your-project openspec init
/openspec:proposal Add user authentication
/openspec:apply add-user-authentication
/openspec:archive add-user-authentication
|
关键成功因素
- 规范优先 - 始终先定义清晰的规范
- 迭代完善 - 通过反馈循环持续改进规范
- 工具熟练 - 掌握支持的AI工具的集成方式
- 团队协作 - 建立团队级的规范管理流程
- 持续改进 - 根据使用经验优化工作流程
开始使用OpenSpec,让你的AI编程助手更加可预测、可控制、可审查!
🚀 开启规范驱动的AI编程新纪元!