微软 Spec-Kit 规则驱动开发(Spec-Driven Development)首次学习

前言:Windows11 工作电脑

一、uv 命令行工具安装 - 【均在PowerShell运行】

1. uv 命令行工具 依赖项前置处理

# 更改PowerShell 的安全策略,设置成RemoteSigned 允许运行本地创建的脚本(无需数字签名)
# Windows PowerShell 默认的执行策略是 Restricted,它会阻止运行所有脚本文件
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
# 安装 uv 工具
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# 安装完毕,关掉当前Powershell 窗口

在这里插入图片描述

2 重新打开一个PowerShell窗口,安装uv命令行工具

# 通过 uv 安装 spec-kit 的命令行工具
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git

在这里插入图片描述

3 初始化项目

我又打开了一个PowerShell新窗口,不小心把前边那个窗口关掉了

# 切换到项目目录
cd D:\01-SDSLocalSvn\04JA.Product
# 初始化项目
specify init ./GPAPI

# AI assistant 我选择的 copilot
# script type 我选择的 ps

在这里插入图片描述
在这里插入图片描述

4. 初始化完毕,VS Code 打开项目如下图:

在这里插入图片描述

二、SpecKit 实际演练 - 【均在VS Code 中执行】

按照上图 Next Steps 在 VS Code 执行即可

2.1 /speckit.constitution - 项目宪法

生成宪章/宪法,立规矩,定原则。
项目最高指导原则 - 优先级极高,后续AI生成必须回头对照宪法。
在 SpecKit 中,/constitution 是整个 AI 驱动开发流程的第一步。它定义了项目的 核心原则、不可妥协的底线、质量标准和治理方式,后续所有 AI 生成的代码、任务、架构都必须遵循这些原则。

好的 Constitution 应具备什么特征?
声明性(Declarative):说明“必须做什么”,而不是“怎么做”。
可测试(Testable):每条原则应能通过自动化或人工验证。
技术无关(Tech-agnostic):不绑定具体语言或框架。
覆盖关键维度:代码质量、测试、安全、性能、用户体验等。
版本可控:遵循语义化版本(如 v1.0.0),便于演进。
GPAPI项目的constitution如下:
/speckit.constitution
- 代码质量: 所有文档、注释、提交信息均使用中文编写
- 代码质量: 每一行代码均生成对应的注释,在每一行代码的上方
- 代码质量: AI编写的代码,每一个函数不要超过50行代码
- 代码质量: 代码必须易于阅读、文档齐全,并遵循统一的编码规范。避免过早优化。
- 代码质量: 优先考虑代码清晰度而非技巧性
- 测试: 所有新功能需通过单元测试验证,覆盖率要求≥80%。关键用户流程需进行集成测试。
- 性能:每个页面打开时,相应速度不应超过1秒
- 用户体验: 用户界面必须具备响应性、无障碍性(符合WCAG 2.1 AA标准),并能为用户操作提供明确反馈。
- 最佳补充:请你根据你丰富的经验,在最合适的时候适当补充其他原则

在这里插入图片描述

2.2 /speckit.specify - 阐明目标(specify) & 逐渐明晰(clarify) -输出spec.md

/speckit.specify 
产品需求:
核心目标是构建一个“主题辩论”项目,“主题辩论” 项目可以记录很多主题,每一个主题会有支持 和 反对,最终方一定会采纳一方的观点为执行观点。支持方 和 反对方 可以在下方写下自己的观点,类似于论坛。我们可以看到所有支持放和反对方的宝贵意见。

第一次没有生成spec.md ,我又纠正了一次。
在这里插入图片描述
在这里插入图片描述
AI 产出 Spec.md 之后,我们可以 使用 /speckit.clarify 对其反复提问 。逐渐明确需求,这个过程类似于产品经理整理需求 反复提问搞清楚需求的过程。
类似如下 - 不断在 Chat框 输入/speckit.clarify (会产生clarifications.md)

Chat 返回的问题有价值,就一直不断地对话/speckit.clarify,把需求搞清楚。
最终clarifications.md中的更新会反馈到 Spec.md 中
这一整个过程是反反复复的,一直到自己对需求满意为止。

在这里插入图片描述
连续问了几次,暂时接受这个程度,继续往下进行。
在这里插入图片描述

2.3 /speckit.plan - 生成技术相关文档,为实现做准备

/speckit.plan
1. 现阶段我只想看到静态Html先,Html 均采用原生html语法标签,不要引用任何前端框架
   例如:VUE 等前端框架,先看到前端Html设计就是我的本次目标
2. 前端Html设计的根目录为GPHtml目录,不要影响其他目录的代码

在这里插入图片描述

2.4 /speckit.task - 生成开发任务清单

/speckit.task
请帮我生成本次要执行的一系列任务 task.md

在这里插入图片描述
在这里插入图片描述

感觉不错,继续往下。

2.5 /speckit.implement - 执行并完成开发任务

/speckit.implement 命令会根据 task.md 逐一执行开发任务

/speckit.implement 
根据task.md,开始执行阶段1,阶段2,阶段3 和 阶段4

在这里插入图片描述
执行过程大致截图:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 我们直接点开 index.html 查看结果

在这里插入图片描述

3.1 主题列表

在这里插入图片描述

3.2 点击一条 进入“主题详情”

在这里插入图片描述

3.3 决策历史

在这里插入图片描述

3.4 创建主题

在这里插入图片描述

3.5 编辑主题

在这里插入图片描述

3.6 查询结果

在这里插入图片描述
在这里插入图片描述
AI 一共生成了 6个界面

4.以上就是完整的speckit 工具 第一次完整演练 大约用了3小时左右

说实话,有点惊艳。如果speckit写的好,设计&开发一套小系统会变得简单很多。

附录 - 口语化总结

定义功能需求
Ai主动问几个关键问题
确定技术方案
生成可执行任务
检查一致性
开发实现

在这里插入图片描述
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安得权

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值