当前位置: 首页 > news >正文

基于 OpenSpec 实现规范驱动开发

背景与痛点:为什么需要 OpenSpec?

AICoding 领域,模型的逻辑推理能力在短小上下文中表现卓越,但在大型工程环境中,模型面临两大挑战:

  • 上下文中毒​:无关信息污染上下文,模型误将噪声当作重要信息
  • 注意力漂移​:长对话中逐渐偏离原始需求,产生幻觉或偏离预期

单纯依靠增加大语言模型的参数规模已无法解决复杂业务逻辑中的幻觉与失控问题。

OpenSpec 倡导的是一种「规格驱动开发」(Spec-Driven Development)范式。​其核心理念是:在写任何一行代码之前,先由人类与 AI 共同协商并锁定一份机器可读、人可评审的规格文档。​需求是什么、技术方案怎么设计、实现步骤有哪些——全部以 Markdown 文件持久化在项目里。AI 每次开工,不是从你的口头描述出发,而是从这份规格文档出发) 展现出了极高的工程性价比,无论是使用 Claude Code、Cursor 还是 Aider,都可以无缝接入 OpenSpec 的规格管理层。OpenSpec 对存量代码库的需求场景,相当友好,相比 Spec Kit 擅长的新项目场景,对于很多公司的开发更为适合。

维度Spec KitOpenSpec
出品方GitHubFission AI
设计思路严格门控,步步审查依赖图驱动,灵活迭代
擅长场景新项目从零开始(Greenfield)已有代码库增量开发(Brownfield)
规范体量较重,单阶段可达 800+ 行较轻,文档约 250 行
流程自由度线性,不能跳步非线性,随时可以回改
协作友好度直接改主规范,多人易冲突变更隔离,archive 时合并
Token 消耗较高较低
变更追踪无内建机制Delta Spec + 归档历史

二、安装与初始化

2.1 安装

# 前置条件:Node.js 20.19.0+ npm install -g @fission-ai/openspec@latest

2.2 初始化

# 命令行方式进入到你的项目 cd your-project # 初始化 openspec init

初始化时 CLI 会问你使用哪些 AI 工具(Claude Code、Cursor、Copilot 等),然后自动往对应目录写入 Skill 和斜杠命令文件。由于我使用的 Claude Code,便选择了对应的 Agent。

Space 选择,Enter 确认

注意:初始化完成后,需要重启 ide 才能生效。

完成后项目里多出一个openspec/目录:

openspec/ ├── specs/ ├── changes/ └── config.yaml # 项目配置

2.3 配置项目上下文(可选,建议配置)

这一步经常被跳过,但它对工件质量影响巨大。在openspec/config.yaml里告诉 AI 你的项目是什么样的:

schema: spec-driven # Project context (项目上下文) # 此信息将在创建各种 artifacts 时提供给 AI 参考 context: | ## 项目概述 XXX 系统(Engine)是数据平台的核心调度引擎,负责将不同类型的任务(Job)提交到对应类型的执行引擎组件上运行。 核心功能: - 向上:接收平台各应用提交的任务(Job) - 内部:负责任务的负载均衡 & 优先级调度 - 向下:将各种类型的任务真正提交(submit)到具体的执行引擎组件上 ## 技术栈 ## 模块结构 ## 代码规范 ## 测试规范 ## Git提交规范 # Per-artifact rules (每个artifact的规则) rules: proposal: - 提案应简洁明了,包含背景、目标、方案概述 - 方案设计需考虑向后兼容性 tasks: - 每个任务应可独立完成和测试 - 任务粒度适中,避免过大或过细 - 需要标明任务涉及的模块和文件路径

context会注入到所有工件的生成过程中——相当于一次配置,以后再也不用在对话开头反复交代技术栈了。rules则是针对特定工件类型的额外要求。

可以让 AI 先生成,然后自己修改:

请阅读 openspec/config.yaml 并帮我填写项目详情、技术栈和约定等

强烈建议该规范文件在组内按照项目维度持续迭代,如果需要更新规范也尽量让 Claude 自己生成,AI 最能理解 AI 生成的规范。

三、项目结构与关键产物

openspec 结构如下:

openspec/ ├── specs/ # 系统当前行为的「源真相」(Source of Truth) ← 「系统现在是什么样的」 ├── changes/ # 每个变更的独立工作目录 ← 「我们打算改什么」 ├── archive/ # 已完成变更的归档目录 ← 「历史记录」 └── config.yaml # 项目配置

目录说明​:

目录作用内容示例
specs/Main Specs,系统当前行为的权威描述user-auth.mdapi-specs.md
changes/活跃变更的工作目录add-dark-mode/fix-login/
archive/已归档变更的历史记录2026-02-27_add-dark-mode/
config.yaml项目级配置文件context、rules 等

Specs(主规格)是系统当前行为的权威描述——「源真相」。它回答的是「系统现在是怎么运作的」。

Changes(变更)是你正在进行的修改——每个功能、每个 Bug 修复独立一个文件夹,互不干扰。它回答的是「我们​打算怎么改​」。

每个变更(Change)都被组织在独立的文件夹中,包含 4 个工件,它们之间有明确的依赖关系:

proposal.md → specs/ → design.md → tasks.md 为什么做? 做什么? 怎么做? 具体步骤
  • proposal.md​:描述变更的初衷和范围。
  • specs/​:具体的逻辑规格,通常包含 “Scenario(场景)” 描述,通过具体的输入输出消除模糊性。这里存放的是 ​Delta Specs(增量规格)​,仅描述本次变更涉及的行为变化。
  • design.md​:技术设计方案,包括本次变更涉及的数据库变更、接口调整等。
  • tasks.md​:原子化的任务清单,作为 AI 的执行路径图。

这个依赖关系是​「使能」而不是「门禁」​。意思是:有了 proposal 才能生成 specs,有了 specs 才能生成 design——但这是 AI 生成工件时需要的输入,而不是说你必须按这个顺序来。你完全可以先写 design 再补 specs,或者直接跳到 tasks,流程是灵活的。

Delta Specs 与 Main Specs 的关系​:

  • openspec/specs/:Main Specs,描述系统当前的完整行为,是「源真相」
  • openspec/changes/<name>/specs/:Delta Specs,描述本次变更带来的行为变化
  • 归档时,Delta Specs 会自动合并到 Main Specs,保持源真相的更新
http://www.gsyq.cn/news/1588484.html

相关文章:

  • Software 3.0实战指南:从自然语言编程到AI协同开发范式
  • 分享2026年6月gespC++一级模拟题
  • 小团队标配Litera Lito,大文件审校不再头大
  • 我用 FamilyPro 开通 ChatGPT 后,省下了一大笔订阅费
  • DeepChecks自动化验证:构建可落地的ML模型质量门禁
  • ArcObjects SDK 10.8完全指南:从零到精通的GIS开发实战教程
  • Kimi K2.5实测:长文本解析与中文语义理解能力深度评测
  • 投影投影接口定义
  • 【2013-10-17】Android应用开发笔记:自定义控件实现LCD显示
  • 大模型和搜索引擎到底有什么不一样
  • 药品追溯码扫码设备怎么选?医药全场景读码硬件技术选型分析
  • 【原创保姆级】OpenAI Codex 全平台安装配置教程(Windows/Mac)避坑完整版
  • 虚拟助手化技术对话管理系统与多轮对话设计
  • 后端别再卷CRUD了,强烈建议直接转Agent开发
  • 3步轻松搞定知网文献批量下载:告别繁琐手动操作的高效方案
  • 面向 IVD 医疗设备精密液体输送的运动物理量反馈速度补偿控制技术研究与工程实现
  • 【IDEA安装黑盒解密】:基于JetBrains官方源码级文档(v2024.1.3 Build #IU-241.14494.242)还原安装流程与签名验证机制
  • AI危险自信的本质与四步事实校验法
  • 终极网盘下载加速指南:LinkSwift直链助手让文件传输飞起来
  • 从大偏差原理到玻色气体自由能:环路与交织图像解析
  • Python毕设项目:基于 Echarts+Python 的图书销售预警监测系统设计与实现 基于 Echarts+Python 的图书经营可视化监测平台 (源码+文档,讲解、调试运行,定制等)
  • Airsonic:自托管音乐流媒体服务器
  • ROS2 SHM 零拷贝 40~50μs 完整延迟拆解
  • Ashby 一体化解决方案:助力不同规模企业招聘,多维度资源对比与支持服务全揭秘
  • 大屏数字人智能交互新方案:语音通话问答 + 一键调取后台数据,重塑线下大屏数字化体验
  • 个人开发小程序与公司开发:哪种方式更适合你?
  • 5分钟实战指南:使用zteOnu高效获取中兴光猫超级管理员权限
  • 专业的花箱护栏制造企业
  • 如何轻松搭建自己的离线翻译服务器:LibreTranslate完全指南
  • 【课程设计/毕业设计】基于 LSTM 学习评估的 Django 线上考试管理系统设计与实现 面向智能测评的 Django+LSTM 在线考试系统设计与实现【附源码、数据库、万字文档】