文章目录(131 节)
- 这份文档怎么用
- 一、3 分钟开始
- 整套流程长什么样
- 三个 AI 分别干什么
- 我现在该找哪个 AI
- 现在开始:一共 5 步
- 第 1 步:把你的想法发给 GPT
- 第 2 步:拿到 GPT 给的 Prompt
- 第 3 步:交给 Claude Code
- 第 4 步:交给 Codex 验收
- 第 5 步:不通过就回 Claude 修,修完再验
- 第一次做项目,先别做这些
- 看不懂的词,先在这里查一下
- 二、第一次使用:跟着做一遍
- 准备你的项目想法
- 第一步:让 GPT 把想法整理清楚
- 你现在要做什么
- 打开什么
- 复制这段
- 你需要修改哪里
- 发送以后正常会看到什么
- 下一步
- 第二步:把 Claude Prompt 交给 Claude Code
- 你现在要做什么
- 打开什么
- 复制这段
- 你需要修改哪里
- 发送以后正常会看到什么
- 下一步
- 顺便说一下 HANDOFF.md 是什么
- 第三步:把项目交给 Codex 验收
- 你现在要做什么
- 打开什么
- 复制这段
- 你需要修改哪里
- 发送以后正常会看到什么
- 下一步
- 第四步:不通过,把问题交回 Claude 修
- 你现在要做什么
- 打开什么
- 复制这段
- 你需要修改哪里
- 发送以后正常会看到什么
- 下一步
- 第五步:Codex 再验收
- 你现在要做什么
- 打开什么
- 复制这段
- 你需要修改哪里
- 发送以后正常会看到什么
- 三、一个完整例子:今天吃什么助手
- 你最开始只说了一句话
- GPT 把它整理成了任务书
- 你把 Claude Prompt 整段发给 Claude Code
- 你把 Codex Prompt 发给 Codex
- 你把修复 Prompt 复制回 Claude
- 你让 Codex 再验一次
- 四、遇到问题,再来这里找
- 场景一:还在 GPT 阶段
- 只有一个模糊的想法,自己都不知道该怎么做
- 不知道第一版应该做多大
- GPT 给的方案太复杂
- 完全不知道技术栈怎么选
- 想让 GPT 先检查需求有没有漏洞
- 项目做到一半,想改需求
- 想让 GPT 规划第二版
- 想让 GPT 判断一个新功能值不值得做
- 场景二:Claude 不干活、干一半、说完成了
- Claude 只给你教程,不直接干活
- Claude 做了一半就停下
- Claude 一直问你「是否继续」
- 改完以后,想让 Claude 自己先做一次自检
- Claude 说「全部完成」,但你不放心
- 不知道该说什么,但 AI 明显还没做完
- 场景三:项目报错
- 报错了,而你完全看不懂
- 终端刷出一大段报错
- 安装依赖失败
- 项目能启动,但浏览器页面是空白
- 第三方 API 一直失败
- 项目越来越慢
- 不知道问题出在哪,让 AI 自己去查
- 场景四:功能有问题
- 页面能看,但按钮点了没反应
- 怀疑项目里有假数据和假接口
- 项目需要接第三方 API
- 场景五:我想改这个项目
- 只想改一个局部,不想它动其他地方
- 想增加一个新功能
- 想删掉一个功能
- 担心 AI 把整个项目重写
- 通用「别乱改」提示词
- 代码开始变得很乱
- 接手别人或者 AI 做了一半的项目
- 场景六:页面不好看
- 想把界面做好看,但不想把功能改坏
- 想去掉典型的 AI 味界面
- 想支持手机浏览
- 想加深色模式
- 场景七:Codex 验收
- 准备把项目交给 Codex 验收
- 想让 Codex 更严格一点
- 只想做代码审查,不做功能验收
- 只想检查最近这次改动
- Codex 的报告太笼统
- 找到很多 P2、P3,但核心已经能用了
- 验收不通过时,让 Codex 生成修复 Prompt
- 把 Codex 的报告交回 Claude
- Claude 说 Codex 报的问题不存在
- Claude 修完了,做二次验收
- 项目已经通过,做发布前最后检查
- 场景八:项目准备结束(README、HANDOFF、Git)
- 让 Claude 创建或更新 HANDOFF.md
- 让 Claude 整理 README.md
- 让 Claude 初始化 Git
- 不会写 Git commit 信息
- 想提交代码,但不想它乱推远程仓库
- 项目结束前的最后交付检查
- 至少记住这 8 条
- 场景九:不知道下一步该找谁
- 五、做完第一个项目以后,再看这些
- 为什么要把工作拆给三个 AI
- 几个容易踩的坑
- 推荐的目录结构
- 项目状态:现在轮到谁
- 怎么把 GPT 的额度省下来
- Git:为什么建议用
- 想再往后走,可以升级什么
- 新手版本只需要这五样
- 六、你现在不需要学的东西
- 七、最后只记住这张图
你负责说清楚自己想做什么。GPT 把想法整理成任务书,Claude 把任务做成能跑起来的项目,Codex 站到对面检查它到底做完没有。没做完,退回 Claude 修,再验一次。
适合没写过代码的人。你只需要会打字、会复制粘贴。
整条路线只走一遍这个循环:
你的想法
↓
GPT 整理需求、写验收标准、生成两份 Prompt
↓
Claude 开发、运行、测试、修复、写交接单
↓
Codex 独立验收
↓
通过 → 结束
不通过
↓
Codex 出修复清单
↓
Claude 修
↓
Codex 再验这份文档怎么用
不需要从头读到尾。按你现在的情况挑一条:
-
想立刻动手:看「3 分钟开始」,照着复制粘贴
-
想完整走一遍:看「第一次使用:跟着做一遍」
-
已经卡住了:看「遇到问题,再来这里找」,直接翻到对应标题
所有提示词里,需要你改的地方都用 【 】 标出来。看到 【 】,把里面的字换成你自己的内容,括号本身可以删掉,其他内容一般不用动。
一、3 分钟开始
整套流程长什么样
你有一个想法
↓
发给 GPT
↓
复制 GPT 生成的《CLAUDE 开发 Prompt》
↓
交给 Claude Code
↓
Claude 做完,交给 Codex
↓
Codex 验收
↓
有问题 → 复制修复 Prompt 回 Claude 修
↓
再交给 Codex
↓
通过,结束三个 AI 分别干什么
| 工具 | 负责 | 不负责 |
|---|---|---|
| GPT | 把你的想法整理成明确需求和验收标准,生成两份 Prompt | 不写代码 |
| Claude / Claude Code | 真正建项目、写代码、运行、测试、修 Bug、留交接单 | 不给自己发合格证 |
| Codex | 独立检查项目到底能不能用,找出漏做和造假的地方 | 第一轮不改代码 |
一句话:GPT 定义问题,Claude 完成项目,Codex 独立验收。
我现在该找哪个 AI
这是小白最容易迷糊的地方。按这个判断:
还不知道要做什么、想法还很模糊 → GPT
需求已经定了,要开始做 → Claude
Claude 说做完了 → Codex
Codex 说有问题 → Claude
Claude 修完了 → Codex
想加新功能、想改方向 → GPT记不住也没关系。把最近的对话结果贴给任意一个 AI,问它「我现在该找谁」,也能得到答案(提示词见「场景九」)。
现在开始:一共 5 步
第 1 步:把你的想法发给 GPT
打开 ChatGPT(或任意 GPT 对话窗口)。
复制下面整段。
我想做一个项目。
我的想法是:【在这里写你的项目想法,一句话也行】
请不要直接写代码。
请按照「GPT × Claude × Codex 三段式 AI 开发工作流」,
先帮我把这个想法整理成完整需求,并生成两份可以直接复制使用的 Prompt:
1.《CLAUDE 开发 Prompt》——交给 Claude Code 开发用
2.《CODEX 验收 Prompt》——交给 Codex 独立验收用
需求里请包含:项目目标、核心功能、第一版不做什么、用户使用流程、异常情况、可验证的验收标准、运行方式。
验收标准必须写成「用户执行什么操作 → 系统应该出现什么结果」,
不要写「体验良好」「功能完善」这种没法验收的话。把 【 】 里的内容换成你自己的想法。比如:
我想做一个每天帮我决定吃什么的小软件,根据我的口味、预算和距离推荐几个选择。
发送。
第 2 步:拿到 GPT 给的 Prompt
GPT 会给你一份比较长的内容,里面有两段标题:
《CLAUDE 开发 Prompt》
《CODEX 验收 Prompt》不用全看懂。现在只找 《CLAUDE 开发 Prompt》,从这一行开始整段复制到它的结尾。
顺手把 GPT 的整份回答保存一下(复制到记事本、或者留在对话里别删)。后面 Codex 验收时,要拿这份需求当对照标准。
第 3 步:交给 Claude Code
打开 Claude Code,进入你想放项目的目录。
如果这个项目还没建过,可以让它先建一个目录,比如:
帮我创建一个项目目录,名字叫 【在这里写项目名】,之后所有工作都在这个目录里做。然后把刚才复制的《CLAUDE 开发 Prompt》整段粘贴进去,发送。
接下来它会自己读文件、写代码、装依赖、跑项目、跑测试、报错再修。这一步通常要几分钟到几十分钟,不用一直盯着。
复制下面整段(如果它只给你讲怎么做,没有真的动手):
不要只给我教程或代码示例。
请直接在当前项目目录里创建文件、修改文件、安装依赖、运行项目、运行测试,发现问题直接修。
我需要的是做完的项目,不是「接下来应该怎么做」的说明。
继续执行,直到项目能真正跑起来。第 4 步:交给 Codex 验收
Claude 说做完之后,用 Codex 打开同一个项目目录。
找到 GPT 给你的 《CODEX 验收 Prompt》,整段复制粘贴给 Codex。
如果 GPT 没有给你能用的验收 Prompt,复制下面整段:
你现在是这个项目的独立验收者,不是开发者。
这个项目由另一个 AI 完成。不要相信它自己说的「已经完成」。
请先阅读:项目源码、README.md、HANDOFF.md、Git diff,然后实际运行验证。
项目要求如下:
【在这里粘贴 GPT 生成的项目需求和验收标准】
必须实际执行,不能只看文档:
安装依赖、启动项目、运行构建、运行测试、逐条验证验收标准。
重点找:漏做的需求、跑不起来、构建失败、假功能(按钮点了没反应)、
硬编码的假结果、刷新后数据丢失、只为了测试通过而写的特殊逻辑。
最后只输出两个结论之一:验收通过 / 验收不通过。
如果不通过,列出每个问题:严重程度、文件位置、复现步骤、当前结果、预期结果,
并额外生成一份《CLAUDE 修复 Prompt》,让我可以直接复制回 Claude。
这一轮不要修改代码。Codex 会给结论。
第 5 步:不通过就回 Claude 修,修完再验
看到「验收不通过」不用慌,这轮验收起作用了。
复制 Codex 给你的 《CLAUDE 修复 Prompt》,回到 Claude Code 粘贴发送。
如果 Codex 没生成修复 Prompt,复制下面整段:
Codex 已经完成独立验收,下面是你需要修复的问题:
【在这里粘贴 Codex 的完整验收报告】
请继续作为这个项目的主开发工程师修复。
不要重做整个项目,不要删除已经正常的功能。
按 P0 → P1 → P2 → P3 的顺序处理。
每个问题先复现,再修,修完检查有没有影响其他功能。
不要为了让测试通过而硬编码,不要通过删除测试来解决测试失败。
修完以后:重新装依赖、重新构建、重新跑测试、重新走一遍 Codex 提到的复现步骤,
然后更新 HANDOFF.md。
修复完成后停止,不要自己宣布验收通过。Claude 修完,再回到 Codex,复制下面整段:
Claude 说已经按照上一轮验收报告完成修复。
请重新执行完整验收,不要默认上一轮的问题已经解决。
请重新验证:原始验收标准、上一轮发现的问题、构建、测试、核心功能、边界情况。
最后重新给出:验收通过 或 验收不通过。
如果不通过,只列出现在仍然存在的问题。还是不过,就重复第 5 步。跑通一轮完整的「想法 → GPT → Claude → Codex → 修复 → 通过」,你基本就会了。
第一次做项目,先别做这些
-
不要让三个 AI 同时改代码。同一时间只有一个 AI 在动文件。
-
第一版不要一次做十几个功能。3 到 5 个就够,先跑起来。
-
第一次报错不要推倒重做。报错是正常的,交给 Claude 修。
-
Codex 说不通过,不要重写项目。它列的是待办清单,不是判决书。
-
不要随便让 AI 升级技术栈或换框架。能跑就别动。
-
不要跳过测试就认为完成。要看到它真的运行过。
-
不要自己动手改代码。看不懂的改动最容易把项目弄坏。
看不懂的词,先在这里查一下
| 词 | 一句话解释 |
|---|---|
| Git | 项目的修改记录。有了它,Codex 能看清 Claude 到底改了什么 |
| Build(构建) | 检查项目能不能生成一份可以正式使用的版本。开发时能跑、构建时失败,是常见情况 |
| Lint | 自动检查代码里明显问题的工具 |
| HANDOFF.md | Claude 写给下一个 AI 的「项目交接单」,记录做了什么、怎么运行、还有什么问题 |
| MVP | 第一版只做最重要、真正能用的功能 |
| API | 软件跟其他服务通信的接口。比如让程序去查天气,靠的就是天气服务的 API |
| 终端 / 命令行 | 你输入命令、程序输出文字的那个窗口。报错红字就出现在这里 |
| 依赖 | 项目要用到的别人写好的代码包。装依赖失败是新手最常见的报错之一 |
| 仓库 | 存放项目代码的地方,本地叫本地仓库,放到网上叫远程仓库 |
| README.md | 项目的说明书,写给第一次拿到这个项目的人看 |
| P0 / P1 / P2 / P3 | 问题严重程度。P0 是项目不能用,P1 是核心功能坏了,P2 是小 Bug,P3 是改进建议 |
| 验收标准 | 判断项目做没做完的条件,必须能一条条实际验证 |
先扫一眼就行,不用记。
二、第一次使用:跟着做一遍
这一章把整条路完整走一次,每一步都告诉你:现在做什么、复制什么、正常会看到什么、下一步去哪。
每步结构都一样:
-
你现在要做什么
-
打开什么
-
复制这段
-
你需要修改哪里
-
发送以后正常会看到什么
-
下一步
准备你的项目想法
先想清楚一件事:你想做什么。
不用很专业,说人话就行。可以只有一句:
我想做一个帮我决定每天吃什么的小软件。也可以多说几句,把你在意的条件写进去:
我想做一个生活助手。
每天晚上不知道第二天吃什么。
我希望把自己喜欢的菜、预算、忌口和附近餐厅录进去。
以后打开软件,它直接推荐三种选择。
不要太复杂,我自己用。判断标准只有一条:这段话你自己看得懂就行。 GPT 的工作就是把它整理成专业的需求。
不用提前想技术方案,也不用想用什么语言写。那是 GPT 和 Claude 的事。
第一步:让 GPT 把想法整理清楚
你现在要做什么
把想法交给 GPT,让它变成一份能干活的开发任务书。
打开什么
ChatGPT,或任意 GPT 对话窗口。
复制这段
你现在不是这个项目的程序员,而是我的:
- 产品经理
- 需求分析师
- 软件架构规划助手
- AI Prompt Engineer
我接下来会用一句话或者几句话,告诉你我想做一个什么项目。
你的任务不是写代码,而是把我的想法整理成一份可以直接交给 Claude Code 执行的完整开发任务。
目标:尽量减少后续 Claude 猜需求、反复问我、返工的情况。
如果我的需求里缺少某些信息,但这些信息不影响核心功能,请直接采用适合普通用户的合理默认方案,并明确写出你的假设。
只有缺少的信息会导致整个项目没法确定时,才来问我。
请按下面这 12 个部分输出,每部分用中文小标题标明:
一、项目名称
起一个简单明确的名称。
二、项目目标
用普通人能听懂的话说明:这个项目解决什么问题、谁会使用、最终应该做成什么样。
三、核心功能
列出必须完成的功能,并区分:
必须实现的功能
以后可以增加的功能
不要擅自扩大项目范围。
四、用户使用流程
描述用户从打开项目开始,到完成一次完整操作的过程。
五、技术方案
根据项目复杂度,选择尽可能简单、成熟、稳定的方案。
普通小项目优先选:简单、容易运行、依赖少、社区成熟、方便 AI 维护。
不要为了显得技术复杂而增加不必要的框架。
六、界面要求
说明页面结构、主要按钮、信息展示、基本交互、响应式要求、加载状态、空状态、错误状态。
如果我没有指定设计风格,采用:简洁、现代、克制、易用。不要过度设计。
七、项目结构
规划主要文件和目录,但不要写具体代码。
八、数据与状态
说明:数据从哪来、要不要数据库、要不要本地存储、要不要接第三方 API、要不要账号系统。
能不用复杂后端解决的简单项目,不要强行加后端。
九、异常情况
提前考虑:输入为空、网络失败、API 失败、数据不存在、重复操作、刷新页面、移动端、边界输入。
十、验收标准
这部分是重点。
把每一个核心功能,转换成可以实际验证的验收条件。
不要写「体验良好」「代码质量高」「功能完善」这类无法验证的话。
必须写成:用户执行什么操作 → 系统应该出现什么结果。
十一、运行方式
说明项目完成后:怎么装依赖、怎么启动、怎么测试、正常情况下应该看到什么。
十二、开发约束
默认要求:
不要为了测试通过而硬编码结果。
不要做只有界面、没有实际功能的假功能。
不要随意删除已有功能。
不要增加需求里没要求的大型功能。
不要执行破坏性系统操作。
优先使用成熟依赖。
保持代码结构清晰。
项目必须能实际运行。
最后,生成两份可以直接复制使用的 Prompt:
====================
《CLAUDE 开发 Prompt》
这份 Prompt 会直接交给 Claude Code。
它必须包含:项目背景、项目目标、完整功能、技术要求、UI 要求、边界条件、开发步骤、测试要求、完成条件、验收标准。
并要求 Claude:
先检查当前工作目录;
理解已有代码;
制定实施方案;
然后直接开始实施;
自己安装必要依赖;
自己运行项目;
自己运行测试;
自己修复发现的问题;
把整个项目做完再停。
如果项目目录不是 Git 仓库,在适合的情况下初始化 Git。
项目完成后创建 HANDOFF.md,里面记录:
完成了什么
关键文件
运行命令
测试命令
已经通过的测试
逐条对应验收标准的完成情况
已知限制
====================
《CODEX 验收 Prompt》
这份 Prompt 不负责重新开发项目。
Codex 的身份是:独立 QA、代码审查员、测试工程师。
它要根据同一份项目要求,独立判断 Claude 是不是真的把项目做完了。
要求它检查:项目能不能安装、能不能启动、能不能构建、核心功能是不是真的存在、验收标准有没有满足、边界情况、明显 Bug、错误处理、安全问题、有没有假实现、有没有硬编码、有没有漏做的功能、有没有破坏性修改。
最后必须输出:验收结果、发现的问题、问题严重程度、问题证据、复现方法、建议修复方式。
如果验收失败,额外生成一份《给 Claude 的修复 Prompt》,让我可以直接复制回 Claude。
现在等待我提供项目想法。你需要修改哪里
不用改。整段发给 GPT,然后再单独发一条你的项目想法就行。
发完之后,再单独发一条你的想法,比如:
我想做一个每天帮我决定吃什么的小软件,根据我的口味、预算和距离推荐几个选择。发送以后正常会看到什么
GPT 会输出一份完整的需求文档,最后带两段:
-
《CLAUDE 开发 Prompt》
-
《CODEX 验收 Prompt》
内容会比较长,这是正常的。它越具体,后面 Claude 猜得越少。
下一步
拿到结果别急着研究。先把这份需求整段保存下来,后面 Codex 验收时要拿它当标准,开发几轮以后 AI 容易跑偏,那时还得回头看。
保存好之后,直接进第二步。
第二步:把 Claude Prompt 交给 Claude Code
你现在要做什么
让 Claude 真正把这个项目建出来,不是给你讲怎么做。
打开什么
Claude Code。建议让它打开项目文件夹之后再开始,这样它就能直接在这个目录里干活。
如果项目文件夹还没建,直接对它说一句就行:
帮我创建一个项目文件夹,名字叫 【在这里写项目名】,之后所有工作都在这个文件夹里做。如果它已经在别的地方打开了,也可以让它切过去:
请切换到 【在这里写项目文件夹的完整路径】 工作。不确定路径怎么写,可以让它帮你找:
我不确定项目文件夹的路径。请先列出当前目录下有哪些文件夹,然后问我应该用哪一个。复制这段
把 GPT 生成的那一段 《CLAUDE 开发 Prompt》 整段复制过去。
如果 GPT 生成的 Prompt 不完整,复制下面整段:
你现在是这个项目的主开发工程师。
下面这份是已经确认的项目需求:
<project_spec>
【在这里粘贴 GPT 生成的完整项目需求,包含验收标准】
</project_spec>
你的目标不是给我教程,也不是只告诉我应该怎么做。
你的目标是直接在当前项目中把这个项目完成。
工作原则:
先检查当前工作目录、现有文件、项目结构、依赖和已有实现。
不要在没了解现有项目的情况下直接大规模重写。
理解需求以后,制定一个简短的实施方案,然后开始执行,不需要等我逐步确认。
优先做出能实际运行的项目,而不是只生成示例代码。
开发过程中:
实现全部核心功能;
处理必要的异常状态;
保持项目结构清晰;
使用成熟、必要的依赖;
不要为了测试通过而硬编码结果;
不要做只有界面、没有真实逻辑的假功能;
不要擅自扩大需求范围;
不要为了「以后可能用得上」而过度设计。
如果当前目录适合使用 Git,但还不是 Git 仓库,可以初始化 Git。
本地、可逆的操作,你可以直接执行。
涉及删除大量文件、覆盖重要数据、强制推送、修改共享系统这类难以恢复的操作时,不要擅自执行。
写完代码必须实际验证,至少完成:
安装依赖检查
启动检查
构建检查
现有测试
新增必要测试
核心功能检查
明显边界情况检查
发现问题直接修,修完重新测。
不要在项目还跑不起来的时候宣布完成。
项目达到要求以后,创建或更新 HANDOFF.md,必须包含:
项目完成情况
主要实现内容
主要文件及作用
安装命令
启动命令
构建命令
测试命令
测试结果
逐条对应验收标准的完成情况
仍然存在的已知限制
最后向我报告:完成了什么、怎么运行、测试情况、有没有已知问题。
除非遇到真正无法解决、并且会卡住整个项目的问题,否则持续工作,直到项目完整完成。你需要修改哪里
只改 【在这里粘贴 GPT 生成的完整项目需求】 这一处,把 GPT 给的需求整段贴进去。
发送以后正常会看到什么
Claude 会先看目录、列一个简短计划,然后开始创建和修改文件。中间会出现装依赖、跑命令、报错、再修的过程。
正常的过程长这样:
-
目录里真的多出了文件
-
它执行了安装依赖的命令
-
它启动了项目或跑了测试
-
它遇到过报错,并且自己继续修
-
最后生成了
HANDOFF.md
出现这些情况说明它没在干活:
它只输出一段代码说「你可以把这段保存成某个文件」,但没真的动手。这时复制下面整段:
不要继续给我教程、操作建议或代码示例。
你现在可以直接操作当前项目。
请直接:读取文件、修改文件、创建缺失的文件、安装必要依赖、运行项目、运行测试、修复错误。
我需要的是做好的项目,不是「接下来应该怎么做」的说明。
请从刚才停下的位置继续执行。它做了一半停下来。复制下面整段:
继续。
不要重新总结前面的内容。
请检查当前项目状态,找出还有哪些原始需求没有完成。
按照原始验收标准逐条核对。
没做完的继续做;已经完成的不要重复重写;发现错误直接修;
完成后重新运行构建和测试。
所有核心验收标准都完成之后再停。它一直问你「要不要继续」。复制下面整段:
后续不需要因为正常的本地开发步骤反复向我确认。
比如:创建项目文件、修改项目代码、安装项目正常依赖、运行开发服务器、
运行构建、运行测试、运行 lint、创建测试文件、修复普通代码错误。
这些可以直接执行。
只有下面这些高风险操作才需要问我:
大量删除用户文件、删除项目外的文件、覆盖无法恢复的数据、强制推送、
修改生产环境、修改真实线上数据库、涉及账号付款或对外发布。
其余情况请自主完成。下一步
等到 Claude 说完成,并且项目目录里出现了 HANDOFF.md,就可以进第三步。
顺便说一下 HANDOFF.md 是什么
它是 Claude 写给下一个接手的人看的项目交接单。因为接下来 Codex 要接手检查,Codex 需要知道:这个项目是干什么的、做了哪些功能、哪些文件重要、怎么装、怎么跑、怎么测、哪些验收标准完成了、还剩什么问题。
一份合格的交接单大概长这样:
# Project Handoff
## 项目简介
## 已完成功能
## 关键文件
## 安装
## 启动
## 构建
## 测试
## 验收标准完成情况
## 已知限制但要注意:HANDOFF.md 只是 Claude 的自述。Codex 不能因为它写着「所有功能已完成」就直接相信,必须自己去跑一遍。
第三步:把项目交给 Codex 验收
你现在要做什么
换一个 AI,独立检查这个项目到底能不能用。
打开什么
Codex,打开同一个项目目录。
复制这段
优先用 GPT 生成的那份 《CODEX 验收 Prompt》。
如果 GPT 没有给你能用的验收 Prompt,复制下面整段:
你现在不要把自己当成这个项目的开发者。
你的角色是:
独立 QA 工程师
高级代码审查员
软件测试工程师
这个项目主要由另一个 AI 开发。
你的责任不是相信开发者说的「已经完成」,而是根据代码、运行结果和验收标准独立验证。
首先阅读:
项目源代码
README.md
HANDOFF.md
Git diff
项目需求和验收标准
以下是原始项目需求:
<project_spec>
【在这里粘贴 GPT 最初生成的项目需求和验收标准】
</project_spec>
请实际检查项目,不要只读 HANDOFF.md 就下结论。
允许执行正常、安全的本地验证操作,比如:
查看文件、搜索代码、安装项目已声明的依赖、运行测试、运行构建、运行 lint、
启动项目、检查日志、检查 Git diff。
不要因为开发者声称某个功能完成,就直接认为它完成了。
逐条验证验收标准。
重点寻找:
遗漏需求
无法运行
构建失败
功能 Bug
边界条件 Bug
错误处理问题
明显安全问题
假功能
占位实现
硬编码
只为测试通过而写的特殊逻辑
前后端接口不一致
依赖问题
死代码
明显性能问题
破坏已有功能的修改
不要为了挑问题而挑问题。
只报告真实、能解释或能复现的问题。
发现问题时尽量提供:涉及文件、涉及位置、问题原因、复现步骤、预期结果、实际结果、严重程度。
严重程度这样分:
P0:项目无法使用、严重安全问题或核心数据风险
P1:核心功能错误、重要需求缺失、明显影响正常使用
P2:非核心 Bug、边界情况或维护性问题
P3:轻微问题和改进建议
最后按下面格式输出:
# 验收结果
只能明确写「验收通过」或「验收不通过」。
# 验收标准检查
逐条检查原始验收标准:要求 / 结果 / 证据。
# 自动化检查
列出安装、启动、构建、测试、Lint 的真实运行结果。
# 问题清单
按 P0 / P1 / P2 / P3 分类。没有问题的级别不用强行填写。
# 最终结论
说明当前项目是不是已经达到可以交付的状态。
判定标准:
不存在 P0;
不存在 P1;
所有核心验收标准都通过;
项目能正常运行。
满足则判定「验收通过」,否则判定「验收不通过」。
如果验收不通过,最后生成一份《CLAUDE 修复 Prompt》,必须可以直接复制回 Claude,里面包含:
所有需要修复的问题、涉及文件、复现方式、正确预期、修复优先级、修复后必须重新运行哪些测试。
这一阶段不要修改代码。
你的任务是独立发现问题、出验收报告。你需要修改哪里
只改 【在这里粘贴 GPT 最初生成的项目需求和验收标准】,把最开始保存的那份需求贴进去。
发送以后正常会看到什么
Codex 会去看代码、跑命令,然后给一份验收报告,结论只有两种:
验收通过验收不通过不通过时会列出问题,通常带 P0 / P1 / P2 / P3 的级别。
怎么看结论
-
看到「验收通过」:项目到这里就算完成了,跳到第五步收尾
-
看到「验收不通过」:这是正常现象,进第四步
Codex 说不通过,不代表项目失败。它做的事就是替你找出还没处理好的地方。
下一步
不管通过还是不通过,都别让 Codex 在这一轮直接改代码。让它先出报告,改代码交给 Claude。
第四步:不通过,把问题交回 Claude 修
你现在要做什么
把 Codex 找到的问题,原样交给 Claude 修。
打开什么
Claude Code,还是那个项目目录。
复制这段
优先用 Codex 生成的 《CLAUDE 修复 Prompt》。
如果没有,复制下面整段:
Codex 已经完成了对当前项目的独立验收。
下面是验收发现的问题:
<review_result>
【在这里粘贴 Codex 的完整验收报告】
</review_result>
请继续作为当前项目的主开发工程师修复这些问题。
要求:
不要重新开发整个项目;
不要删除已经正常工作的功能;
按 P0 → P1 → P2 → P3 的顺序处理;
每个问题先复现,再修复;
每修完一个问题,检查有没有影响其他功能;
不要为了测试通过而硬编码;
不要通过删除测试来解决测试失败;
不要降低原始验收标准;
不要隐藏错误。
完成修复以后:
重新安装必要依赖;
重新运行构建;
重新运行测试;
重新检查核心功能;
重新走一遍 Codex 提出的复现步骤。
然后更新 HANDOFF.md,记录:这一轮修了哪些问题、改了哪些关键文件、
重新跑了哪些测试、测试结果、仍然存在的问题。
修复完成后停止。
不要自己宣布 Codex 验收通过。
最终是否通过,交给 Codex 再判断。你需要修改哪里
只改 【在这里粘贴 Codex 的完整验收报告】。
发送以后正常会看到什么
Claude 会逐个复现问题、改代码、重新跑测试,然后更新 HANDOFF.md。
有时它会说某个问题复现不出来。这时候不要让它用一句话就判定「不存在」,复制下面整段:
不要只用文字判断这个问题不存在。
请按照 Codex 给出的复现步骤实际验证。
如果复现失败:
记录你实际执行的命令或操作;
记录实际结果;
检查当前代码是不是已经变了;
判断这个问题是不是已经被其他修改顺带修掉了。
如果你确认 Codex 报的是误报,请给出可以验证的证据。
不要因为「看代码感觉没问题」就直接判误报。下一步
Claude 修完,回到 Codex 做第二次验收。
第五步:Codex 再验收
你现在要做什么
让 Codex 重新检查一遍,而不是默认问题已经修好了。
打开什么
Codex,同一个项目目录。
复制这段
Claude 已经根据上一轮验收报告完成修复。
请进行二次验收。
不要因为 Claude 声称已经修复就直接通过。
请优先重新验证上一轮的所有 P0、P1、P2。
然后重新运行:构建、测试、lint、核心用户流程。
还要检查这次修复有没有引入新的问题。
最后明确输出:验收通过 或 验收不通过。
如果不通过,只列出现在仍然存在的问题,不要重复已经确认修复的。你需要修改哪里
不用改,直接整段发。
发送以后正常会看到什么
两种结果:
-
「验收通过」:项目完成,进「一个完整例子」之后的收尾部分,看看要不要整理 README 和 Git
-
「验收不通过」:回到第四步,继续修,再验
这个循环可以走好几轮,很正常。每一轮问题都会更少、更小。
Codex 出问题清单
↓
Claude 修
↓
Codex 再验
↓
通过 → 结束三、一个完整例子:今天吃什么助手
用一个很小的项目,把三个 AI 怎么接力走一遍。这里不看代码,只看流程。
你最开始只说了一句话
我想做一个每天帮我决定吃什么的小软件。
我可以自己录入喜欢的菜和附近餐厅,打开以后它直接给我三个建议。
我自己用,不要做太复杂。GPT 把它整理成了任务书
GPT 整理完之后给你:
项目名称:今天吃什么
项目目标:解决每天不知道吃什么的问题,只给自己用
核心功能(第一版):
1. 录入候选餐厅或菜名
2. 点击「帮我选」,随机给出 1 个结果
3. 可以查看已录入的列表
4. 关掉再打开,之前录入的还在
第一版不做:登录、账号、云同步、地图、评分、多人共享
验收标准:
- 输入三个餐厅后点击「帮我选」,必须从三个里选出一个并显示名称
- 录入的餐厅刷新页面后仍然存在
- 列表为空时点击「帮我选」,要给提示,不能白屏或报错
技术方案:本地网页 + 浏览器本地存储,不需要服务器和数据库
运行方式:安装依赖 → 启动开发服务器 → 浏览器打开本地地址最后附上《CLAUDE 开发 Prompt》和《CODEX 验收 Prompt》两段。
你把 Claude Prompt 整段发给 Claude Code
Claude 开始干活:建项目、写页面、写推荐逻辑、做本地存储、启动项目、跑测试。中途它遇到一次报错,自己修好了。
做完之后,项目目录里出现了 HANDOFF.md,写着:
已完成:录入、随机推荐、列表查看、本地保存
启动命令:npm run dev
测试命令:npm test
已知限制:没有做移动端专门适配你把 Codex Prompt 发给 Codex
Codex 打开同一个目录,读代码、跑构建、跑测试,然后给出结论:
验收不通过
P1:刷新页面后,录入的餐厅全部丢失。
证据:在浏览器里录入两家餐厅并刷新,列表变空。
原因:数据只存在内存里,没有写入本地存储。
原始需求要求「关掉再打开,之前录入的还在」,这一条没有满足。
P2:列表为空时点击「帮我选」,界面没有任何反应。
原始需求要求给出提示。后面附一份《CLAUDE 修复 Prompt》。
注意两件事:Codex 不会自己去改代码;它说的每一条都能复现,不是「我觉得这里不太优雅」。
你把修复 Prompt 复制回 Claude
Claude 复现了这个问题,确认是真的,然后:
把数据写入浏览器本地存储
在读取时恢复
列表为空时给出提示文字
补了对应的测试
重新跑构建和测试
更新 HANDOFF.md你让 Codex 再验一次
Codex 重新跑了一遍,重点看上一轮那两个问题:
P1 已修复:录入两家餐厅后刷新,数据仍然存在
P2 已修复:空列表点击时给出提示文字
构建通过,测试通过,其余核心功能正常
验收通过项目结束。整个过程你只做了四件事:说一句想法、复制、粘贴、再复制。
四、遇到问题,再来这里找
这一章是工具箱。主流程已经走通了的话,平时不用读。
遇到卡住的时候,按标题找到对得上的那一条,复制代码块里的内容发给对应的 AI 就行。
场景目录:
-
场景一:还在 GPT 阶段(想法模糊、方案太复杂、不知道技术栈)
-
场景二:Claude 不干活、干一半、说完成了
-
场景三:项目报错
-
场景四:功能有问题
-
场景五:我想改这个项目
-
场景六:页面不好看
-
场景七:Codex 验收
-
场景八:项目准备结束(README、HANDOFF、Git)
-
场景九:不知道下一步该找谁
场景一:还在 GPT 阶段
只有一个模糊的想法,自己都不知道该怎么做
复制给 GPT:
我有一个项目想法,但现在还比较模糊。
我的想法是:
【在这里写你的想法】
你先不要写代码。
请先帮我把这个想法整理清楚。
你需要帮我判断:
这个项目真正要解决的问题是什么;
谁会使用;
最核心的使用场景是什么;
第一版最少需要哪些功能;
哪些功能现在没必要做;
有哪些地方是我没有考虑到的;
怎样做才能让项目尽量简单,但真正可用。
如果有不影响核心方向的小问题,请直接采用适合普通用户的合理默认方案。
如果真的存在会改变整个项目方向的问题,再问我。
最后请输出:
项目目标
目标用户
核心场景
第一版核心功能
暂时不做的功能
建议技术方案
用户完整使用流程
验收标准
先不要生成代码。不知道第一版应该做多大
AI 很容易把项目做得过于复杂。想压缩的时候,复制给 GPT:
请把这个项目重新按照 MVP 思路压缩。
MVP 的目标不是功能丰富,而是:
能够真正运行;
能够解决最核心的问题;
普通用户第一次打开就知道怎么用;
尽量减少依赖和复杂架构;
尽量减少后端、账号系统和服务器;
能在最短路径内完成一次完整使用流程。
请把现有需求分成三类:
第一版必须做
以后可以增加
现在明确不要做
第一版最多保留 3~5 个核心能力。
不要因为「以后可能需要」就提前加复杂功能。
最后重新生成适合 Claude 执行的开发 Prompt。GPT 给的方案太复杂
复制给 GPT:
这个方案对于第一次做项目的人来说太复杂了。
请重新设计。
原则:
优先本地运行;
优先单体项目;
能不用数据库就不用数据库;
能用本地存储就不要先上云;
能不登录就不要做账号系统;
能不用微服务就不用微服务;
能少一个框架就少一个框架;
优先选择成熟、资料多、AI 容易维护的技术;
不要为了技术先进而增加复杂度。
请保持原来的核心功能不变,只降低实现难度。
最后重新生成:
简化后的技术方案
项目结构
Claude 开发 Prompt
Codex 验收 Prompt完全不知道技术栈怎么选
复制给 GPT:
我不懂技术栈。
请不要让我在一堆框架之间自己选。
根据这个项目的实际需求,直接帮我选一套最适合电脑小白和 AI 编程的技术方案。
选择标准:
安装简单;
运行简单;
社区成熟;
文档丰富;
AI 熟悉;
依赖尽量少;
不使用已经明显过时的技术;
后续方便 Claude 和 Codex 继续维护。
请告诉我:
为什么选这套技术;
为什么没必要选更复杂的方案;
需要安装什么;
启动命令是什么;
构建命令是什么;
测试命令是什么。
最后把确定后的技术方案写进 Claude 开发 Prompt。想让 GPT 先检查需求有没有漏洞
复制给 GPT:
在生成 Claude 开发 Prompt 之前,请先站在三个角度检查一次我的需求:
产品经理
普通用户
测试工程师
重点找:
前后矛盾
缺少的关键流程
无法验收的描述
过度复杂的功能
用户可能卡住的地方
没有定义的异常情况
开发时容易产生歧义的地方
不要直接扩展功能。
只指出真正会影响开发和验收的问题。
然后给出修改后的最终需求。项目做到一半,想改需求
复制给 GPT:
当前项目已经开发到一半。
原始需求是:
【在这里粘贴原需求】
现在我想改成:
【在这里写新的想法】
不要直接重新生成整个项目。
请先做一次需求变更分析。
告诉我:
哪些原需求保持不变;
哪些需求需要修改;
哪些功能需要新增;
哪些功能应该删除;
对现有架构可能有什么影响;
是否需要迁移已有数据;
哪些地方最容易改坏。
然后输出一份《增量变更需求》,
以及一份可以直接交给 Claude 的《Claude 增量修改 Prompt》。
要求尽量保留已经正常工作的代码。想让 GPT 规划第二版
复制给 GPT:
当前项目第一版已经完成并通过验收。
这是当前功能:
【在这里粘贴 HANDOFF 里的功能列表】
现在我准备规划第二版。
请不要直接生成代码。
请根据第一版已有的能力,帮我规划第二版。
要求:
不要破坏第一版的核心定位;
不要一次加太多功能;
优先增加真正提高使用价值的能力;
考虑新增功能对现有数据、界面和架构的影响。
请输出:
第二版目标
建议新增功能
暂时不要增加的功能
功能优先级
可能需要修改的数据结构
可能产生的风险
Claude 增量开发 Prompt
Codex 第二版验收标准想让 GPT 判断一个新功能值不值得做
复制给 GPT:
我正在考虑给当前项目增加这个功能:
【在这里描述新功能】
请不要默认这个功能一定值得做。
请从这些角度分析:
它解决什么真实问题;
使用频率可能高不高;
会不会让项目明显变复杂;
有没有更简单的办法解决;
是否和项目核心定位一致;
增加以后需要长期维护什么;
不做会损失什么。
最后不要替我做决定。
请给出:
支持增加它的理由
不建议现在增加它的理由
最小实现版本
如果以后再做,需要提前保留什么场景二:Claude 不干活、干一半、说完成了
Claude 只给你教程,不直接干活
复制给 Claude:
不要继续给我教程、操作建议或代码示例。
你现在可以直接操作当前项目。
请直接:
读取文件;
修改文件;
创建缺失的文件;
安装必要依赖;
运行项目;
运行测试;
修复错误。
我需要的是做好的项目,不是「我接下来应该怎么做」的说明。
请从刚才停下的位置继续执行。Claude 做了一半就停下
复制给 Claude:
继续。
不要重新总结前面的内容。
请检查当前项目状态,找出还有哪些原始需求没有完成。
按照原始验收标准逐条核对。
没完成的继续实现;
已经完成的不要重复重写;
发现错误直接修;
完成后重新运行构建和测试。
只有当所有核心验收标准都完成之后才停止。Claude 一直问你「是否继续」
复制给 Claude:
后续不需要因为正常、可逆的本地开发步骤反复向我确认。
比如:
创建项目文件;
修改项目代码;
安装项目正常依赖;
运行开发服务器;
运行构建;
运行测试;
运行 lint;
创建测试文件;
修复普通代码错误。
这些操作可以直接执行。
只有涉及下面这些高风险操作时再问我:
大量删除用户文件;
删除项目外的文件;
覆盖无法恢复的数据;
强制推送;
修改生产环境;
修改真实线上数据库;
涉及账号、付款或对外发布。
其余情况请自主完成。改完以后,想让 Claude 自己先做一次自检
复制给 Claude:
先不要结束。
请站在测试工程师的角度,对你刚刚完成的项目做一次开发者自检。
不要只检查代码能不能编译。
请检查:
项目安装;
项目启动;
项目构建;
现有测试;
核心用户流程;
空输入;
错误输入;
重复操作;
刷新;
数据持久化;
网络失败;
接口异常;
移动端基础显示。
然后重新对照原始验收标准逐条确认。
发现问题直接修复。
最后更新 HANDOFF.md。Claude 说「全部完成」,但你不放心
复制给 Claude:
你刚才说项目已经完成。
现在不要继续开发新功能。
请提供完成证据。
对每一条原始验收标准,分别写出:
验收要求;
对应实现位置;
你实际执行的验证方式;
真实的验证结果。
如果某一项没有实际验证,请明确写「未验证」,然后立刻补做验证。
不要使用「应该可以」「理论上可以」「看起来正常」作为完成证据。不知道该说什么,但 AI 明显还没做完
复制给 Claude:
请检查当前任务是否真正完成。
不要只根据你刚才的总结判断。
重新查看:
原始需求
当前代码
当前 Git diff
测试结果
构建结果
还没完成的事项
如果还有任何核心任务没完成,请继续执行。
不要重复已经完成的工作。
不要只告诉我下一步。
直接继续做到满足验收标准。场景三:项目报错
报错了,而你完全看不懂
不要自己研究错误。复制给 Claude:
当前项目出现了错误。
请你自己读取完整错误信息,不要只根据最后一行猜。
按下面流程处理:
先复现错误;
找到错误真正发生的位置;
判断是代码、依赖、环境、配置还是数据问题;
给出最可能的根因;
直接修复;
重新运行原来失败的那条命令;
确认错误是否真的消失;
检查修复有没有引入新问题。
不要通过删除功能、注释代码或跳过测试来假装解决问题。
如果存在多个错误,从阻塞项目运行的那个开始处理。
继续执行,直到项目恢复正常。终端刷出一大段报错
复制给 Claude:
请你读取终端中最近一次失败命令的完整输出。
不要让我人工筛选报错。
请区分:
真正导致失败的根因
由根因引发的后续连锁报错
普通 warning
可以暂时忽略的信息
优先修复根因。
修复后重新执行同一个命令验证。安装依赖失败
复制给 Claude:
依赖安装失败。
请先检查:
当前 Node / Python / 包管理器版本;
项目 lock 文件;
package.json / requirements 等依赖声明;
是否存在版本冲突;
是否存在系统环境不兼容;
是否混用了不同的包管理器。
优先采用:
兼容当前项目的稳定版本;
最小范围修改;
保留现有项目结构。
不要第一反应就删除全部依赖或者升级整个技术栈。
修复后重新安装并运行项目验证。项目能启动,但浏览器页面是空白
复制给 Claude:
项目可以启动,但页面显示异常或者空白。
请不要只检查启动命令。
请实际检查:
浏览器端运行错误;
控制台报错;
路由;
入口文件;
组件渲染;
API 请求;
静态资源;
环境变量;
CSS 是不是把内容盖住了。
找到真正原因后直接修复。
修复完成后重新启动,确认页面能正常显示。第三方 API 一直失败
复制给 Claude:
第三方 API 当前调用失败。
请先不要随意重写整个功能。
按顺序检查:
请求 URL;
请求方法;
headers;
鉴权;
环境变量有没有加载;
参数格式;
接口版本;
响应状态码;
响应 body;
CORS;
限流;
网络错误。
请根据真实返回结果判断原因。
不要在没有证据的情况下把问题归给「网络」。
修复后重新发一次真实请求验证。项目越来越慢
复制给 Claude:
当前项目出现性能变慢的问题。
请先做性能定位,不要直接开始大优化。
检查:
是否存在重复渲染;
是否有无限循环;
是否有重复的 API 请求;
是不是一次加载了大量数据;
有没有没清理的定时器或监听;
是不是每次操作都重新计算大量内容;
是否存在明显的 N+1 请求;
是不是加载了不必要的大依赖。
先找出最可能的瓶颈和证据。
只优化真正影响使用体验的部分。
不要为了很小的性能收益大幅增加代码复杂度。不知道问题出在哪,让 AI 自己去查
复制给 Claude:
不要先猜解决办法。
先定位问题。
请按照这个顺序处理:
现象
复现
证据
根因
修复
验证
没有确认根因之前,不要连续尝试大量随机修改。
每一次修改后,都重新执行原本失败的操作来验证。场景四:功能有问题
页面能看,但按钮点了没反应
复制给 Claude:
当前页面可以显示,但是存在按钮或交互看起来正常、实际上没有功能的问题。
请对页面里所有主要交互做一次真实检查。
逐个验证:
按钮有没有绑定事件;
事件是不是真的执行了;
表单能不能提交;
状态有没有更新;
数据有没有保存;
页面有没有给出反馈;
刷新以后数据是否符合预期。
不要只根据代码里「存在 onClick」就认为功能完成了。
请沿着用户实际操作的流程检查。
发现假功能或占位实现后,直接修复。怀疑项目里有假数据和假接口
复制给 Codex:
请专门检查当前项目是否存在「看起来完成,实际上是假实现」的情况。
重点搜索:
硬编码返回值;
固定演示数据;
mock 数据仍然被正式页面使用;
永远返回成功的 API;
空函数;
TODO;
placeholder;
用 setTimeout 模拟真实请求;
按钮只弹提示但没有业务操作;
前端有界面但后端接口不存在;
接口有定义但从来没被调用;
错误被 catch 之后直接吞掉。
请区分:
开发阶段合理的 mock
和
已经影响正式功能的假实现。
只报告会影响真实使用的问题。项目需要接第三方 API
复制给 Claude:
当前项目需要使用第三方 API。
请按安全的方式接入。
要求:
不要把 API Key 硬编码在源代码里;
不要把真实 Key 写进 README;
使用环境变量;
提供 .env.example;
错误处理要区分网络失败、鉴权失败、限流和服务异常;
不要在日志里输出完整密钥;
如果前端不应该直接持有密钥,就不要把密钥暴露到浏览器。
完成后更新 README,说明:
需要哪些环境变量;
用户应该去哪里申请;
怎么配置;
怎么验证配置成功。场景五:我想改这个项目
只想改一个局部,不想它动其他地方
复制给 Claude:
这次只允许修改:
【写清楚具体功能、页面或文件】
不要顺手重构其他模块。
不要改变:
【写清楚不能动的部分】
修改前先读取相关代码。
只做完成当前任务所需要的最小改动。
完成后检查 Git diff。
如果发现无关文件被修改,请恢复无关的修改。
最后只报告:改了哪些文件、为什么改、测试结果。想增加一个新功能
复制给 Claude:
我准备在当前项目中新增一个功能:
【在这里描述新功能】
这是增量开发,不是重新做项目。
请先:
读取现有项目;
理解现有架构;
确认这个功能应该接在哪里;
判断是否会影响现有数据结构和功能。
然后制定最小改动方案。
要求:
优先复用现有组件和逻辑;
不要复制一套重复的系统;
不要因为增加一个小功能就大规模重构;
保持原有功能兼容;
增加必要测试;
更新 README / HANDOFF.md 里的相关内容。
完成后重新运行原有测试和新功能的测试。想删掉一个功能
复制给 Claude:
我想从项目中移除这个功能:
【在这里写功能名称】
请不要只把界面隐藏起来。
需要检查并清理:
页面入口;
按钮;
路由;
相关组件;
业务逻辑;
API;
状态;
无用依赖;
测试;
文档。
但不要误删被其他功能共用的代码。
删除前先分析依赖关系。
完成后重新运行构建和测试,确认其他功能没受影响。担心 AI 把整个项目重写
复制给 Claude:
禁止整体重写。
当前项目已经有可以正常工作的部分。
请遵循:
优先修改已有实现;
优先最小改动;
优先局部修复;
不要更换技术栈;
不要重新搭建整个项目;
不要删掉正常代码再重新生成;
不要因为你更喜欢另一种架构就大规模迁移。
只有当现有代码确实无法满足需求,并且有明确证据时,才允许做较大结构调整。
所有较大调整,先说明原因。通用「别乱改」提示词
复制给 Claude:
这次修改请遵守一个原则:
只改完成当前任务所必须的内容。
不要顺手:
升级整个技术栈;
更换框架;
重写项目;
调整无关的界面;
重命名大量文件;
修改无关的业务逻辑;
删除正常功能。
修改完成后检查 Git diff。
如果存在与本次任务无关的改动,请恢复。代码开始变得很乱
复制给 Claude:
当前项目功能已经基本可用,但代码开始变得混乱。
请先不要大规模重构。
第一步只做代码质量评估。
找出:
重复逻辑;
过大的文件;
职责混乱的模块;
明显的死代码;
不一致的数据流;
难以维护的状态逻辑;
影响后续开发的技术债。
把问题分成:必须现在处理 / 可以以后处理。
只有真正影响稳定性和继续开发的问题,才进入本轮重构。
然后制定最小范围的重构方案。
重构前后必须保证:
核心功能一致;
原有测试继续通过;
不要借重构偷偷改变产品行为。接手别人或者 AI 做了一半的项目
复制给 Claude:
这是一个已经开发到一半的项目。
不要假设项目从零开始。
请先做项目接管分析。
检查:
目录结构;
README;
HANDOFF;
Git 状态;
最近修改;
依赖;
可用命令;
测试;
构建;
当前报错;
未完成的 TODO。
然后告诉我:
项目目前做到哪里;
哪些功能已经真实可用;
哪些功能只是部分完成;
哪些地方已经损坏;
下一步最合理的开发顺序。
分析完成后,根据现有需求继续开发。
不要无理由推倒重来。场景六:页面不好看
想把界面做好看,但不想把功能改坏
复制给 Claude:
当前项目功能基本完成。
现在只进行 UI / UX 优化。
注意:
不要改变核心业务逻辑;
不要删除已有功能;
不要修改 API 行为;
不要更改数据结构;
不要为了视觉效果重写整个项目。
优化方向:
整体布局更干净;
层级更清楚;
间距统一;
字体大小合理;
按钮状态清晰;
表单更易用;
移动端可用;
空状态更自然;
错误提示更明确;
加载状态更清楚。
设计风格:简洁、现代、克制。不要过度使用渐变、毛玻璃和动画。
完成后重新运行项目,确认所有原有功能仍然正常。想去掉典型的 AI 味界面
复制给 Claude:
请优化当前界面设计。
不要使用典型的 AI 生成网页套路,比如:
满屏渐变;
大量紫色;
过度毛玻璃;
每个卡片都发光;
没有意义的大标题;
大量装饰性图标;
过多圆角;
过度动画;
看起来像模板站的布局。
目标是:像一个真的有人长期在用的成熟工具。
优先做到:
信息密度合理;
排版克制;
颜色少而统一;
按钮有明确主次;
内容比装饰重要;
桌面端和移动端都自然。
保持现有功能和数据逻辑不变。想支持手机浏览
复制给 Claude:
请在不改变核心功能的前提下,让当前网页适配常见手机屏幕。
重点检查:
页面有没有横向溢出;
字体是不是太小;
按钮是不是难点;
表单是不是超宽;
弹窗有没有超出屏幕;
顶部导航是不是太挤;
卡片布局能不能自然堆叠;
表格是否需要横向滚动或者换一种布局。
不要为了移动端另做一套独立页面。
优先用响应式布局解决。
完成后保持桌面端原有的体验。想加深色模式
复制给 Claude:
请为当前项目增加深色模式。
要求:
不要改变业务逻辑;
优先复用现有设计变量;
避免在每个组件里硬编码两套颜色;
保证文字、背景、边框、输入框、按钮、弹窗都有足够对比度;
如果项目已经有主题系统,接入现有主题系统;
如果没有,采用尽量简单的方案。
需要支持:浅色、深色。
如果实现成本合理,再支持跟随系统。
完成后检查主要页面,不要只改首页。场景七:Codex 验收
准备把项目交给 Codex 验收
复制给 Codex:
当前项目已经由 Claude 完成第一轮开发。
现在请你作为独立验收者工作。
不要先修改代码。
你的第一阶段任务只有:
理解需求;
检查项目;
运行验证;
发现问题;
输出验收报告。
请阅读:
README.md
HANDOFF.md
项目源码
测试
Git diff
然后读取下面的原始需求:
【在这里粘贴原始需求】
不要把 HANDOFF.md 当成事实来源。
它只是开发者的自述。
所有核心功能都需要通过代码、运行结果或测试独立验证。想让 Codex 更严格一点
复制给 Codex:
这次验收请采用「准备交付真实用户」的标准,而不是 Demo 标准。
重点检查:
能启动但核心功能不可用;
只有界面没有真实逻辑;
写死的演示数据;
按钮没有实际行为;
错误状态没有处理;
刷新后数据丢失;
API 失败后页面崩溃;
测试只是为了通过而写;
测试没有覆盖真正的业务逻辑;
README 与真实命令不一致;
环境变量缺失;
构建失败;
Lint / TypeScript 存在明显问题;
敏感信息被硬编码;
存在明显的越权或输入安全问题。
只报告有证据的问题。
不要因为代码风格的个人偏好判定验收失败。只想做代码审查,不做功能验收
复制给 Codex:
这次只进行 Code Review。
不要重新设计产品。
不要评价界面风格。
重点检查本次 Git diff:
逻辑错误;
潜在的运行时错误;
错误的条件判断;
空值问题;
异步问题;
状态同步问题;
资源泄漏;
安全问题;
数据损坏风险;
明显的性能回退;
与现有代码不兼容的修改。
每个问题必须说明:
文件位置;
问题原因;
什么情况下会触发;
为什么这是实际问题;
建议的修复方向。
不要报告纯审美或个人编码风格偏好。只想检查最近这次改动
复制给 Codex:
请只审查本次 Git diff。
不要重新审查整个项目里与本次修改无关的历史问题。
目标是判断:
这次修改有没有实现指定需求;
有没有引入回归;
有没有明显 Bug;
有没有破坏已有功能。
如果发现历史遗留问题,但和本次修改无关,单独标记为「非本次改动」,不要混进本轮验收结果。Codex 的报告太笼统
复制给 Codex:
你给出的验收问题太笼统。
请把每一个问题转换成可以交给开发者直接修复的工程任务。
每个问题必须包含:
严重程度;
文件路径;
相关代码位置;
问题描述;
复现步骤;
当前结果;
预期结果;
可能的根因;
推荐的修复方向;
修复后应该执行的测试。
如果拿不出证据,请不要把它列为确定问题。找到很多 P2、P3,但核心已经能用了
复制给 Codex:
请把当前问题重新按照「是否阻止交付」分类。
分成:
阻止交付
建议修复后交付
可以后续优化
判断依据:
是否影响核心用户流程;
是否可能导致数据错误;
是否存在安全风险;
是否频繁触发;
是否只是代码整洁或体验优化。
不要因为存在低优先级的 P3,就自动判定整个项目不可交付。验收不通过时,让 Codex 生成修复 Prompt
复制给 Codex:
根据刚才的验收报告,生成一份可以直接复制给 Claude Code 的修复 Prompt。
不要遗漏任何 P0 和 P1。
Prompt 中需要包含:
项目当前状态;
本轮只修什么;
每个问题的证据;
复现方式;
预期结果;
涉及文件;
建议修复方向;
不能采取的错误修复方式;
修复后必须执行的测试。
要求 Claude:
尽量最小改动;
不要重写正常模块;
不要删除失败的测试;
不要降低验收标准;
修复后更新 HANDOFF.md。
只输出最终可复制的 Claude 修复 Prompt。把 Codex 的报告交回 Claude
复制给 Claude:
下面是 Codex 对当前项目的独立验收结果:
【在这里粘贴完整报告】
请不要反驳验收报告,也不要直接假设报告一定正确。
对于每一个问题:
先复现;
确认是否真实存在;
如果存在,定位根因并修复;
如果无法复现,保留证据并说明原因。
修复原则:
优先 P0;
然后 P1;
然后 P2;
最后处理必要的 P3。
不要为了通过验收而:
删除测试;
跳过测试;
硬编码结果;
隐藏错误;
降低原始需求;
删除正常功能。
修复完成后重新运行:
构建;
测试;
lint;
相关核心流程。
然后更新 HANDOFF.md。Claude 说 Codex 报的问题不存在
复制给 Claude:
不要只用文字判断这个问题不存在。
请按照 Codex 给出的复现步骤实际验证。
如果复现失败:
记录你实际执行的命令或操作;
记录实际结果;
检查当前代码是否已经变化;
判断这个问题是否已经被其他修改顺带修复。
如果你确认 Codex 报的是误报,请给出可以验证的证据。
不要因为「看代码感觉没问题」就直接判误报。Claude 修完了,做二次验收
复制给 Codex:
Claude 已经根据上一轮验收报告完成修复。
请进行二次验收。
不要因为 Claude 声称已经修复就直接通过。
请优先重新验证上一轮所有 P0、P1、P2。
然后重新运行:构建、测试、lint、核心用户流程。
还要检查这次修复有没有引入新的回归。
最后明确输出:验收通过 或 验收不通过。
如果不通过,只列出当前仍然真实存在的问题,不要重复已经确认修复的。项目已经通过,做发布前最后检查
复制给 Codex:
当前项目已经通过功能验收。
现在做一次发布前检查。
这不是重新开发。
请重点检查:
README 是否和真实运行方式一致;
环境变量说明是否完整;
有没有把密钥、token、密码写进仓库;
有没有调试日志;
有没有临时文件;
有没有 TODO 占位影响核心功能;
构建是否通过;
测试是否通过;
项目第一次克隆下来以后,能不能按 README 启动;
是否存在明显的生产环境风险。
最后输出「可以交付」或「仍需处理」,并说明证据。场景八:项目准备结束(README、HANDOFF、Git)
让 Claude 创建或更新 HANDOFF.md
复制给 Claude:
请为当前项目创建或更新 HANDOFF.md。
这份文件是写给下一位接手项目的 AI 工程师看的,不是宣传文案。
必须包含:
# 项目概述
一句话说明项目是什么。
# 当前状态
项目目前能不能安装、启动、构建、测试。
# 已完成功能
逐条列出真正已经实现的功能。
# 项目结构
说明重要目录和关键文件的作用。
# 技术栈
列出主要框架和关键依赖。
# 安装方式
给出实际命令。
# 启动方式
给出实际命令。
# 构建方式
给出实际命令。
# 测试方式
给出实际命令。
# 环境变量
说明需要哪些变量,不要写真实密钥。
# 验收标准
逐条对应原始需求说明当前状态。
# 已知问题
明确列出还没解决的问题。
# 最近修改
说明本轮开发主要改了什么。
所有内容必须基于当前真实的项目状态,不要虚构已经通过的测试。让 Claude 整理 README.md
复制给 Claude:
请根据当前真实项目创建或更新 README.md。
面向第一次接触这个项目的普通用户。
README 必须包含:
项目是什么;
主要功能;
运行前需要安装什么;
安装步骤;
启动命令;
构建命令;
测试命令;
环境变量配置;
常见问题;
项目主要目录。
不要写宣传口号。
不要写不存在的功能。
命令必须和当前 package.json / 项目配置一致。
完成后按 README 里的关键命令重新验证一次。让 Claude 初始化 Git
复制给 Claude:
请检查当前项目是否已经是 Git 仓库。
如果不是,并且这是一个正常的本地开发项目:
初始化 Git;
创建合适的 .gitignore;
确保依赖目录、构建产物、缓存、系统文件、环境变量文件不会被提交。
不要提交真实密钥。
然后告诉我:
Git 是否初始化成功;
当前有哪些未跟踪的文件;
建议的第一次 commit 内容。
不要执行远程 push。不会写 Git commit 信息
复制给 Claude:
请根据当前 Git diff 帮我生成一条简洁、准确的 commit message。
要求:
描述真实改动;
不要写「update files」这种没意义的内容;
不要夸大;
尽量一句话说清。
如果改动包含多个明显部分,可以再补一段简短的 commit body。
不要直接提交,只生成 commit message。想提交代码,但不想它乱推远程仓库
复制给 Claude:
请检查当前 Git diff。
先确认:
没有敏感信息;
没有环境变量密钥;
没有无关的大文件;
没有明显的临时调试内容。
然后创建一个本地 Git commit。
commit message 根据真实改动生成。
只允许本地 commit。
不要 push;
不要 force push;
不要创建远程仓库;
不要修改远程分支。项目结束前的最后交付检查
复制给 Claude 或 Codex:
当前项目准备正式交付。
请做最后整理。
不要增加新功能。
检查:
项目能不能安装;
项目能不能启动;
项目能不能构建;
测试是否通过;
README 是否准确;
HANDOFF.md 是否准确;
是否存在真实密钥;
是否存在调试文件;
是否存在影响使用的 TODO;
是否存在无用的临时 mock;
Git 工作区是否存在意外文件。
最后给我一份《最终交付说明》,只包含:
项目做了什么;
怎么启动;
怎么测试;
主要文件;
当前验收状态;
已知限制;
以后继续开发应该从哪里开始。至少记住这 8 条
提示词太多记不住的话,先存这几类:
需求整理:
先不要写代码,先把我的想法整理成完整项目需求和验收标准。
直接执行:
不要给我教程,直接在当前项目里创建、修改、运行、测试并修复。
继续完成:
检查原始需求,还没完成的继续做,不要重复已经完成的内容。
报错修复:
先复现,再找根因,再修复,然后重新运行原来失败的命令验证。
不要乱改:
只做完成当前任务所必须的最小改动,不要重写正常模块。
开发自检:
按照原始验收标准逐条检查,没有实际验证过的项目不要写成已通过。
Codex 验收:
不要相信 HANDOFF 的自述,必须通过代码、运行和测试独立验证。
修复闭环:
根据 Codex 报告逐条复现和修复,修完后重新构建和测试,再交回 Codex。场景九:不知道下一步该找谁
复制给任意一个 AI:
请根据当前项目状态判断我现在处于哪一个阶段:
需求规划
开发
开发自检
独立验收
问题修复
二次验收
准备交付
下一版本规划
这是当前状态:
【在这里粘贴 Claude 或 Codex 最近的结果】
请告诉我:
现在最应该由 GPT、Claude 还是 Codex 接手;
下一步只做哪一件最重要的事;
我应该复制什么提示词给它。
不要同时安排很多个下一步。五、做完第一个项目以后,再看这些
如果你现在只是第一次做项目,这一章可以整章跳过。跑通一遍再回来看,会容易理解得多。
为什么要把工作拆给三个 AI
很多人第一次用 AI 编程是这样的:
我有一个想法
↓
直接告诉一个 AI
↓
它开始写
↓
它说「已经完成」
↓
我不知道到底有没有问题问题在于,一个 AI 同时当了产品经理、需求分析、架构、开发、测试和验收。它自己写的东西,再让它自己评价,很容易放过问题。它还可能自行脑补你没说清楚的需求,做出一个「看起来做完了」的界面。
拆成三个角色之后,每个环节都有人负责,也有人检查:
| 工具 | 角色 | 主要任务 |
|---|---|---|
| GPT | 产品经理 + Prompt 工程师 | 把人话整理成明确需求 |
| Claude | 主开发工程师 | 把需求真正做成项目 |
| Codex | 独立验收 | 检查项目到底做完没有 |
几个容易踩的坑
一句话直接扔给 Claude 开发。 不是做不了,是它要猜的东西太多,第一版很可能跟你脑子里想的不是一回事。中间加一步 GPT,成本很低。
让三个 AI 都重写一遍。 Claude 写一次,Codex 又重写一次,GPT 再重构一次,项目只会越来越乱。角色固定下来:GPT 规划、Claude 开发、Codex 验收。
让 Codex 发现问题以后直接改。 如果它同时做「发现问题、修改问题、判断修改是否成功」,就又变成自己写自己批。最稳的方式还是把两件事分开:Codex 找问题,Claude 修,Codex 再检查。
没有保存最初那份需求。 开发几轮之后,AI 很容易偏离最开始的目标。Codex 最终验收时要回到原始需求去对照,所以那份需求要留着。
没有测试就宣布完成。 AI 最常说的一句话就是「项目已经完成」。真正该问的是:你运行了吗?构建通过了吗?测试跑了吗?核心功能实际验证了吗?
推荐的目录结构
小项目不用搞复杂。大概长这样就行:
我的项目/
│
├── src/
├── tests/
├── README.md
├── HANDOFF.md
├── package.json
└── .git/具体结构跟着技术栈走,不必强求一致。真正重要的是:源码清楚、有 README、有 HANDOFF、能用 Git 看改动、有明确的运行方式和测试方式。
项目状态:现在轮到谁
给项目定几个状态,你一看就知道该找谁:
PLANNING GPT 正在整理需求
DEVELOPING Claude 正在开发
REVIEWING Codex 正在验收
FIXING Claude 正在修复
PASSED Codex 验收通过怎么把 GPT 的额度省下来
如果额度有限,把 GPT 的用量集中在最值钱的地方:想清楚项目,而不是反复改代码。
只让它做四件事:需求澄清、写 Prompt、定验收标准、整理修复任务。
一个项目尽量一次整理清楚。第一次就跟它说「请一次性输出完整项目需求、Claude Prompt、Codex Prompt 和验收标准」,不要拆成十几轮聊天。
开发过程中的小问题(缺一个包、某个类型报错、样式对不上、测试失败),不要回头问 GPT,让 Claude 在项目里自己处理。
GPT 留给方向问题:想改项目方向、两个方案选不定、Codex 和 Claude 对需求理解不一致、准备做第二版功能。
Git:为什么建议用
即使你不会 Git,也可以让 Claude 帮你初始化一个。它最大的作用是让 Codex 能看清 Claude 到底改了什么,而不是只能检查最后的状态。
常用的那几句话,遇到时复制「场景八」里的提示词就行,不需要自己学命令。
想再往后走,可以升级什么
这些都不是必需的,做完几个项目再考虑。
GitHub。 把项目放到网上,流程变成:Claude 开发 → 提交代码 → Codex 审查 → Claude 修复 → 再提交。
自动测试。 项目变大以后,可以增加单元测试、集成测试、端到端测试,Codex 的验收会更可靠。
CLAUDE.md。 长期用 Claude Code 的话,可以在项目里放一份,写清楚项目规则、技术栈、编码规范、禁止操作、常用命令,省得每次重复说明。
AGENTS.md。 经常用 Codex 的话,也可以整理一份适合它的项目规范,让不同 AI 遵循同一套工程规则。
CI/CD。 再往后可以做成:Claude 提交 → 自动构建 → 自动测试 → Codex 审查 → 人工确认。这属于后期内容,第一个项目完全用不上。
新手版本只需要这五样
项目需求.md
Claude 开发 Prompt
Codex 验收 Prompt
HANDOFF.md
Git够用了。
六、你现在不需要学的东西
下面这些词你会经常看到,但第一次做项目基本用不上:
MCP
多 Agent
Subagent
Docker
Kubernetes
微服务
复杂云服务
CI/CD 流水线它们不会让你的第一个项目更容易完成,反而会拖慢你。等你能稳定跑通几个项目、清楚自己缺什么了,再去补对应的部分。
如果哪天有人建议你「顺便上 Docker」「不如改成微服务」,先问一句:这会让这个项目更容易跑起来吗?如果答案是否定的,就先不做。
七、最后只记住这张图
GPT
需求整理、验收标准、两份 Prompt
↓
Claude
开发、运行、测试、修复、写交接单
↓
Codex
独立验收
↘ 不通过 → 回到 Claude 修 → 再验
↓
通过三个角色的分工是:
GPT 定义问题。
Claude 完成项目。
Codex 独立验收。
分开以后,你要做的事就固定成三件:说清楚想法、复制粘贴、看结果。
刚开始可能会觉得中间步骤有点多。做完第一个项目你会发现,多出来的那一步 GPT,省掉的是后面十轮返工。