news 2026/7/23 21:58:03

OpenSpec:规范驱动AI编程新范式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OpenSpec:规范驱动AI编程新范式

OpenSpec 详解与 Course 结合使用指南

一、OpenSpec 是什么

OpenSpec是由 Fission AI 团队发起的轻量级开源规范驱动开发(Spec-Driven Development, SDD)框架和命令行工具(CLI),核心理念是先写规格(Spec),再写代码,专为 AI 辅助编程场景设计。

核心定位与价值

  • 解决 AI 编程中需求模糊、幻觉、需求偏移问题,将散落在聊天记录中的需求固化为结构化规范
  • 提供可审查、可追溯、确定性的 AI 开发工作流,让人类开发者主导,AI 严格执行
  • 无需 API 密钥、极简配置、广泛兼容主流 AI 编码工具(Cursor、Claude Code、GitHub Copilot 等)
  • 采用双文件夹模型
    • openspec/specs/:当前系统真实行为规范(事实来源 Source of Truth
    • openspec/changes/:正在提议的更新(变更提案

核心工作流(5 阶段)

  1. 创建变更提案(proposal):明确需求与目标
  2. 编写并审核规范(spec):细化技术方案、约束条件
  3. AI 实施(implementation):AI 基于规范生成/修改代码
  4. 测试验证(validation):验证代码符合规范要求
  5. 归档与更新规范(archival):将变更合并到主规范中

二、OpenSpec 安装与基础使用

1. 安装(Node.js 环境)

# 全局安装最新版本npminstall-g @fission-ai/openspec@latest# 验证安装成功openspec --version

2. 初始化项目

# 在现有项目根目录执行初始化openspec init# 生成目录结构your-project/ └── openspec/ ├── specs/# 存放主规范文件│ └── README.md └── changes/# 存放变更提案

3. 核心命令

命令功能
openspec init初始化 OpenSpec 目录结构
openspec new <proposal-name>创建新的变更提案
openspec apply <change-id>应用变更提案并更新主规范
openspec list列出所有变更提案及其状态
openspec archive <change-id>归档已完成的变更提案

三、详细使用示例(完整实战)

React+TypeScript 项目添加用户登录组件为例

示例 1:创建变更提案并编写规范

  1. 创建新提案

    openspec new feature/add-login-component

    自动生成文件:openspec/changes/20260113-feature-add-login-component/

  2. 编写规范文件(spec.md

    # 功能:添加用户登录组件 ## 项目上下文 - 技术栈:React 18+TypeScript+Tailwind CSS - 现有架构:组件采用函数式+hooks,表单使用 React Hook Form ## 需求与目标 1. 实现登录表单(用户名+密码) 2. 支持表单验证(必填、密码最小长度 6) 3. 实现登录按钮与提交逻辑(调用 /api/login 接口) 4. 显示登录状态与错误提示 ## 约束条件 - 组件名:LoginForm(PascalCase) - 样式:使用 Tailwind CSS,遵循项目现有设计规范 - 安全:密码输入框使用 type="password",不显示明文 - 可测试:添加单元测试(Jest+React Testing Library)

示例 2:AI 实施与代码生成(结合 Claude Code)

  1. 将规范提供给 Claude Code 并生成代码

    # 调用 Claude CLI,传入规范文件catopenspec/changes/20260113-feature-add-login-component/spec.md|claude code
  2. Claude 生成符合规范的代码(示例简化版)

    // src/components/LoginForm.tsx import React from 'react'; import { useForm } from 'react-hook-form'; interface LoginFormInputs { username: string; password: string; } const LoginForm: React.FC=() => { const { register, handleSubmit, formState: { errors } }=useForm<LoginFormInputs>(); const onSubmit=(data: LoginFormInputs) => { // 调用登录 API fetch('/api/login', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(data) }); }; return ( <form onSubmit={handleSubmit(onSubmit)} className="space-y-4 p-6"> <div> <label>用户名</label> <input {...register('username', { required: '用户名必填' })} className="w-full p-2 border rounded" /> {errors.username && <p className="text-red-500">{errors.username.message}</p>} </div> <div> <label>密码</label> <input type="password" {...register('password', { required: '密码必填', minLength: { value: 6, message: '密码至少 6 位' } })} className="w-full p-2 border rounded" /> {errors.password && <p className="text-red-500">{errors.password.message}</p>} </div> <button type="submit" className="w-full bg-blue-500 text-white p-2 rounded">登录</button> </form> ); }; export default LoginForm;

示例 3:验证与归档

  1. 测试代码符合规范要求(单元测试、手动测试)
  2. 应用变更并更新主规范
    # 获取变更 ID(查看列表)openspec list# 应用变更openspec apply20260113-feature-add-login-component# 归档变更openspec archive20260113-feature-add-login-component
  3. 主规范openspec/specs/components.md自动更新,添加 LoginForm 组件规范

OpenSpec 不仅是 AI 辅助编程的工具,更是一种规范驱动的开发理念

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/22 0:09:16

DLSS Swapper:3分钟学会游戏性能优化神器

DLSS Swapper&#xff1a;3分钟学会游戏性能优化神器 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper是一款专为游戏玩家设计的智能工具&#xff0c;能够帮助用户轻松管理、下载和切换游戏中的DLSS、FSR以…

作者头像 李华
网站建设 2026/7/2 2:02:05

8大网盘直链下载神器:告别限速烦恼,实现全速下载体验

8大网盘直链下载神器&#xff1a;告别限速烦恼&#xff0c;实现全速下载体验 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改&#xff08;改自6.1.4版本&#xff09; &#xff0c;自用&#xff0c;去…

作者头像 李华
网站建设 2026/7/21 21:15:42

DLSS调校大师课:用版本管理解锁游戏画质新境界

DLSS调校大师课&#xff1a;用版本管理解锁游戏画质新境界 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 还在为游戏DLSS版本选择而纠结吗&#xff1f;想要在不同游戏间灵活切换最佳画质表现&#xff1f;DLSS Swapper…

作者头像 李华
网站建设 2026/7/23 9:26:03

MediaPipe Holistic创新应用:智能驾驶疲劳检测

MediaPipe Holistic创新应用&#xff1a;智能驾驶疲劳检测 1. 引言&#xff1a;从全息感知到安全驾驶的跨越 随着智能驾驶技术的快速发展&#xff0c;驾驶员状态监测系统&#xff08;Driver Monitoring System, DMS&#xff09;已成为提升行车安全的关键环节。传统DMS多依赖于…

作者头像 李华
网站建设 2026/7/20 21:22:44

DLSS版本管理终极指南:快速上手DLSS Swapper工具

DLSS版本管理终极指南&#xff1a;快速上手DLSS Swapper工具 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 想要轻松管理游戏中的DLSS版本&#xff1f;DLSS Swapper正是你需要的终极解决方案。这款专为游戏玩家设计的…

作者头像 李华
网站建设 2026/7/20 19:00:57

ESP32 ADC模块精度探究:模拟输入硬件限制

挖掘ESP32 ADC的真实能力&#xff1a;从“标称12位”到实际可用精度的实战解析你有没有遇到过这样的情况&#xff1f;明明用的是ESP32&#xff0c;代码写得没问题&#xff0c;ADC读数却像跳动的火焰——同一电压反复测量&#xff0c;结果上下波动几百毫伏&#xff1b;不同开发板…

作者头像 李华