哈喽,大家好,我是刘小排。我相信大部分人,用 AI 写复杂需求,最后都会变成 —— 又是自己手动重写。或者你也遇到过:AI 一开始写得很顺,越改越乱,最后变成屎山。

最近在群里有讨论,有程序员高手说,复杂的需求,Vibe Coding 容易出错,还不如手写。也有其他的程序员高手说,不一定,如果提前准备好技术方案,那是可以一步到位的。

哪个对?两个程序员高手都对。在实操的时候,我采用的是后者。正好,今天我有一个案例。

背景

大家知道,Raphael AI 是我的招牌产品之一,这可能是全世界唯一一个、为免费用户提供无次数限制的 AI 生图产品。

不断有 Raphael AI 用户问我,能否取消人机验证?因为 Raphael AI 的生图服务无次数限制,所以我必须加人机验证,防止盗刷。

问题:如何提供无限制 AI 生图的同时、尽可能去掉人机验证、还能防止盗刷呢?

我没有答案可以抄。世界上没有第二个 AI 生图产品,有这样变态的要求。

Raphael AI 产品界面
Raphael AI — 世界上第一个为免费用户提供无限制 AI 生图的产品

我们结合这个案例聊一聊,如何用 Vibe Coding 的方式做复杂需求?

我的答案

1 先花两小时讨论需求细节、技术方案
2 让 Codex / Claude Code / Gemini 3 Pro 三位大哥和我一起,互相评审方案
3 在我们四人完全达成一致之前,不要写任何代码,只写文档
4 文档完成后,让这三位大哥的任何一个做,都可以一步到位,不会出错

对于这个案例,我想到的初步方案是:1. 如果不登录,用 IP 限制次数,暂时去掉人机验证。2. 如果已登录,分为快速模式和慢速模式。3. 慢速模式可以排队,次数无限;快速模式扣除积分,不用排队。

想好了初步方案,那就要和三位 AI 大哥讨论了。

工作界面

工作界面如下图所示:

三屏并列工作界面:Codex + Claude Code + Antigravity
三屏并列工作界面:Codex + Claude Code + Antigravity(Gemini 3 Pro)

详细过程

讨论需求的过程,我详细展示给你:

步骤 1用豆包语音输入法,把需求、大致的方案,输入给飞书文档

  • 之所以要用飞书文档,是方便整理格式、方便写表格、方便分别复制给三位 AI 大哥、方便修改
  • 此时我一般会口述到 500~1000 字左右。反正是语音输入,不累,三分钟就说完了

步骤 2-3复制需求给三位大哥,让他们讨论并回答问题

复制飞书文档内的需求,分别给三位大哥,让他们:

  1. 用自己的话整理需求
  2. 阅读所有代码后提出技术方案
  3. 遇到需要我决策的内容,提出和我讨论

分别回答 AI 大哥提出的问题,继续追问是否还有其他要讨论的。如下图所示:

AI 大哥提出的细节问题
Claude Code 提出需要确认的产品细节 — 积分显示格式、积分不足引导流程等

步骤 4尽量多让 AI 大哥输出表格、流程图、ASCII 原型图

沟通过程中,尽量多让 AI 大哥输出表格、流程图、ASCII 原型图,方便沟通理解。下面有 3 个图,供你参考,分别是表格、流程图、ASCII 原型图。

用户场景矩阵表格
表格 — 更新后的用户场景矩阵,理清不同用户类型的 Fast Mode / Turnstile / IP 限制 / 排队策略
ASCII 技术决策流程图
流程图 — 401 需登录 → 检查积分 → 检查 IP 限流 → 验证 Turnstile 的决策流程
ASCII 界面原型图
ASCII 原型图 — 登录免费用户(关闭 Fast Mode)排队时的界面原型

步骤 5汇总方案,让 Claude Code 生成 Markdown 文档

等三位 AI 大哥几乎达成一致后,(复制)汇总三位大哥的方案,让 Claude Code 进行总结,生成 Markdown 格式的文档。文档需要同时包括需求、技术方案。

  • 为什么选择 Claude Code 来做主笔? —— 因为 Claude Code 说的话最容易理解
  • 如何判断三位 AI 大哥几乎达成一致了? 过程中,你也可以把三位大哥的输出内容互相复制,让互相检查
  • 生成的文档,要越详细越好。要多详细?详细到「给任何人看,都没有歧义」的程度

