跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
TypeScriptNode.jsReact NativeAI大前端

AI+SDD 重构复杂业务研发范式与实操指南

介绍规格驱动开发(SDD)在复杂业务系统中的落地实践。通过 OpenSpec 工具结合 AI 辅助编程,解决需求变更频繁、文档脱节、重复开发等痛点。文章详解 OpenSpec 基础命令、目录结构、核心逻辑及从需求到归档的完整流程,并提供常见痛点解决方案与工具选型建议,帮助团队建立以规格为核心的研发闭环,提升效率与质量。

日志猎手发布于 2026/4/6更新于 2026/9/1098 浏览
AI+SDD 重构复杂业务研发范式与实操指南

SDD 在复杂业务系统中真正落地:从理论到实操的完整指南

在当前复杂业务系统研发中,我们常陷入诸多困境:需求反复变更导致开发返工,AI 辅助编程易出现幻觉生成无效代码,多人协作时重复开发浪费精力,上线后频繁出现回归 bug,文档与代码脱节成为'无效资产'。这些问题的核心,是缺乏一套统一可落地的研发范式,让需求、设计、开发、测试全流程形成闭环。规格驱动开发(SDD,Spec-Driven Development)正是解决这一痛点的关键。

很多开发者对 SDD 的认知停留在'先写文档再写代码'的表面,甚至觉得它是'额外负担',尤其在工期紧张的复杂项目中,更倾向于跳过规格设计直接编码。但事实上,SDD 并非传统意义上的'文档绑架',而是结合 AI 时代研发特点,形成的一套高效可落地的工程化方法。

本文结合 OpenSpec 这一主流 SDD 工具,从实操层面拆解 SDD 在复杂业务系统中的落地全流程,解答工具使用、流程设计、痛点解决等关键问题,帮助每一位开发者真正用好 SDD,提升复杂系统研发效率与质量。

核心概念明确

SDD 中的 Spec(Specification,规格),本质是对业务需求、技术设计、实现细节的标准化描述,是整个研发流程的'唯一真理来源'。与传统系统分析文档不同,SDD 的规格文档是'活文档'——与代码同步迭代、可执行、可验证。

OpenSpec 作为目前社区最热门的 SDD 工具之一,以轻量、敏捷、贴合 AI 辅助编程的特点,成为复杂业务系统落地 SDD 的首选。接下来从工具实操入手,逐步深入 SDD 落地逻辑。

一、OpenSpec 基础实操:从 CLI 命令到目录结构,快速上手不踩坑

复杂业务系统落地 SDD 的第一步,是选择合适工具并掌握其基础用法。OpenSpec 的核心优势是'轻量无侵入',无需改造现有项目结构,通过简单 CLI 命令即可快速集成,且完美适配 AI IDE(如 Cursor),让 AI 成为撰写规格、生成代码的辅助,而非负担。

1.1 CLI 命令实操:6 个核心命令,覆盖全研发流程

OpenSpec 的 CLI 命令设计简洁,核心逻辑与 Git 类似,分为'初始化、日常开发、质量控制、归档'四大场景,日常常用命令不超过 3 个,其余可由 AI 代劳。

关键区分:AI 负责'创造'(写规格文档、生成代码);CLI 负责'管理'(初始化工具、查看进度、验证格式、归档变更),分工明确、互不冲突。

以下逐一拆解核心 CLI 命令的用法、行为及适用场景,结合复杂业务场景给出使用建议:

(1)项目初始化:openspec init
  • 作用:在当前项目目录初始化 OpenSpec,搭建基础目录结构(引入 OpenSpec 的第一步,唯一需手动执行的初始化操作)。
  • 具体行为:自动创建 .openspec/或 openspec/ 目录(无本质区别),生成两个核心文件:
    • project.md:记录项目上下文(技术栈、目录约定、业务核心规则等),相当于项目'备忘录',方便新人上手和 AI 理解项目规范;
    • AGENTS.md:AI 说明书,配置 AI 工具(Cursor、Copilot 等)的提示词规则,确保 AI 生成内容符合项目规范。
  • 适用场景:引入 OpenSpec 到现有复杂项目、新建项目启用 SDD 模式时。建议项目初始化阶段执行,避免后续规格文档混乱。
(2)配置更新:openspec update
  • 作用:更新 OpenSpec 配置文件和 AGENTS.md 文档,确保 AI 提示词始终最新。
  • 具体行为:升级 OpenSpec 的 npm 包、修改项目规范需同步 AI 提示词时,自动检测配置差异,更新 AGENTS.md 提示词规则及项目基础配置。
  • 适用场景:升级 OpenSpec 版本后、AI 生成内容不符合项目规范时(大概率提示词过时)。复杂项目建议每 1-2 个迭代周期执行一次,确保 AI 与项目规范同步。
