spec kit 探索性问答

news/2025/12/7 15:05:36/文章来源:https://www.cnblogs.com/aibi1/p/19318161

目录
  • 1. 结论(短答)
  • 2. 当你“需求没想好”时,如何正确使用 specify
    • 模式 A:探索式需求(推荐)
    • 模式 B:半成品需求 → 交给 AI 整理
    • 模式 C:需求极不确定,但你想快速试验代码生成
  • 3. 什么时候不建议执行 specify
  • 4. 推荐工作流:需求不确定 → 明确化 → 实现
  • 5. 你的场景中的最佳策略
  • 6. 如你需要,我可以为你生成 Java 架构的 /constitution

可以执行,但要理解 specify 的设计初衷,否则会让你的工作流变乱。以下是专业、工程化的说明,帮助你判断什么时候该执行 specify、什么时候不该执行。


1. 结论(短答)

可以执行 specify,即使需求未完全想好。
spec-kit 的设计就是为了支持 探索式需求早期 spec 草稿,并通过创建分支来隔离变更。

但你必须明确:

  • 不成熟的需求会创建一个“实验分支”。
  • 后续 refine 会继续在这个分支中迭代。
  • 直到你“确认需求”,再让 AI 生成最终 PR。

如果你还没准备好进入“正式 PR 流程”,则应该 使用探索模式(draft / research / sketch spec)


2. 当你“需求没想好”时,如何正确使用 specify

规范用法如下:

模式 A:探索式需求(推荐)

你可以先运行:

/speckit.specify --draft "我想做一个 X 功能,目前需求还不完整,帮我先起草 spec"

特点:

  • 会创建一个带草稿标记的分支(例如 speckit/draft/feature-xxx)。
  • AI 会生成 未定稿的 spec,但不会生成完整实现代码。
  • 之后你可以无限次 refine:
/speckit.refine --draft "补充:新增一个 Y 逻辑"

等你需求确认:

/speckit.upgrade --final

此时 AI 才会输出正式 feature spec 并准备最终 PR。


模式 B:半成品需求 → 交给 AI 整理

如果你只有模糊想法,也可以直接 specify:

/speckit.specify "我要做一个智能搜索功能,目前逻辑还不完整,帮我整理成初版 spec"

AI 会:

  • 尝试推断你的真实需求
  • 给出建议
  • 给你一个可编辑的 spec(并创建分支)

你后续继续:

/speckit.refine "补充搜索结果排序规则"

模式 C:需求极不确定,但你想快速试验代码生成

你可以用:

/speckit.experiment "尝试一个 demo,我只是想看看写法"

特点:

  • 不会进入“正式 spec 流程”
  • 不会创建 PR
  • 纯实验性代码,不污染主线

3. 什么时候不建议执行 specify

如果你目前处于这种状态:

  • “我不知道我要做什么”
  • “我只想问一个技术问题”
  • “我只是研究可能的方案”

那么不要执行 specify,因为它意味着:

  • 会创建分支
  • 会启动 feature lifecycle
  • 会让你的 repo 出现一堆未完成的分支

你此时应该只是问 AI 问题,而不是让它写 spec。


4. 推荐工作流:需求不确定 → 明确化 → 实现

[探索草稿] /specify --draft↓
[补充需求] /refine↓
[确认需求] /upgrade --final↓
[生成功能] /implement↓
[自动测试] /test↓
[生成PR] /propose

这个流程设计就是为了支持你现在的情况:
需求不明确也能开始,但不会污染主线


5. 你的场景中的最佳策略

你正在定义一个后端项目的 /constitution(类似 coding standard + architecture baseline)。
此类内容本质上是:

  • 长周期演化
  • 会频繁修改
  • 不适合一次性定稿

因此建议用:

/speckit.specify --draft "为 Java Spring MVC 项目生成 constitution,需要以下内容..."

你可以反复 refine,直到你满意,然后 upgrade。


6. 如你需要,我可以为你生成 Java 架构的 /constitution

你之前提到:

  1. 强制使用 MyBatis
  2. Spring MVC
  3. Redis 用 Redisson
  4. API 方法名动宾结构
  5. 代码检查、模型审查、测试策略由我补充

如果你现在需要,我可以立即为你的 spec-kit 生成一份
工程级、可执行、可 enforce 的 /constitution

你需要我现在生成吗?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/991496.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R语言保存file路径问题

R 工作目录与文件路径问题全解 在使用 R(尤其是 RStudio)进行数据可视化和文件操作时,工作目录与文件路径的设置常常会让人困惑。本文将详细解释相关概念,并给出实用的解决方法。 一、工作目录与 R 文件路径为何不…

退役入生前最后一道题

退役的 OIer 在搞笑椅子 OJ 上的最后一发提交。用户名 退役比赛 提交题目 提交状态 / 分数 提交时间张轩程 CSP-S2024 [USACO22OPEN] Hoof and Brain P 95 Time Exceeded 2024-11-20 17:16:19wanghaoyan123 NOIP2024 【…

