聊几句就能让 AI 写代码,Spec 还有必要吗?

你想给文章列表加个搜索功能,打开 AI 编程助手,说明想法,再补充几句。AI 开始读代码、修改页面、运行测试,整个过程没有出现一个叫 spec.md 的文件。

既然聊几句就能开发,为什么还要专门写 Spec?

小任务可以不单独写文档;规则复杂、需要交接的任务,Spec 仍然有价值。关键在于需求是否明确,以及这些约定能否被可靠保留。

这里的 Spec 指需求规格:要做什么、边界在哪里、怎样算完成。

① 你没写 Spec 文件,但可能已经把需求讲清楚了。

"加个搜索功能"只是一个目标。搜索标题还是正文、点击按钮还是输入即搜索、清空关键词后显示什么,都需要有明确答案。通过几轮对话,同样可以把这些要求确定下来。

用户: 只搜索标题,点击按钮后查询,清空关键词恢复列表。

AI: 沿用现有分页和发布时间倒序;没有匹配结果时显示空列表。

用户: 对,就这样。

这段对话已经承担了轻量需求规格的作用。对于这个边界清楚的小改动,专门再写一份文档,未必增加多少价值。不过,聊天里如果还有互相矛盾的要求,就需要先整理清楚当前有效的决定。

② 从先写文档到直接对话,改变的是需求形成的方式。

文档先行的方式,先集中梳理需求,再交给 AI 实施。对话协作的方式,则可以由人先表达目标,AI 调查项目、提出问题,双方逐步补齐细节。后者依赖三个条件共同发挥作用。

读取代码,让 Agent 可以自己找到接口和项目约定;运行测试,让它可以根据实际结果修正实现。围绕模型组织上下文、提供工具和管理执行的那层系统,就是这里所说的 Harness。

人因此可以少重复背景、少规定技术步骤,把更多精力放在目标和关键选择上。文档先行时也能让 AI 帮忙起草 Spec,两种方式可以组合使用,并没有统一的"旧流程被淘汰"的分界线。

③ 模型更聪明,也不能保证猜中没说出口的要求。

还是搜索功能。如果用户只说"加搜索",AI 选择搜索标题和正文,看起来也很合理。但如果产品只需要标题搜索,功能即使能够运行,也没有满足真实预期。

模型可以帮你发现问题、分析选项,但关键业务选择需要依据。测试也只能验证它检查到的条件;如果测试同样建立在错误理解上,通过测试仍然不能证明需求做对了。

项目规则可以要求"修改后必须测试",却不能代替本次需求里的"只搜索标题"。Harness 组织好上下文,也不等于已经替用户定义了一份完整、经过核对的需求规格。

④ 要不要单独写 Spec,看任务复杂度和交接需要。

一个小改动,几句话就能核对,保留清晰对话即可。多条业务规则、较长的开发周期或多人协作,会让约定越来越难追踪,这时集中整理 Spec 更有价值。

例如,"按钮文案改成提交"通常不需要单独建文档;"新增会员折扣,涉及适用人群、活动叠加和退款规则",就值得把条件与验收案例整理在一起。

也不必从空白页开始。可以先和 AI 讨论,再让它整理:

把已经确定的需求整理成一份简短 Spec,写清目标、范围、业务规则和验收条件;未确定的事项单独列出。

核对关键选择,需求变更时同步更新。判断这份文档有没有价值,可以看:明天换一个人或 Agent 接手,是否仍能准确知道要做什么,以及怎样才算做对?

相关推荐
vipxieliang1 小时前
ValidX 多租户系统的数据验证方案
java·spring boot
SimonKing1 小时前
一个 jar 搞定实时推送:我的轻量级 SSE 中间件 Stream Nexus
java·后端·程序员
程序员老刘1 小时前
本来没抱期望的 Seed-2.1-pro-0915,居然能当主力模型用了
llm·ai编程
编程老船长1 小时前
模型中立——把大模型做成"可替换零件",而不是焊死在业务里
java·前端·后端
用户2181697049301 小时前
java List Set Map
java
ServBay1 小时前
哑巴模型Jev到底要怎么用?一篇文章告诉你
aigc·openai·ai编程
codigger1 小时前
记一次给 Claude Code 装护栏的全过程
ai·ai编程·开发工具·claude code
IT枫斗者枫哥1 小时前
MyBatis只查两次,为什么还会查到别家客户?
java·数据库
tingke1 小时前
前端团队 Review 指南(open-code-review 版)
ai编程