- 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
你之前提到:
- 强制使用 MyBatis
- Spring MVC
- Redis 用 Redisson
- API 方法名动宾结构
- 代码检查、模型审查、测试策略由我补充
如果你现在需要,我可以立即为你的 spec-kit 生成一份
工程级、可执行、可 enforce 的 /constitution。
你需要我现在生成吗?