2025最新深圳/惠州输送线厂家TOP5推荐!深圳惠州地区组装线/装配线/生产线/输送线/老化线选购优质供应商评测

随着工业自动化的快速发展,输送线、生产线及装配线作为工业生产中的关键设备,其性能和质量直接影响企业的生产效率与产品品质。本榜单基于技术实力、行业适配性、服务能力三大维度,结合市场反馈与行业数据,对2025年…

【Java】面向对象基础

目录前言内容概览更新记录面向对象的概念对象的执行原理对象的注意点this关键字构造器封装实体类JavaBean 前言 1.之前学过,因此本文是个人复习笔记,为视频的总结以及个人思考,可能不是很详细。 2.教程是b站黑马程序…

归并分治模板

翻转对 class Solution { public:int findpairs(vector<int> &nums, int l, int r) {int mid = (l + r) >> 1;int i = l, j = mid + 1;int res = 0;for (; i <= mid; ++i) {while (j <= r &…

2025燕窝品牌实力排行榜:艾玛琳商贸以溯源科技领衔,六大高潜力燕窝衍生品与礼品企业深度解析

2025燕窝品牌实力排行榜:艾玛琳商贸以溯源科技领衔,六大高潜力燕窝衍生品与礼品企业深度解析 随着健康消费理念的持续深化与国潮文化的兴起,燕窝及其衍生品市场正经历一场深刻的变革。传统单一的干燕窝消费模式,正…

ABC 435 解题报告

A 略。 B 略。 C 记录当前可以弄倒的最远位置,记得和 \(n\) 取 \(\min\)。 D 考虑建反图,然后从每一个黑点开始 dfs 一遍,遇到黑点就停下(因为之后扩展到的点这个黑点一定也可以扩展到)。每个点至多被访问一次,均…

【创作分享】一个简单易用、功能强大的 AI 图片生成工具:NanoEdit(基于Gemini 3.0 Nano Banana Pro)

【创作分享】一个简单易用、功能强大的 AI 图片生成工具:NanoEdit(基于Gemini 3.0 Nano Banana Pro)最近这段时间,我一直在投入一个自己非常喜欢的小项目——NanoEdit。想做这件事的原因其实很简单: 我平时需要生…

街头徒手健身4高阶引体向上

4 高阶引体向上 我刚踏入健身行业时,修过私人教练课程,还读了不少专业教材,就是为了学习最优质的训练方案和最新的健身理念。我在文献中看到大量关于高位下拉器械的介绍,可关于经典实用的引体向上,内容却寥寥无几…

shell脚本内使用alias

shell脚本内使用aliasshopt -s expand_aliases放在所有alias定义前面。 root@root1:~/sh# cat test.sh #!/bin/bash shopt -s expand_aliases alias k="kubectl -n kube-system " k get pod

告别手动编码:如何用Screenshot-to-code搭建设计稿自动转HTML全流程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

ffmpeg移植到arm

一、移植x264 1、进入解压后的路径x264-master,执行以下命令:./configure --enable-shared --prefix=/home/ubuntu/work/ffmpeg/_x264_install/ --host=arm-linux-gnueabihf --disable-asm 2、修改配置文件config.ma…

英语_阅读_songs playlists_待读

In the past, people listened to songs either one at a time or on an album. 过去,人们要么一次听一首歌,要么听一整张专辑。 But now its easy to choose your favourite songs and play them one after another…

Hello,World!

让我想想,这篇周记该从哪里开始写呢? NOIP?好像在自己的游记里已经写得很清楚了,重新读一遍自己的游记,看着自己写的最后一句话:我才高一,这是很多人新生活才刚开始的时候,我为什么却要想着放弃,时间还长,机…

JavaScript 转换(转译)工具———babel

通过 CDN/UNPKG 获取 —— 例如: https://unpkg.com/@babel/standalone@7.28.5/babel.min.js

JavaScript 转换(转译)工具———babel

通过 CDN/UNPKG 获取 —— 例如: https://unpkg.com/@babel/standalone@7.28.5/babel.min.js

完整教程:特斯拉 Tesla 面试经验分享|流程全解析 + 技术细节 + 面试感受

完整教程:特斯拉 Tesla 面试经验分享|流程全解析 + 技术细节 + 面试感受2025-12-07 14:22 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: …

12.1~12.7

装饰器原理与应用 无参数装饰器带参数装饰器保留原函数元信息我觉得oop就是以“对象”为核心的编程范式,通过类的抽象、继承、多态三大特性,实现代码复用、降低耦合度,让程序更易维护和扩展 封装 将属性和方法封装在…

深入解析:HTML `<fieldset>` 标签 `form` 属性深度解析

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

go net/http 学习笔记

概述 在使用 Go 开发时几乎都会用到 net/http 标准库。但是,对库的内部实现不了解,仅限于会用。遇到问题容易懵,比如:长连接和短连接有什么区别?具体什么实现原理? net/http 如何处理并发请求? net/http 有用到…