Skip to content

开发者第一次使用 Codex:完成可验证的小改动

第一次用 Codex 写代码,别上来就"重写整个项目"。你需要的不是惊艳,是跑通一个完整的闭环:记录现状 → 只读调查 → 批准小改动 → 跑验证 → 审查差异。这个流程以后不管任务多大都用得上。

本页要求你会 Git、终端和测试,是开发者教程。不会编程或只想做办公、PPT、电商和内容任务,走 普通人的第一次文件任务

选一个合适的小任务

从你真实仓库里挑一个满足这些条件的:

  • 最多动到一到三个文件
  • 你知道正确的结果长什么样
  • 有现成测试、构建或者人能检查的办法
  • 不碰生产数据库、付款、发布、凭证
  • 搞砸了也能通过明确的编辑恢复

好例子:修一个错误提示语、给现有函数补个边界测试、更新一条已验证的启动命令、修一个稳定复现的样式问题。

第一步:动手前先拍照

bash
cd /path/to/project
git status --short --branch
git diff --stat

如果已经有一些未提交的修改,把它们当成当前工作的一部分。记录文件名,别让 Codex "顺便清理"。

再找找项目的验证入口:

bash
ls

常见线索:package.jsonpom.xmlbuild.gradlego.modMakefile、CI 工作流文件、仓库根目录的 AGENTS.md

第二步:先让 Codex 只调查,不改

bash
codex -C /path/to/project --sandbox read-only

把下面模板里的方括号换成你的实际情况:

text
目标:[描述一个小而具体的问题]。

先只调查,不修改文件。请:
1. 找到真实实现和调用方;
2. 说明问题为什么会发生;
3. 给出最小修改方案和预计影响的文件;
4. 找到项目已有的验证命令;
5. 标出你还不能确认的地方。

边界:不要安装依赖,不要改无关文件,不要提交或推送。

别光看结论。检查它引用的路径、函数名、命令是不是真实存在。如果它说"看起来像是..."而没有引用具体文件路径,说明没认真读,让它重查。

第三步:批准最小范围修改

确认调查结果靠谱之后,开可写任务。App 里切到 workspace-write,CLI 这样:

bash
codex -C /path/to/project --sandbox workspace-write --ask-for-approval on-request

发送:

text
按刚才确认的最小方案实施。

要求:
- 只修改 [允许的文件或目录];
- 保持公开接口和现有行为不变,除非它正是本次要修的;
- 遵循仓库已有的代码风格;
- 如果发现需要扩大范围,先停下来说明原因;
- 完成后运行最小相关验证,报告命令、退出结果和还没跑的检查;
- 不要提交、推送或发布。

第四步:别问"完了吗",自己看

不要问 Codex"做完了吗",直接看工作树:

bash
git status --short
git diff --stat
git diff

逐项确认:

  • 是不是只改了允许的范围
  • 有没有夹带格式化、依赖升级、无关重命名
  • 测试是不是真覆盖了问题,还是只 assert 了一个恒为真的东西
  • 错误处理是不是把异常吞了
  • 文案、路径、配置字段是不是精确

发现无关修改,明确指出文件和行号让 Codex 定点改,别用一句"恢复所有文件"的宽泛命令。

第五步:自己跑验证

先跑 Codex 报告的最小检查,再按风险决定要不要扩大:

bash
# 示例,按你项目实际情况换
npm test
npm run build

验证结果至少记下:

  • 执行了什么命令
  • 退出码是不是 0
  • 多少测试通过、多少失败
  • 哪些检查因为环境限制没跑
  • 界面问题的话,在哪个 URL、什么操作路径上人工确认过

第六步:让 Codex 做独立复核

bash
codex review --uncommitted "只报告会导致错误、安全问题或回归的发现;忽略纯风格偏好"

复核不是最终判决,每条发现回到代码和测试里核实,再决定改不改。

一份像样的完成报告长这样

text
已修改:
- src/example.ts:修复空输入处理
- test/example.test.ts:补充空输入回归测试

已验证:
- npm test:通过,42 tests passed
- npm run build:通过

未验证:
- 未运行端到端测试,因为本机缺少浏览器依赖

工作树:
- 仅上述两个文件有修改
- 未提交、未推送

别拿"代码看起来没问题"当完成报告,那跟没写一样。

第一次最容易翻车的地方

任务太大了

把"完成用户系统"拆成"确认现有登录链路"→"增加一个字段"→"补一条回归测试",三个独立任务。

没先记录工作树

任务跑完你分不清哪些是它改的、哪些是你之前改的。任何时候改代码前先跑 git status --short

验证命令是 Codex 猜的

要求它指出命令来自哪个配置文件,然后你自己跑一遍

一次塞了太多要求

先完成必须目标,重构、性能优化、视觉调整这些单独开任务。"顺便"两个字从高风险任务里删掉。

完成门槛

  • [ ] 修改前后工作树都有记录
  • [ ] 先只读调查,再开始编辑
  • [ ] 修改范围没有意外扩大
  • [ ] 至少跑了一项和问题直接相关的验证
  • [ ] 能用自己的话解释修改为什么有效
  • [ ] 清楚知道哪些检查还没跑

下一步

继续 怎样给 Codex 写任务,把本页的流程压缩成稳定的日常模板。

事实来源