00六步法总览
很多人刚开始用 Codex,会直接一句话丢给它:"帮我做一个网站""帮我改这个功能""帮我优化这个项目"。这样不是不行,但很容易出现一个问题:AI 改得很快,但你不知道它到底改了什么,也不知道能不能放心交付。
| 步骤 | 名称 | 简单来说 | 目的 |
|---|---|---|---|
| 1 | 需求拆解 | 先让 Codex 知道要做的项目是什么 | 避免不了解结构就乱改 |
| 2 | 制定计划 | 先列出要做什么,确认后再动手 | 避免一步改太多、方向跑偏 |
| 3 | 小步实现 | 一次只改一小块 | 降低出错概率,方便回滚 |
| 4 | 测试 | 改完运行检查并手动验证 | 确认代码没有明显报错 |
| 5 | 代码审查 | 看 diff,检查改得对不对、有没有风险 | 防止 AI 改到不该改的地方 |
| 6 | 提交与复盘 | 提交代码并沉淀经验 | AI 负责执行,人负责拍板 |
你不是让它随便写点代码,而是让它按你的项目规则、上下文和验收标准,完成一项可控的工程任务。控制范围,比追求速度更重要。
01第一步 · 拆解需求
在让 Codex 修改项目之前,第一件事不是写代码,而是先拆需求。很多人用 Codex 容易翻车,不是因为 Codex 不会写代码,而是因为一开始需求没说清楚。比如你只说"帮我优化首页",Codex 可能会理解成:改 UI、改文案、改布局、改组件结构、改路由,甚至顺手删掉一些它觉得"没用"的代码。所以在正式动手前,应该先把需求拆成几个关键问题。
背景是什么
| 问题 | 示例 |
|---|---|
| 现在项目处于什么阶段 | 这是一个已经上线的官网页面 |
| 当前遇到什么情况 | 首页转化率低,用户不知道产品卖点 |
| 为什么现在要改 | 准备发布新版,需要优化首屏表达 |
| 这个需求属于什么类型 | UI 优化 / Bug 修复 / 新功能 / 重构 |
要解决什么问题(把模糊说法变清楚)
| 模糊说法 | 更清楚的说法 |
|---|---|
| 优化首页 | 优化首页首屏标题、副标题和 CTA 按钮 |
| 页面不好看 | 调整卡片间距、字体层级和按钮样式 |
| 登录有问题 | 修复点击登录按钮后没有跳转的问题 |
| 做一个后台 | 新增用户列表页,包含搜索、筛选和分页 |
好的需求应该能回答:这次到底要解决哪一个具体问题?例如:"这次主要解决三个问题:①首屏标题表达不清楚;②CTA 按钮不明显;③移动端首屏内容太拥挤。"
哪些文件可能相关
如果你知道大概文件位置,最好提前告诉 Codex,减少它全项目乱找、乱改的概率。
| 场景 | 可能相关文件 |
|---|---|
| 改首页 | app/page.tsx、pages/index.tsx、components/Hero.tsx |
| 改样式 | globals.css、tailwind.config.js、相关组件文件 |
| 改登录 | login/page.tsx、auth.ts、middleware.ts |
| 改接口 | api 目录、server 目录、lib 目录 |
| 改文案 | 页面组件、配置文件、i18n 文件 |
哪些功能不能动(这一步非常关键)
Codex 很容易为了完成当前任务,顺手改掉其他地方。所以要提前给它画边界:
| 不能动的内容 | 说明 |
|---|---|
| 登录逻辑 | 只改 UI,不改认证流程 |
| 接口地址 | 不要改 API 请求路径 |
| 数据结构 | 不要改数据库字段 |
| 路由结构 | 不要改已有页面路径 |
| 已有组件 | 除非必要,不要大规模重构 |
| 依赖版本 | 不要随便升级或新增依赖 |
什么结果算完成
| 需求类型 | 完成标准 |
|---|---|
| UI 优化 | 页面视觉明显改善,移动端不乱 |
| Bug 修复 | 原来的报错消失,相关功能可正常使用 |
| 新功能 | 用户能完整走通操作流程 |
| 性能优化 | 构建正常,页面加载没有明显变慢 |
| 文案优化 | 标题、副标题、按钮文案更清楚 |
需要哪些测试 / 有哪些风险
| 测试类型 | 适用场景 |
|---|---|
| 页面预览 | UI 修改、页面布局调整 |
| 控制台检查 | 前端页面、交互功能 |
| 构建测试 | Next.js、React、Vue 项目 |
| 单元测试 | 有测试文件的项目 |
| 手动流程测试 | 登录、支付、表单、上传等流程 |
| 移动端测试 | 响应式页面、移动网页 |
| 风险 | 说明 |
|---|---|
| 影响范围过大 | 小需求被改成大重构 |
| 样式污染 | 改了全局 CSS,影响其他页面 |
| 依赖风险 | 新增不必要依赖,项目变复杂 |
| 逻辑风险 | 为了修一个问题,改坏其他流程 |
| 数据风险 | 改接口、字段、数据库相关内容 |
| 兼容风险 | 桌面端正常,移动端出问题 |
需求拆解提示词模板(可直接复制)
请先帮我做需求拆解,不要立刻修改代码。 需求: 【这里写你的需求】 请按下面结构分析: 1. 背景是什么 - 当前项目大概是什么 - 为什么要做这个需求 - 属于新功能、Bug 修复、UI 优化,还是重构 2. 要解决什么问题 - 当前具体问题是什么 - 本次要解决到什么程度 - 哪些内容不是本次范围 3. 哪些文件可能相关 - 请根据项目结构判断可能涉及哪些文件 - 先列出来,不要直接修改 4. 哪些功能不能动 - 不要改哪些逻辑 - 不要动哪些接口 - 不要影响哪些页面或组件 5. 什么结果算完成 - 功能完成标准 / 页面完成标准 / 代码完成标准 6. 需要哪些测试 - 需要运行什么命令 - 需要手动检查哪些页面 - 需要重点验证哪些流程 7. 有哪些风险 - 可能影响哪些功能 - 是否有样式污染风险 - 是否有重构过度风险 - 是否有新增依赖风险 最后,请给我一个简短的执行建议: - 建议先做哪一步 - 是否需要我确认后再修改
02第二步 · 制定计划
需求拆解完成后,不要马上让 Codex 写代码。这一步要让 Codex 先制定计划——先让 AI 说清楚它准备怎么做,再决定要不要让它动手。很多项目翻车,不是因为 Codex 不会改,而是因为它一上来就开始改;等你发现方向不对时,它可能已经改了很多文件,回头检查和回滚都很麻烦。
第二步的核心是:先计划,后执行;先确认,后修改。
为什么要"先不要写代码"
这要写在提示词最前面。因为 Codex 的默认倾向是:看到需求后直接开始解决问题。但在真实项目里,直接改代码风险很高。
| 直接写代码的问题 | 可能后果 |
|---|---|
| 没理解项目结构 | 改错文件 |
| 没确认需求边界 | 做了不该做的功能 |
| 没判断影响范围 | 误伤旧功能 |
| 没列测试方式 | 改完不知道怎么验收 |
| 一次改太多 | 出错后不好回滚 |
先不要写代码,也不要修改任何文件。 请先根据当前需求和项目结构,制定一个修改计划。 等我确认后,再开始执行。
也可以在 Codex CLI 或 App 里直接输入 /plan,先让 Codex 输出计划,再决定是否执行。对所有复杂任务都建议先开计划模式,可以查漏补缺(比如它计划里漏掉移动端,你就能当场补上)。
03第三步 · 小步实现
计划确认后,才进入真正的代码修改阶段。但有一个非常重要的原则:不要让 Codex 一次性把东西都改完。很多人翻车,就是因为一上来就让它"全部实现",结果它同时改页面、改组件、改样式、改接口、改配置,最后项目虽然变了,但你很难判断哪里出了问题。
更稳定的方式是:一次只改一个功能点;改完一小步,就检查一小步。
把"优化首页"拆成小步
| 步骤 | 修改内容 |
|---|---|
| 第一步 | 只优化首屏标题和副标题 |
| 第二步 | 只调整 CTA 按钮 |
| 第三步 | 只优化移动端布局 |
| 第四步 | 只补充产品卖点卡片 |
| 第五步 | 只处理最终样式细节 |
不要让 Codex 顺手重构无关代码
Codex 有时候觉得某些代码"不够优雅",然后顺手帮你重构。但真实项目里,顺手重构是很危险的:
| Codex 的顺手操作 | 可能带来的问题 |
|---|---|
| 重命名组件 | 导致引用路径出错 |
| 拆分文件 | 增加维护成本 |
| 改全局样式 | 影响其他页面 |
| 优化旧逻辑 | 破坏原本可用功能 |
| 升级依赖 | 引发兼容问题 |
| 删除它认为无用的代码 | 实际可能是业务逻辑 |
所以小步实现时要明确限制:"本次只实现当前功能点;不要顺手重构无关代码;不要修改命名、目录结构、依赖版本和全局配置。如果你发现代码可以优化,请先记录为建议,不要直接修改。"
不要接受大面积无解释修改
| 情况 | 处理方式 |
|---|---|
| 改动文件数量突然很多 | 要求解释每个文件为什么改 |
| 删除了大量代码 | 要求说明删除原因 |
| 新增了不认识的依赖 | 要求说明必要性 |
| 修改了配置文件 | 要求说明影响范围 |
| 改了和需求无关的页面 | 要求回退无关修改 |
| 代码风格大变 | 要求保持原项目风格 |
遇到不确定,先停下来问
小步实现不是让 Codex 什么都问,而是遇到关键不确定时必须停下来:
| 不确定情况 | 为什么要停 |
|---|---|
| 不确定该改哪个文件 | 防止改错位置 |
| 不确定业务规则 | 防止逻辑做错 |
| 不确定是否能删旧代码 | 防止误删功能 |
| 不确定是否新增依赖 | 防止项目复杂化 |
| 不确定接口含义 | 防止影响数据 |
| 不确定测试失败原因 | 防止越修越乱 |
请开始小步实现。 当前只执行第【 1 】步: 【这里写本次只做的一个功能点】 要求: 1. 一次只改这个功能点 2. 只修改和当前功能直接相关的文件 3. 不要顺手重构无关代码 4. 不要修改目录结构 5. 不要新增不必要依赖 6. 不要删除已有功能 7. 不要改计划外的文件 修改完成后请停止,并输出: 1. 本次修改了哪些文件 2. 每个文件改了什么 3. 为什么这些修改是必要的 4. 有没有改到计划外内容 5. 有没有潜在风险 6. 下一步建议做什么 注意: 如果遇到不确定的地方,请先停下来问我,不要自行决定。
04第四步 · 验证测试
Codex 完成小步修改后,不能马上进入下一步,必须先测试。最大的问题是:AI 说完成了,但项目其实没跑通;页面看起来正常,但某些功能已经坏了;当前功能修好了,旧功能却被影响了。所以测试的核心是:不是相信 Codex 说"完成",而是用结果证明它真的完成。
一次完整测试要做的事(从快到慢)
| 测试类型 | 常见命令 | 重点 |
|---|---|---|
| 单元测试 | npm test / pnpm test / yarn test | 失败先说明原因,不要直接改 |
| 类型检查 | npm run typecheck / tsc --noEmit | 没有该命令就明确说明 |
| Lint | npm run lint | 区分本次新增问题和项目原有问题 |
| 构建 | npm run build / pnpm build | 失败先总结报错和影响范围 |
| 手动测试 | —— | UI、表单、登录、支付、上传必须手动点一遍 |
| 浏览器测试 | —— | 看页面显示、Console 报错、Network、移动端 |
| 回归测试 | —— | 不只测新功能,还要测旧功能有没有被改坏 |
① 很多老项目本身就有 lint 或类型问题,不要让 Codex 把历史问题都顺手重构;② 回归测试最容易被小白忽略——改了首页按钮,也可能影响复用同一组件的其他页面。
手动测试时,可以让 Codex 把验证步骤列成"操作—预期结果"表格,例如:
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 打开首页 | 页面正常加载 |
| 2 | 点击 CTA 按钮 | 跳转到注册页 |
| 3 | 缩小到手机宽度 | 页面不变形 |
| 4 | 打开控制台 | 没有明显红色报错 |
请对本次修改进行测试,不要继续新增功能。 请按下面顺序执行或说明: 1. 单元测试:项目是否有单元测试?有则运行;失败说明原因 2. 类型检查:是否有 typecheck 命令?有则运行;没有请说明 3. lint:运行 lint 检查,区分本次新增问题和项目原有问题 4. 构建:运行 build 命令;失败请说明报错原因和影响范围 5. 手动测试:列出需要手动测试的页面、用户操作步骤、每步预期结果 6. 浏览器测试:检查页面显示、控制台报错、移动端布局、关键按钮交互 7. 回归测试:检查本次修改是否影响旧功能,列出可能受影响的页面、组件和流程 最后请输出测试总结: - 哪些测试通过了 / 哪些失败了 / 失败原因是什么 - 是否可以进入下一步 / 是否需要先修复问题
05第五步 · 代码审查
测试通过后,不代表这次修改就可以直接交付。代码审查不只是看代码能不能跑,还要看代码改得对不对、稳不稳、有没有风险。Codex 写代码很快,但它也可能出现这些问题:
| 常见问题 | 说明 |
|---|---|
| 功能能跑,但逻辑不对 | 表面正常,真实业务流程有问题 |
| 改动太大 | 为了一个小需求,改了很多无关代码 |
| 误删旧逻辑 | 删除了看似没用、实际有用的代码 |
| 忽略边界条件 | 正常输入能用,异常输入就崩 |
| 安全问题 | 暴露密钥、权限判断错误、输入未校验 |
| 风格不统一 | 新代码和原项目写法不一致 |
| 可维护性差 | 临时写死、硬编码、后续不好改 |
两轮审查:Codex 自审 + 人工审查
第一轮先让 Codex 自查刚才的修改(目的不是完全相信它,而是让它先暴露明显问题),最好让它输出成表格:
| 检查项 | 结果 | 说明 |
|---|---|---|
| 是否改到计划外文件 | 否 | 只修改了首页相关组件 |
| 是否新增依赖 | 否 | 没有修改 package.json |
| 是否删除旧逻辑 | 否 | 原有按钮跳转逻辑保留 |
| 是否存在风险 | 有 | 移动端按钮间距还需人工确认 |
第二轮人工审查。最终交付的人是你,不是 Codex。不要求每行都看懂,但要重点看 diff 的几处。
重点盯四类高风险问题
| 类别 | 常见问题 | 审查要点 |
|---|---|---|
| 边界条件 | 正常输入能用、异常输入就崩 | 空数据、接口失败、未登录、权限不足、移动端尺寸、重复点击 |
| 安全问题 | 涉及用户/接口/权限/支付/上传/数据库时 | 是否暴露密钥 token、权限判断是否缺失、输入是否校验、接口是否有鉴权 |
| 是否误删 | 看似没用、实际有用的代码被删 | 重点看 diff 的删除内容:旧组件、注释、兼容代码、fallback、配置项都可能仍被依赖 |
| 业务逻辑 | 代码能跑但逻辑错(跳错页、价格算错、越权) | 正常路径、异常路径、权限判断、是否覆盖旧业务规则 |
涉及登录、支付、权限、数据库、鉴权等重要代码,建议再用第二个模型做交叉审查——一个模型写,另一个模型专门挑错(只改文案、轻微样式一般不必)。但第二个模型的建议同样不能全盘接受,它帮你发现问题,不替你做最终决定。
请对本次修改做代码审查,不要继续写代码。 请按下面结构审查: 1. Codex 自审:是否只改计划内文件 / 有无无关重构 / 有无新增依赖 / 有无硬编码 / 有无误删旧逻辑 2. 修改范围审查:改了哪些文件 / 每个文件为什么改 / 是否存在计划外修改 / 有无大面积无解释修改 3. 边界条件审查:空数据 / 接口失败 / 未登录 / 权限不足 / 重复点击 / 移动端异常 4. 安全问题审查:是否暴露密钥 token / 是否影响权限判断 / 是否缺输入校验 / 接口是否有鉴权 5. 删除内容审查:删了哪些代码 / 原因 / 是否确认无依赖 / 是否影响旧功能 6. 业务逻辑审查:是否符合需求 / 正常流程 / 异常流程 / 是否影响旧业务规则 7. 审查结论:可以继续 / 需要小修 / 需要回退部分修改 / 需要重新制定计划 注意:只审查,不要继续修改代码;若发现问题,先说明问题和建议,等我确认后再改。
06第六步 · 提交与复盘
代码测试通过、审查完成后,最后一步不是简单说"完成了"。真正完整的 Codex 工作流还要做两件事:第一,把修改正式提交;第二,把经验沉淀下来。很多人只做到"代码能跑",但没有提交说明、没有 PR 描述、没有记录问题、没有更新文档——结果是:每次都像第一次做,每次都重复踩坑。交付不是结束,复盘才是下一次效率提升的开始。
生成 commit
好的 commit 应该能回答:改了什么、为什么改、影响哪里、是否通过测试。常见格式(中英文皆可):
feat: add user profile page / feat: 新增用户资料页 fix: resolve login redirect issue / fix: 修复登录后跳转异常 style: improve homepage responsive / style: 优化首页移动端布局 refactor: simplify product card / refactor: 简化产品卡片组件 docs: update setup guide / docs: 更新项目使用说明
写 PR
PR 的作用不是"走形式",而是让 reviewer 快速知道:做了什么、为什么做、改了哪里、怎么测、有什么风险、重点看哪。好的 PR 描述示例:
## 本次修改 - 优化首页首屏标题、副标题和 CTA 按钮 - 调整移动端首屏布局 - 保留原有跳转逻辑,没有修改接口和路由 ## 测试结果 - npm run lint 通过 - npm run build 通过 - 手动检查首页桌面端和移动端显示正常 - 点击 CTA 按钮跳转正常 ## 风险说明 - 本次涉及首页样式调整,需重点确认移动端显示 - 没有新增依赖 - 没有修改登录、接口、数据库逻辑
记录问题(复盘)
真正有价值的不是"这次做完了",而是下次遇到类似问题可以少走弯路。记录格式可以很简单:
本次问题记录: 1. 问题:Codex 一开始想修改全局样式 原因:需求里没有明确限制"只改首页" 解决:补充提示词,要求只修改首页相关文件 2. 问题:移动端测试遗漏 原因:计划阶段没有列移动端验收标准 解决:以后在测试清单里固定加入移动端检查 3. 问题:PR 描述不够清楚 原因:没有提前记录测试结果 解决:每次测试后直接生成测试总结
总结 Prompt 与更新 AGENTS.md
如果这次使用的提示词效果不错,就沉淀下来(比如"不要顺手重构无关代码""超出计划先停下来问")。如果某些规则以后每次都要遵守,最好更新到项目级 AGENTS.md。示例内容:
## 工作规则 - 修改前必须先阅读项目结构 - 修改前必须先制定计划,不要直接写代码 - 一次只实现一个功能点 - 不要顺手重构无关代码 - 不要新增不必要依赖 - 不确定业务逻辑时,先提问,不要自行决定 ## 测试要求 每次修改后至少检查:npm run lint / npm run build / 相关页面手动测试 / 浏览器控制台是否有报错 / 移动端布局是否正常 ## 提交要求 提交前需要说明:修改了哪些文件 / 每个文件改了什么 / 测试是否通过 / 是否有风险或未完成事项
更新项目文档
| 修改内容 | 需要更新的文档 |
|---|---|
| 新增功能 | README、功能说明 |
| 新增环境变量 | .env.example、部署文档 |
| 新增命令 | README、开发指南 |
| 修改接口 | API 文档 |
| 修改部署流程 | 部署说明 |
| 新增组件 | 组件使用说明 |
请进入提交与复盘阶段,不要继续新增功能。 请按下面结构输出: 1. Commit 建议:生成合适的 commit message,使用 conventional commit 格式,不要夸大范围 2. PR 描述:本次修改 / 修改原因 / 涉及文件 / 测试结果 / 风险说明 / reviewer 重点看哪里 3. 问题记录:复盘本次过程——遇到哪些问题、原因、如何解决、下次如何避免 4. Prompt 总结:哪些 Prompt 有效、为什么有效、适合什么场景复用、是否建议加入 AGENTS.md 5. AGENTS.md 更新建议:适合加入的长期规则(修改前 / 修改中 / 测试 / 提交) 6. 项目文档更新建议:是否需要更新 README.md / .env.example / docs/ / CHANGELOG.md 最后请给出交付结论:是否可以提交 / 是否可以发 PR / 是否有未完成事项 / 是否有需人工确认的风险
文档不是附属品,在 Codex 工作流里,文档本身就是上下文基础设施。文档越清楚,后续人和 AI 接手项目都更轻松。
跨会话交接:养成写 HANDOFF.md 的习惯
关掉长会话后,所有没显式写下来的进度都会随会话结束消失——AI 没有"记住"功能,上下文从来不是自动保存的。很多人以为"AI 记不住"是 Bug,其实是工作流缺了一个交接仪式。触发时机:每次想"今天先到这"时,让 Codex 整理一份交接文档。
把目前的进度整理成一份 HANDOFF.md,包含:当前进度、待办事项、 已知约束、下一步计划。保存到项目根目录。
先读 HANDOFF.md,然后继续推进任务。
# Handoff — [项目名称] — [日期] ## 当前进度 - [具体描述:做到了什么] ## 待办事项 - [ ] [下一个具体任务] - [ ] [其他待办] ## 已知约束 - [比如:JWT 认证 / AUTH_SECRET 必须设置 / PostgreSQL] ## 下一步计划 1. [第一步具体操作] 2. [第二步具体操作] ## 踩过的坑(可选) - [记录防止重蹈覆辙]
没有交接文档时,每个新 session 要花 10–15 分钟重新发现"上次做到哪了";加上 HANDOFF.md 后,打开新会话直接进工作状态,5 分钟内无需任何澄清即可开工。这个习惯不只适合 Codex,Claude Code 等同样适用。
07任务模板库(即用即抄)
前面讲的是标准工作流,这一节直接放一些常用模板。作用是不用每次重新想 Prompt,按场景复制后填入自己的需求即可。所有模板都遵循"先理解 / 先计划,再动手"的原则。
读项目模板
请先不要修改任何代码。 请阅读当前项目,并输出一份项目理解报告,包括: 1. 技术栈(前端/后端/数据库/构建工具,是否用 TypeScript、Tailwind、框架) 2. 目录结构(页面、组件、工具函数、接口、配置文件分别在哪;哪些目录是核心) 3. 启动方式(如何安装依赖、本地启动、是否需要环境变量) 4. 测试命令(test / lint / typecheck / build,没有请说明) 5. 核心模块(核心功能模块分别负责什么,改功能优先看哪些文件) 6. 后续修改风险(哪些文件/目录改动风险高、哪些逻辑不能随便改) 请只输出项目理解报告,不要修改代码。输出完成后等待我确认。
修 Bug 模板
我遇到一个 bug: 【现象】 【复现步骤】 【期望结果】 【实际结果】 【相关文件/页面】 请先定位原因,不要直接修改。先给出: 1. 可能原因 2. 需要查看的文件 3. 修复方案 4. 风险点 等我确认后再改代码。
加功能模板
我想新增一个功能: 【功能描述】【入口位置】【交互流程】【视觉要求】 【数据来源】【验收标准】 请先阅读相关代码,给出实现计划。不要改无关文件。 实现后请运行测试并总结 diff。
前端页面模板
请根据下面要求实现一个页面: 【页面用途】【目标用户】【视觉风格】【模块结构】 【中文文案】【响应式要求】【不要出现的问题】 请先给出组件拆分方案,再开始实现。
代码审查模板
请审查当前分支相对 main 的 diff。重点检查: 1. 潜在 bug 2. 边界条件 3. 安全风险 4. 类型问题 5. 性能问题 6. 是否有无关修改 7. 测试是否充分 请不要直接修改代码,先输出 review 报告。
重构 / 写测试 / 写文档模板
# 重构模板 请重构以下模块:【模块路径】 目标:1. 提高可读性 2. 减少重复代码 3. 保持现有行为不变 4. 不改变公共 API 5. 不引入新依赖 请先写重构计划,并说明如何验证行为一致。 # 写测试模板 请为以下功能补充测试:【功能描述】【相关文件】【边界情况】 要求:1. 不改业务逻辑 2. 覆盖正常路径 3. 覆盖异常路径 4. 覆盖边界条件 5. 运行测试并报告结果。 # 写文档模板 请根据当前项目生成文档: 1. 项目简介 2. 安装方式 3. 启动方式 4. 环境变量说明 5. 常用命令 6. 目录结构 7. 开发注意事项 8. 常见问题 请不要编造不存在的命令,必须基于项目文件判断。
07·b任务执行机制:顺序、插队与并行
理解 Codex 怎么"排队"和"并行",能避免很多"它怎么不理我第二个要求"的困惑。
| 方式 | 怎么做 | 行为 |
|---|---|---|
| 顺序执行 | 选项目 → 新建对话 → 发任务;执行中再下令 | 新指令进入排队,等前面任务完成才执行 |
| 插队(引导) | 点「引导」选项,再提补充要求 | 新任务直接插队到当前执行任务中(如"改成手绘风格") |
| 并行 | 同一 Project 下新建多个对话 | 多任务并行、互不干扰 |
一个对话 = 一个串行任务队列;多个对话 = 并行任务。想中途改需求用「引导」插队,比等它跑完再改更高效。
07·c第一次用 CLI 改代码(五步法)
在 CLI 里第一次让 Codex 改真实项目,关键是选"小、可验证、易回滚"的任务,先建立协作节奏。下面五步都配可直接复制的提示词。
适合 vs 暂时避开
| ✅ 适合第一个任务 | ❌ 暂时避开 |
|---|---|
| 修复文案错别字 | 大规模架构重构 |
| 给纯函数补测试 | 跨多服务迁移 |
| 更新 README 过期命令 | 无测试的核心业务逻辑 |
| 解释小模块并补注释 | 涉及生产凭据 / 账单 / 权限 / 删数据 |
| 修复已有失败测试覆盖的 bug | 需同时改十几个文件的需求 |
第 1 步 · 只读建图
请先阅读这个仓库的目录结构、README、包管理器配置和测试配置。 不要修改文件。请总结: 1. 项目用途 2. 主要技术栈 3. 如何安装依赖和运行测试 4. 你建议我下一步交给你的 3 个低风险任务
第 2 步 · 给出小任务(代码类)
请修复当前仓库中最小范围的一个测试失败。 要求: 1. 先运行测试,确认失败信息。 2. 阅读相关代码和测试,不做无关重构。 3. 修改最少必要文件。 4. 修复后重新运行相关测试。 5. 最后总结:失败原因、改了哪些文件、验证命令和剩余风险。
请更新 [文档文件] 中关于 [主题] 的说明。 要求: 1. 先读取相关官方资料和现有文档结构。 2. 保持中文教程风格,避免整段翻译官方原文。 3. 涉及操作步骤时添加截图占位。 4. 修改后运行文档站构建。 5. 最后列出来源链接和需要人工补图的位置。
第 3 步 · 观察过程(看五件事)
它是否:① 先读上下文;② 控制范围;③ 解释命令;④ 运行验证;⑤ 说明风险。
第 4 步 · 检查 diff 并让它自查
git diff
请 review 你刚才的改动,不要继续修改文件。 请重点检查: 1. 是否有无关改动 2. 是否遗漏测试 3. 是否引入安全或兼容风险 4. 是否还有未验证的地方
第 5 步 · 提交前摘要
请用提交前摘要格式输出: - 改动目标 - 修改文件 - 验证命令 - 验证结果 - 剩余风险 - 建议 commit message
满意后再提交:
git add . git commit -m "fix: resolve failing test"
第一次失败怎么办
| 失败现象 | 处理方式 |
|---|---|
| 改动太大 | 让它停下,只保留最小修复思路 |
| 测试跑不起来 | 先让它解释环境缺口和命令来源 |
| 方向不对 | 回到只读分析,让它列出文件依据 |
| 输出太泛 | 要求按文件、命令、风险分段输出 |
| 误改无关文件 | 用 git diff 确认,再手动决定保留或丢弃 |
很小的 diff + 可复现的验证命令 + 清楚的改动摘要 + 可复用的任务模板 + 对权限 / 审批的初步理解。
07·d常见卡点与排障三板斧
| 问题 | 处理方式 |
|---|---|
| 找不到项目上下文 | 不在项目根目录 / 缺 README·测试命令 / monorepo 没说明包边界 → 先只读目录总结结构;补 AGENTS.md;任务里指定相关目录 |
| 改动范围太大 | 明确"只修改这些文件";要求"先输出计划,不要动手";拆更小步骤;review 时拒绝无关重构 |
| 测试跑不起来 | 让它先定位测试命令;检查依赖是否安装;区分环境问题和代码问题 |
| 生成内容不准确 | 要求引用依据文件;官方事实附链接;区分"已确认"与"推测";先读代码再写文档 |
| 登录或权限问题 | 更新 CLI 到最新版;重新登录;检查账号计划和组织策略;查官方 Help Center |
90% 的「找不到上下文 / 改动太大 / 测试跑不起来」靠这套预防:① 更新 CLI(codex update);② 重新登录(codex login);③ 补 AGENTS.md(写清命令、目录边界、风格、禁改项)。
高频问答 FAQ
Q1 · 登录卡在手机号验证,怎么办?
先别重装、也别急着买号。"卡在手机号"只是页面表现,背后可能是三层不同问题:
| 层级 | 判断与处理 |
|---|---|
| ① 账号验证层 | 手机 ChatGPT 能用、电脑却停在手机号页 → 先处理账号登录 / 验证,重装 Codex 通常无效 |
| ② 授权返回层 | 浏览器已进入 ChatGPT,但授权没回到 Codex → 确认两端同一账号,只保留一条登录流程,别同时开多个登录窗口 |
| ③ API 调用层 | 只想让本地工具 / 脚本调模型 → 才需要 API Key + 接口地址 + 模型名;API 按量计费,不能替你绕过账号验证 |
求助时直接说明三件事:你在手机还是电脑、当前停在哪个页面、最后想进 ChatGPT/Codex 还是让支持 API 的工具调模型——基本就能定位该走账号、授权还是 API 路线。
Q2 · Windows 上突然巨卡,怎么提速?
实测最常见的根因是 Windows 临时目录(%TEMP%)文件过多,叠加沙箱每次递归刷新 ACL,导致频繁超时重试。4 个有效手段:
- 给 Codex 单独设临时目录(在启动 Codex 的 PowerShell 窗口里设,关窗失效):
New-Item -ItemType Directory -Force C:\CodexTemp | Out-Null→$env:TEMP='C:\CodexTemp'; $env:TMP='C:\CodexTemp'→ 在此窗口启动codex; - 临时停用 Codex Micro 服务:无该硬件时它仍持续查询设备状态造成卡顿,查 Event ID 1000 / 异常码 0xc06d007f,让其尝试关闭 Gate 或升级版本;
- 删掉 Superpower 类过度封装:5.6 之后模型能力足够,过度设计反而冗余费时;小任务直接下达,大任务先用需求梳理工具理清;
- PowerShell 换成 PowerShell 7 并设 UTF-8:避免 Codex 与 Windows 默认 Shell 在换行符 / 字符集上反复"绊一下"。
改配置前务必先备份;关 Sandbox 后不要随手开 --dangerously-bypass-approvals-and-sandbox。
Q3 · 装 Codex 插件,会不会把公司数据全交出去?
结论:不会因为装一个 Plugin 就自动获得公司全部数据,但也不能写成"装了就绝对安全"。要把访问范围拆成四层看:
| 层 | 它决定什么 |
|---|---|
| ① Plugin 带了什么 | 纯 Skill 的 Plugin 只改变流程;带 App / connector / MCP 的才可能连外部系统 |
| ② App 被允许做什么 | RBAC 决定谁能用、Action control 决定能执行哪些动作、是否要求确认 |
| ③ 你源系统账号原本能看什么 | 批准 App 不会覆盖源系统原有权限;你看不到的文件不会因装 Plugin 而可见 |
| ④ 这次运行还受哪些限制 | sandbox / approval policy / 本地策略仍生效,约束本次文件读写、命令、网络 |
① 卸载 Plugin 不会自动断开它包含的 connector,旧授权要在 ChatGPT 里单独撤销;② 连接公司账号前先确认连接的是哪个外部账号——公司账号与个人账号在源系统权限不同,Codex 最终能拿到的内容也不同。安全审核类问题更适合转给负责 App 授权 / 源系统权限的人。
向他人提交日志 / 截图 / 诊断输出前先脱敏:用户名、路径、私有仓库名、token、账号信息都不要外泄。切换第三方 provider 后旧会话可能不可见——先确认 ~/.codex/sessions 是否还有旧会话文件,再决定是否用第三方工具(用前先备份 ~/.codex)。
07·e提示词怎么写才高效(官方 6 技巧)
Codex 官方总结的提示词思路,核心是从"单次完美 Prompt"转向高频交互 + 结构化上下文。下面 6 条对新手尤其有用:
| 技巧 | 做法 | 为什么 |
|---|---|---|
| ① 提示词不必完美,随时 Steer | 先给一个明确的启动指令,执行中用实时转向补充边界条件 | Agent 开发是渐进式的,把它当同桌结对编程 |
| ② 复杂任务用 /goal 结构 | Goal(目标)/ Context(背景)/ Constraints(限制)/ Acceptance(验收)写清楚 | 避免大模型偏题,约束复杂任务的逻辑 |
| ③ 修 Bug 给可执行复现步骤 | 列出触发操作序列、预期 vs 实际、复现命令 | 给能直接执行的排查路径,定位效率翻倍 |
| ④ 用文字补截图看不到的行为 | 传图同时说明交互逻辑、异步加载、动画时序 | 截图只展示静态样式,展示不了动态 |
| ⑤ 用"应用快照"提供结构化上下文 | 把 DOM / 状态树 / 环境变量一次性喂给 Codex | 防止 AI 因盲猜全局上下文而幻觉 |
| ⑥ 合并后桌面端原生支持语音输入 | 大段背景铺垫直接开麦长语音 | 口语化表达比打字罗列更高效 |
把 ② 的 /goal 结构用到需求拆解(第一步)里;把 ③ 用到修 Bug 模板里。其余几条作为日常习惯,能明显减少"它改偏了"的情况。