尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
基于 OpenSpec 实现规范驱动开发
背景与痛点为什么需要 OpenSpecAICoding 领域模型的逻辑推理能力在短小上下文中表现卓越但在大型工程环境中模型面临两大挑战​上下文中毒​无关信息污染上下文模型误将噪声当作重要信息​注意力漂移​长对话中逐渐偏离原始需求产生幻觉或偏离预期单纯依靠增加大语言模型的参数规模已无法解决复杂业务逻辑中的幻觉与失控问题。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/openspeclatest2.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.md、api-specs.mdchanges/活跃变更的工作目录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保持源真相的更新
RELATED

相关推荐

Vue 3 setup语法糖用错,数据不更新!

Vue 3 setup语法糖用错,数据不更新!

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 Vue 3 setup语法糖用错?数据不更新的真相! 目录昨天改需求,setup语法糖写得飞起。点按钮&…

📅 2026/9/23 18:35:53
AI沙箱代理实战:用Modal实现安全可控的代码操作

AI沙箱代理实战:用Modal实现安全可控的代码操作

1. 项目概述:为什么你需要让AI代理“住进隔离间”我干这行十多年,从最早用Python写爬虫调度脚本,到后来带团队做AI工程化落地,踩过的坑比别人走的路还多。最近半年,我几乎每天都在和各种AI代理框架打交道——不是在调试…

📅 2026/9/17 23:36:05
【考研】2026/6/24

【考研】2026/6/24

政治2026/6/24交往:唯物史观的重要范畴,是人类实践活动的重要组成部分。世界历史:指各民族、国家通过普遍交往,打破孤立隔绝的状态,进入相互依存、相互联系的世界整体化的历史。①生产方式的发展变革是世界历史形成和发展的基础。…

📅 2026/9/28 3:07:37
MORE NEWS

更多资讯

📰

MySQL性能分析实战:从慢查询定位到索引优化与参数调优

1. 先定位慢查询:MySQL性能分析的起点先说个我见过无数次的场景:业务线上反馈"查个列表要好几秒"、"接口超时了",运维同事第一反应是打开配置文件,把innodb_buffer_pool_size调大,把max_connectio…

📰

STM32开发资源地图:从资料检索到工程落地的完整指南

干嵌入式这行的人,十有八九都经历过这样的场景:芯片选好了,原理图也画了一半,结果想找一份靠谱的 STM32 开发参考方案,却先在浏览器里迷了路。CSDN 上同一个问题能搜出好几篇互相矛盾的帖子,百度网盘里存的…

📰

CRC循环冗余校验:直接计算法、查表法与参数模型调试

上周同事解压一份安装包,跑到一半屏幕跳出gzig:stdin: invalid compressed data --crc error,他的第一反应是文件没下全,重下三遍,报错一次不差。同一天下午,另一位朋友的千兆板子在百兆链路下跑得稳稳当当&#xff0c…

📰

ESP32S3驱动ILI9341显示屏的LVGL 9.x嵌入式GUI实战

1. 项目概述:为什么是ESP32S3 ILI9341 LVGL这个组合值得深挖?我第一次在实验室焊好ESP32S3开发板、接上那块3.2寸ILI9341驱动的TFT屏,烧进LVGL官方Demo却只看到满屏噪点和错位色块时,心里想的不是“又一个移植失败案例”&#x…

📰

钉钉微应用免登H5实战:Java后端code换userId避坑指南

简介:本资源面向使用Java开发钉钉企业内部应用的开发者,聚焦“钉钉微应用免登进入H5系统首页”这一典型场景,帮助读者打通前端获取免登授权码与后端校验用户身份的完整链路。资源包内含1个PDF文档,大小约129KB,以图文形…

📰

Claude Code插件机制详解:从claude-plugins-official到技能开发与排坑

折腾 Claude Code 的人,十有八九会撞见claude-plugins-official这个名字。它既不是某个第三方魔改工具,也不是什么付费教程的配套仓库,而是官方维护的插件体系起点。很多朋友第一次看到这个仓库时的反应是:我命令行还没跑通&#…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