OpenSpec-基于SDD规格驱动开发

概述

官方网址:github.com/openspec-cn...

OpenSpec 是一款专为 AI 编程设计的规范驱动开发框架‌,核心是让开发者和 AI 在写代码前先对齐需求,避免"凭感觉聊天"导致的返工。它通过结构化规范把模糊提示变成可审查的工程计划,比vibe coding更详述。有如下特点:

  • 可以让项目更加规范/规格,按照需求文档去逐步,并循序渐近的做开发。
  • 融合了一部分 Harness Engineering(驾驭工程) 的特性
  • 特别适合长期维护的项目

类似OpenSpec规范驱动的开发模式的框架很多,比如: github官方的spec-kitsuperpowers,不过笔者推荐看官们用OpenSpec,因为轻量级,更适合多人协作,代码接班人易于上手。

快速安装

bash 复制代码
npm install @openspeccn/openspec --registry=https://registry.npmjs.org

在vscode中使用openspec

  1. 切换到vscode,并创建空项目文件夹,同时在vscode中打开终端,比如openspec-dev
  2. 打到vs code的终端命令行工具,输入如下命令
python 复制代码
# 开始前请角保检查文件夹为项目文件夹
npx okcode #claude code 信任该目录
openspec init #初始化openspec
  1. 回车选择openspec对应工具
  1. 按Enter(回车)选中对应的工具
  2. 再按Tab键确认
  3. 系统继续安装出现如下信息表示安装完成
  1. 检查安装情况 - 打开项目文件夹,会多出有如下两个文件夹, 说明安装成功

开始使用

OpenSpec文件夹说明

  • .claude

    • /opsx: explore - 通过AI探索产品的新功能/新方案 - 一般在开始项目前使用,以此为基础生成产品规格文档,要比传统AI生成产品文档更详细
    • /opsx:new - 开始新的变更 - 旧版为propose
    • /opsx:archive - 项目打包归档
    • /opsx:apply - 实施任务
  • openspec

    • changes/archive/ - 主要用于记录所有的操作历史

    • specs/

    • config.yaml - 项目的全局配置文件,可以定义内容,比如技术方案,样式等作为后期交互开发的参考该

初始化使用

关闭claude code界面与vs的终端, 选中"config.yaml"文件,点右上角的Claude code的图标。

产品探索 - opsx:explore命令

在claude code 控制台输入 '/opsx:...'

bash 复制代码
/opsx:explore 开发一款理财记帐,主要功能是记录消费与记录收入

选Yes,输出信息如下:

shell 复制代码
进入了探索模式 🧭 当前是个干净的 OpenSpec 工作区,没有正在进行的变更,也没有现成的 spec。这正好是一个自由发散的起点。

让我先把你提到的核心场景可视化一下,看看从哪里展开讨论:

┌─────────────────────────────────────────────────┐
│             理财记账 · 核心概念图                 │
├─────────────────────────────────────────────────┤
│                                                 │
│   用户                                          │
│     │                                           │
│     ▼                                           │
│   ┌────────────────┐    ┌─────────────────┐     │
│   │   记录收入      │    │   记录消费      │     │
│   │ (工资/转账/...) │    │ (餐饮/交通/...) │     │
│   └────────┬───────┘    └─────────┬────────┘    │
│            │                      │             │
│            └──────────┬───────────┘             │
│                       ▼                         │
│              ┌──────────────────┐               │
│              │   交易记录流      │               │
│              │   (一笔交易)      │               │
│              └────────┬─────────┘               │
│                       ▼                         │
│              ┌──────────────────┐               │
│              │   统计/视图       │               │
│              │ (日/周/月/年)     │               │
│              └──────────────────┘               │
│                                                 │
└─────────────────────────────────────────────────┘
不过"理财记帐"这几个字背后藏着不少岔路口,每个都会显著影响后续的设计。我想先抛几个自然产生的问题,让你顺着感兴趣的线索聊:

**1. 形态与场景** 这是给**自己一个人**随手记的小本子,还是要支持**多用户/家庭/室友**共用?是要做一个 **App(iOS/Android)** ,还是 **Web 端**,还是先做一个 **本地小工具** 跑起来就行?

**2. "理财"这个词的重量** 
-   轻量:纯粹的收支流水,类似一本电子账本
-   中等:在收支之上加入**预算/分类统计/趋势图**
-   重型:还要做**资产账户、信用卡、转账、债务、报表**

**3. 钱的形式** 只关心**单币种**(人民币)就行,还是会涉及多币种?会有**多个账户**(现金/银行卡/支付宝/微信)的概念吗?

**4. 最让你兴奋的"那一刻"** 想象用户用得最开心的瞬间------是一秒记下一笔消费?是月底看见一张漂亮图表?还是发现"哎,这个月奶茶花了 500"?这个会反向定义 MVP。

不用全部回答,**挑一两个让你最想聊的方向**就好。剩下的我们慢慢展开 🌱

上述输出有几个需要回复的, 看官们,根据AI提示分别回复即可。笔者这里输入如下信息:

markdown 复制代码
1. 形态与场景:多用户,用户可以自己注册。有一个微信小程序和Web端(PWA),移动端我想用uniapp来实现,pc用vue做。 

2. "理财"这个词的重量:中等,在收支之上加入预算/分类统计 /趋势图 

3. 钱的形式: 人民币/美元,用户可配置默认币种, 收支帐号可以多种(现金,银行卡,支付宝,微信,信用卡)可配置 

4. 每天开心的提醒用户该记录一笔(通过微信通知), 月底当然我得见到我的收入图,一定要看,这样会有一个好心情,最好还能有趋势预测

...继续探索(略)

创建项目规格说明文件夹 - opsx:new命令

arduino 复制代码
/opsx:new [项目名]

"项目名"未输入, claude会给出默认项目名或让你补一个项目名, 并在/openspec/changes/下的同名文件夹。

根据提示openspec会为我们生成三个文件,作为指导开发用的规格文档:

  • proposal.md: 主要是描述该项目目标,变更,项目主要功能,依赖关系等
  • design.md: 设计文档
  • task.md: 后续要完居的任务清单

根据task.md 执行项目任务 - opsx:apply命令

生成项目

项目归档 - opsx:archive

阶段性项目归档

相关推荐
唐老板8 小时前
MCP协议实战:从零写个Agent工具
ai编程·mcp
counterxing9 小时前
最近发现一个 Mac 工具,有点像把 Raycast、语音输入法、截图和录屏塞到了一起
macos·ai编程·claude
薛定喵的谔9 小时前
Term Proxy — 用 Tauri 2 打造跨平台终端配置管理工具
electron·ai编程·全栈
小溪彼岸10 小时前
CC Switch可视化管理Skill、提示词、会话
aigc·ai编程
aqi0013 小时前
15天学会AI应用开发(九)利用Chroma持久化向量数据
人工智能·python·大模型·ai编程·ai应用
kfaino14 小时前
你好,我叫 Prompt——其实,你一直在给 AI 写程序
后端·openai·ai编程
kfaino1 天前
你好,我叫Token——AI世界里最忙的搬砖工
aigc·openai·ai编程
程序员老刘1 天前
Flutter版本选择指南:3.44系列继续观望 | 2026年6月
flutter·ai编程·客户端