下面是我的朋友 @王梦珂 刚刚发给我的,她和 AI 的沟通记录。看出来了吗,她正在使用我们的方法:

朋友 @王梦珂 让 AI 互相检查的截图
朋友 @王梦珂 使用相同方法 — 让 AI 帮忙检查多个问题,按严重程度排序

步骤 6让另外两位大哥,再次审核完整版文档

如果有进一步的审核意见,把意见给到 Claude Code 主笔,让它修改文档。如下图所示,我把文档路径发给 Codex 和 Gemini 3 Pro 分别评审。

Codex 交叉评审
Codex 评审:发送文档路径请求 review
Gemini 3 Pro 交叉评审
Antigravity (Gemini 3 Pro) 评审

步骤 7收工

就是上面的过程了,比较费时间,但是我秉承的原则一直是:

慢就是快

如果你是新手朋友,可以参考我之前的文章 AI 编程的终极心法 Claude Code 极简入门:3 条铁律让你告别代码屎山

最终文档长什么样

最终文档会长什么样呢?我截几个图你们看看。

首先,文档详细到了何种程度?即便是 Claude Code,只写文档,也需要分步骤更新

Claude Code 分步更新文档的 Update Todos
文档复杂到 Claude Code 都需要创建任务列表,分步骤逐项更新

整体长度是 2846 行

文档更新内容摘要表格和统计数据
文档更新摘要 — 涉及 7 个章节的增改,以及最终统计数据

总行数:2,846 行

章节数:15 个主要章节

决策记录:32 条(D-001 到 D-032)

测试用例:覆盖单元测试、集成测试、E2E 测试

文档内容包括

文档内容:目录和背景与目标
图 1-2:左为 Markdown 源码,右为预览效果 — 15 章目录 + 背景与目标
文档内容:详细功能需求和状态管理
图 2:详细功能需求 — Fast Mode 开关的 UI 位置、状态管理、交互细节,全部表格化
文档内容:状态机设计流程图
图 3:技术方案 — Fast Mode 开关状态机设计(ASCII 流程图 + 预览对照)
文档内容:API 接口设计
图 4:API 设计 — POST /api/generate-image 的 TypeScript 接口定义
文档内容:前端实现方案
图 5:前端实现方案 — 组件结构树 + Fast Mode Toggle 关键代码

最终,当我们再让其他两位 AI 大哥再次评审 Claude Code 的方案时,它们再也无法提出任何意见。

Gemini 3 Pro 的最终评审反馈
Gemini 3 Pro 最终评审 — 「这份更新后的文档非常出色,无论是产品逻辑的严密性,还是技术实现的细节,都考虑得非常周全」

时间统计

2 小时
和 AI 讨论文档耗时
4 小时
写代码耗时
(全程没参与,E2E 自动化测试通过 Antigravity 内置浏览器完成)

大功告成。

常见问题

看不懂 AI 大哥说的技术术语,怎么办?

  • 你必须得看懂,否则你无法做决策,你也永远出不了新手村。
  • 如果是新手,那你可以新开一个窗口,专门用于解释技术术语,推荐用 Claude Code。不懂就问,问到全部懂为止。
  • Claude Code(Claude 系列模型)很擅长打比方,适合作为新手的学习搭子。
Claude Code 用游乐园比喻解释迪杰斯特拉算法
Claude Code 善于打比方 — 用游乐园和摩天轮向小学生解释迪杰斯特拉算法

为什么不用 spec-kit 或者 Cursor 的 Plan Mode 呢?

  • 因为过程中需要大量的微决策
  • 一开始,我们心里只有非常模糊的方向。最终方案,是需要我们和 AI 不断沟通中,才浮现出来的。
  • 无论 AI 有多么强,只有人类(也就是只有你)才能承担决策责任。

一定要像你这样,同时充值三位 AI 大哥吗?

  • 你可以简化为两个:Codex 是必须的,另外一个建议是 Claude Code,因为它最擅长说人话。
  • 还可以简化为:使用 Droid,只付一份钱,在程序内切换多个模型。
Droid 工具界面和模型选择
Droid — 一个客户端切换多个模型(GPT-5.1-Codex、Opus 4.5、Gemini 3 Pro 等),只付一份钱