规格驱动开发MCP初探
规格驱动开发
规范驱动开发,简而言之,是一种软件开发过程,在整个开发工作流程中,清晰、详细的规范作为核心驱动力。这些规范涵盖了软件系统的各个层面,包括功能需求、性能指标、接口定义和数据格式,如同建筑中的蓝图,明确地勾勒出最终软件应该呈现的样子,供开发者参考。
规范驱动开发的核心是通过标准化的规范文档,将模糊的需求转化为可执行、可追溯、可验证的开发过程。实质上,它将传统软件工程的严谨性融入到AI编程中,将开发从“感觉编码”(依赖直觉)转变为可控的工程过程。
规范驱动开发的关键在于“Spec文件夹”——每个功能模块对应一个Spec文件夹,其中包含3个核心文件,将需求、设计和任务“具体化”:
- requirements.md(需求文档)——使用EARS语法(Easy Approach to Requirements Syntax)编写用户故事和验收标准,避免模糊表述。
- design.md(技术方案)——包括架构设计、流程逻辑、技术选型和潜在风险等细节。
- tasks.md(任务清单)——将技术方案分解为可执行的具体任务(待办事项列表)。

spec-coding-mcp 项目介绍
将功能想法系统地转化为生产就绪的代码,通过规范驱动的开发方法。

项目地址:https://github.com/feiyun0112/spec-coding-mcp
把项目拉下来之后,如果没有.NET10也可以换成.NET8,在成功运行之后,就可以到MCP客户端中配置。
这里我选择的是Roo Code,是直接通过exe的方式配置的。
{
"mcpServers": {
"SpecCodingMcpServer": {
"disabled": false,
"timeout": 60,
"type": "stdio",
"command": "...\\bin\\Debug\\net8.0\\SpecCodingMcpServer.exe",
"args": []
}
}
}
配置成功如下所示:

输入 Start Spec Coding即可开始进行规格驱动开发。

理解需求:


编写需求文档:




就大概截这些图,会生成一个文件夹,文件夹下面有下面几个内容。

需求文档:

任务列表:

测试文档:

还有设计文档,但是这个我的变没了,补上另一次使用的:

最后还会生成一个README:

整体体验下来的感觉就是如果一个功能要实现成什么样子你本身并不是很清楚,并且在使用AI很多次了还没成功实现,不妨试试规格驱动开发,还是有一定帮助的。当然现在的AI已经很强了,一般的需求好像直接也能做,不需要都要使用规格驱动开发。
下次来探索一下规格驱动开发MCP的提示词,这应该是这个项目的核心内容了。
规格驱动开发MCP初探的更多相关文章
- 【翻译稿】Behavior Driven Development (BDD)行为驱动开发
这是一篇翻译稿,方便给不知道BDD的同学扫盲.原文链接:What is BDD (Behavior Driven Development)? | Agile Alliance Definition定义 ...
- 使用IdleTest进行TDD单元测试驱动开发演练(3) 之 ASP.NET MVC
一.[前言] (1)本文将用到IOC框架Unity,可参照<Unity V3 初步使用 —— 为我的.NET项目从简单三层架构转到IOC做准备>(2)本文的解决方案是基于前述<使用I ...
- 使用IdleTest进行TDD单元测试驱动开发演练(2)
[前言] 1. 有关上篇请参见<使用IdleTest进行TDD单元测试驱动开发演练(1)>,有关本篇用到Entity Framework Code First请参见<使用NuGet助 ...
- 使用IdleTest进行TDD单元测试驱动开发演练(1)
[前言] 开发工具:Visual Studio 2012 测试库:Visual Studio 2012自带的MSTest DI框架:Unity 数据持久层:Entity Framework 前端UI: ...
- 行为驱动开发iOS <收藏>
前段时间在design+code购买了一个学习iOS设计和编码在线课程,使用Sketch设计App,然后使用Swift语言实现Designer News客户端.作者Meng To已经开源到Github ...
- TDD测试驱动开发
TDD测试驱动开发 一.概念 TDD故名思意就是用测试的方法驱动开发,简单说就是先写测试代码,再写开发代码.传统的方式是先写代码,再测试,它的开发方式与之正好相反. TDD是极限编程的一个最重要的设计 ...
- Linux驱动开发概述
原文出处:http://www.cnblogs.com/jacklu/p/4722563.html Linux设备分类 设备的驱动程序也要像裸机程序那样进行一些硬件操作,不同的是驱动程序需要" ...
- Android驱动开发5-8章读书笔记
Android驱动开发读书笔记 第五章 S5PV210是一款32位处理器,具有 ...
- 【OpenWRT】【RT5350】【三】MakeFile文件编写规则和OpenWRT驱动开发步骤
一.Makefile文件编写 http://www.cnblogs.com/majiangjiang/articles/3218002.html 可以看下上面的博客,总结的比较全了,在此不再复述 二. ...
- Android驱动开发前的准备
最近看了一些Android驱动开发前需要知道的资料,收获很多,接下来就谈谈我自己的一些心得体会. Android在近几年时间发展迅速,已经成为智能手机操作系统的老大.不过,因为Android原生的代码 ...
随机推荐
- qt获得当前窗口所在屏幕的大小
假如这个窗口的指针为this 记得要加头文件哦 #include <QDesktopWidget> #include <QApplication> //获得当前屏幕是第几屏幕 ...
- 洛谷 11 月月赛 I T2 P7043 「MCOI-03」村国
题目背景 \(\texttt{What did this player dream?}\) 他梦见了什么? \(\texttt{This player dreamed of sunlight and ...
- Svelte 5 状态管理全解析:从响应式核心到项目实战
Svelte 5 的状态管理以 "编译时优化" 为核心,通过 响应式声明(Reactive Declarations) 和 状态容器(Stores) 的组合,实现了简洁高效的状态控 ...
- Kubernetes二进制文件下载链接
这里,我们下载kubernetes的二进制文件在其官网下载即可: 具体链接:https://kubernetes.io/docs/setup/release/notes/
- centos上redis的安装
官网教程 redis安装官网 https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/ 可以右下方看到安装到各 ...
- AI生成的一篇官网代码,有兴趣可以参考一下
<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="UTF-8&qu ...
- 技术干货|如何利用 ChunJun 实现数据实时同步?
实时同步是 ChunJun 的⼀个重要特性,指在数据同步过程中,数据源与⽬标系统之间的数据传输和更新⼏乎在同⼀时间进⾏. 在实时同步场景中我们更加关注源端,当源系统中的数据发⽣变化时,这些变化会⽴即传 ...
- veRL代码阅读-2.Ray
看VeRL代码之前发现代码里主要使用了ray框架来进行调度和通信. 所以先对ray进行初步学习, 后续有空闲时间再细看下Ray的代码. 框架原理 构成 架构图如下, ray里主要分为系统层面的laye ...
- 一文了解:仿真技术的巨头——美国Altair公司
Altair公司成立于1967年,总部位于美国马里兰州巴尔的摩,在全球拥有近35000名员工,是一家世界领先的软件公司,在汽车.航空航天.军工和建筑等领域拥有广泛的产品和解决方案. Altair公司主 ...
- 2.Java SDK源码分析系列笔记-String系列
目录 1. String 1.1. 是什么 1.2. 使用 1.3. 源码分析 1.3.1. 类的定义 1.3.2. 构造方法 1.3.2.1. 解释new String("test1&qu ...