(3)日常开发核心:openspec list
  • 作用:列出当前所有'进行中'的变更(Active Changes),日常开发使用频率最高。
  • 具体行为:显示未归档的变更 ID、变更状态,以及每个变更对应 tasks.md 的任务完成进度(如 [2/5]),便于了解需求开发进度、避免重复开发/任务遗漏。
  • 核心参数:--specs,列出已归档的 Specs(项目当前'真理来源'),快速查看已实现功能规格,避免重复开发。
  • 适用场景:日常查看任务进度、未完成需求,建议每天开工前、下班前各执行一次。
(4)变更详情查看:openspec show
  • 作用:输出某个具体变更的详细信息(通常为 JSON 格式)。
  • 具体行为:主要供 AI 使用(生成代码时参考规格细节,后台自动执行),开发者手动使用场景较少(仅排查变更细节时)。
  • 核心参数:--json(强制 JSON 格式,方便 AI 解析);--deltas-only(仅显示变更部分,忽略未变更内容)。
(5)质量控制:openspec validate
  • 作用:检查某个变更的 Spec 文档格式是否标准、符合 OpenSpec 规范,是保障规格文档质量的核心命令。
  • 具体行为:从三个维度检查:Markdown 的 Frontmatter 正确性、tasks.md 未完成任务、proposal.md 结构完整性。
  • 核心参数:--strict(严格模式,任何小格式错误都报错,推荐 AI 使用;开发者可按需关闭,建议尽量遵循)。
  • 适用场景:每个变更开发完成后、归档前必须执行;AI 生成规格文档后建议执行,排查格式错误。
(6)结束与归档:openspec archive
  • 作用:将已完成的变更'合并'到主 Specs 库,标志需求正式落地,是 SDD 流程闭环的最后一步。
  • 具体行为:将 changes/目录移动到 changes/archive/目录,同时将变更中 spec.md 的内容合并更新到 openspec/specs/目录的长期文档中。
  • 核心参数:--yes / -y(自动确认归档,适合 AI 执行;开发者手动归档可省略,避免误操作)。
  • 适用场景:变更完成开发、测试、验证后执行。复杂项目建议每个迭代周期结束后,统一归档该迭代内的变更。

补充说明:OpenSpec 还提供 openspec version(查看版本)、openspec view(终端可视化进度条)、openspec help(帮助文档)三个辅助命令,日常使用频率较低,需用时执行 openspec help 即可。

1.2 目录结构解析:看懂'目录树',才算真正理解 SDD

很多开发者使用 OpenSpec 时,只记命令不看目录结构,导致后续规格混乱、归档出错。OpenSpec 目录结构清晰,核心围绕'当前真理(specs)'和'变更提案(changes)'两大核心,以下拆解各目录、文件的作用及规范使用方法:

OpenSpec 标准目录结构(以 openspec/目录为例)
openspec/
├── project.md # Project conventions(项目约定)
├── specs/ # Current truth - what IS built(当前真理:已实现的功能)
│   └── [capability]/ # Single focused capability(单一核心能力/模块)
│       ├── spec.md # Requirements and scenarios(需求和场景)
│       └── design.md # Technical patterns(技术方案)
├── changes/ # Proposals - what SHOULD change(变更提案:待实现/正在实现的变更)
│   ├── [change-name]/ # 具体变更(以变更名称/ID 命名,如 feature-mobile-notification)
│   │   ├── proposal.md # Why, what, impact(变更原因、内容、影响范围)
│   │   ├── tasks.md # Implementation checklist(实现任务清单)
│   │   ├── design.md # Technical decisions(optional)(技术决策,可选)
│   │   └── specs/ # Delta changes(增量变更,仅记录变更部分)
│   │       └── [capability]/
│   │           └── spec.md # ADDED/MODIFIED/REMOVED(新增/修改/删除的规格)
│   └── archive/ # Completed changes(已完成归档的变更)
(1)project.md:项目的'说明书',不可或缺

记录项目核心约定,包括技术栈、目录结构约定、业务核心规则、OpenSpec 使用规范等。与 GitHub Spec Kit 的 constitution.md(强调不可违背的原则)不同,project.md 更务实、灵活,适合复杂业务系统的迭代需求。

使用建议:由技术负责人牵头编写,随项目迭代更新;新人加入先阅读 project.md 和 openspec list --specs,快速了解项目规范和已实现功能;AI 生成代码/规格时,会读取该文件确保符合项目约定。

(2)specs/目录:项目的'唯一真理来源',核心中的核心

存放项目当前已实现的所有功能规格,是研发流程的'真理基准',以'capability(核心能力/模块)'为单位划分子目录(如 artifact-notification:产物通知模块),每个模块包含两个核心文件:

  • spec.md:核心规格文件,记录模块的需求(Requirement)和场景(Scenario),每个需求对应至少一个场景,场景需包含'前置条件(GIVEN)、触发动作(WHEN)、预期结果(THEN)',确保需求可验证、可落地。
  • design.md:可选文件,记录模块技术方案(技术选型、架构设计、数据流转等),复杂核心模块建议编写,方便后续维护迭代。

核心原则:specs/目录内容不可随意修改,任何已实现功能的修改,需通过 changes/目录发起变更,归档后同步更新,确保历史可追溯。

(3)changes/目录:变更的'工作区',管控所有迭代需求

存放所有待实现、正在实现的变更提案,以'change-name(变更名称/ID)'为单位划分子目录(如 feature-mobile-notification:移动端通知功能),每个变更目录包含 4 个核心文件(design.md 可选):

  • proposal.md:变更'申请书',说明变更的原因(Why)、内容(What)、影响范围(Impact),帮助团队快速理解变更目的,避免盲目开发。
  • tasks.md:实现任务清单,将变更拆分为'小而具体、可验证'的子任务,标注进度([x]已完成、[]未完成),复杂项目建议拆分颗粒度细一些,便于把控进度。
  • design.md:可选文件,记录变更的技术决策(新选型、复杂逻辑等)。
  • specs/目录(变更内):记录增量规格,仅包含新增(ADDED)、修改(MODIFIED)、删除(REMOVED)的内容,减少冗余,便于归档时合并到主 specs/目录。

archive/目录(变更内):存放已归档的变更(历史档案),建议按季度清理,避免目录过大影响查询效率。

总结:OpenSpec 目录结构的核心是'分离当前真理与变更提案',通过 specs/保障系统稳定性,changes/管控迭代需求,project.md 规范项目约定,形成完整的规格管理体系,有效解决复杂项目的规格混乱、协作低效问题。

二、SDD 落地的核心逻辑:为什么传统 SDD 失败,AI 时代能成功?

很多开发者曾尝试 SDD 但最终流于形式,核心原因是传统 SDD 不符合研发实际,成为开发者负担;而 AI 辅助编程普及的今天,SDD 迎来真正落地契机——核心是生产关系的改变:从'人写规格、人写代码'变为

目录

  1. 核心概念明确
  2. 一、OpenSpec 基础实操:从 CLI 命令到目录结构,快速上手不踩坑
  3. 1.1 CLI 命令实操:6 个核心命令,覆盖全研发流程
  4. (1)项目初始化:openspec init
  5. (2)配置更新:openspec update
  6. (3)日常开发核心:openspec list
  7. (4)变更详情查看:openspec show
  8. (5)质量控制:openspec validate
  9. (6)结束与归档:openspec archive
  10. 1.2 目录结构解析:看懂“目录树”,才算真正理解 SDD
  11. OpenSpec 标准目录结构(以 openspec/目录为例)
  12. (1)project.md:项目的“说明书”,不可或缺
  13. (2)specs/目录:项目的“唯一真理来源”,核心中的核心
  14. (3)changes/目录:变更的“工作区”,管控所有迭代需求
  15. 二、SDD 落地的核心逻辑:为什么传统 SDD 失败,AI 时代能成功?

更多推荐文章

查看全部
  • Java 实现 MCP 服务:构建 LLM 专属工具库基座
  • 机器人脑部药物递送三大技术路径的可转化性分析研究
  • 模拟算法实战:核心概念与经典案例解析
  • MySQL 数据类型核心指南:选型、实战与避坑
  • 路径类动态规划入门:3 道经典例题详解
  • 四大开源 OCR 模型深度对比:MinerU 2.5 至 PaddleOCR-VL-1.5
  • OpenClaw 漏洞预警:AI 代理日志审计与风险追溯
  • Spring Boot + jQuery 前后端分离图书管理系统实战
  • Rust 异步 Web 框架 Axum:核心原理与实战进阶
  • AIGC 创作平台设计思路:高保真案例拆解与原型实测
  • Python+AI 学习方向:3 个高性价比赛道与实战路径
  • Unity VR Pico 开发环境配置与一键设置指南
  • 分治算法实战:归并排序与数组逆序对详解
  • 滑动窗口算法实战:串联所有单词的子串与最小覆盖子串解析
  • Figma + Claude + Weavy AI:从会用到好用的设计工作流
  • Claude Code 安装配置与实战教程
  • ChatGLM3-6B 模型架构与微调机制深度解析
  • 前端实现 Web 视频画中画功能 - 主窗口与小窗同步控制
  • Vue 前端文件导出实战:file-saver 插件用法详解
  • C++ 搜索引擎 Searcher 模块源码解析:正倒排索引实现

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online