第 10 章 / 共 10 章
实战演练:一个可验收的完整任务
10.1 演练任务
在你自己的一个真实项目里完成下面这个任务。不要用玩具仓库——玩具仓库上什么都能成功,学不到东西。
任务:为项目中一个现有的功能补齐错误处理与对应测试。要求:找出至少一处没有处理异常路径的代码,补上结构化的错误处理,补上对应的测试用例,并保证现有测试全部通过。
选这个任务是有原因的:它需要读懂现有代码(考第2、3章)、涉及多个文件(考第6章的计划模式)、要执行测试(考第4章的沙盒)、且有明确的验收标准(考第6章的完成标准)。
10.2 分步走查
第一步:只读探查。
codex --sandbox read-only
提问:这个项目里哪些函数调用了外部服务或数据库但没有做异常处理?列出文件和行号。
拿到列表后自己去看一眼。这一步是在校准它的判断力,不是直接采信。
第二步:补齐项目说明。
如果第一步里它误解了项目结构(比如把某个目录的职责搞错了),现在就去补 AGENTS.md。这一步不能跳——它是后面所有质量的地基。
第三步:用四要素写任务描述。
参考这个骨架,把方括号里的内容换成你项目的实际情况:
目标:为 [具体函数] 补齐异常处理,外部调用失败时返回结构化错误而不是抛原始异常。
上下文:相关代码在 [文件路径],项目的错误响应格式定义在 [文件路径]。
约束:不改函数签名,不引入新依赖,不动 [某目录]。
完成标准:补充覆盖失败路径的测试用例,`[测试命令]` 全部通过,`[lint 命令]` 通过。
第四步:先出计划。
/plan
认真读这份计划。 如果计划里出现了你不打算改的文件,现在就说明——这比事后 review diff 便宜得多。
第五步:执行并盯住审批点。
批准计划后让它执行。保持 on-request 审批策略,在它请求越界时读一下它到底要做什么再决定。这一步是本次演练里最重要的肌肉记忆。
第六步:自审。
/review
然后自己完整读一遍 git diff。不读 diff 就合并的人,迟早会出事故。
10.3 自检评分表
按这张表给自己这次演练打分:
| 维度 | 不合格 | 合格 | 优秀 |
|---|---|---|---|
| 边界控制 | 全程 --yolo 或不知道自己在什么沙盒下 | 明确知道沙盒和审批策略,用 /status 确认过 | 用 writable_roots 精确放行而不是整体放开 |
| 任务描述 | 一句话需求 | 四要素齐全 | 完成标准里包含可执行的验证命令 |
| 计划环节 | 直接开干 | 用了 /plan 并读过计划 | 修改过计划才批准执行 |
| 规则沉淀 | 每次重复交代 | 写了 AGENTS.md | 规则可验证、有例外说明、按目录分层 |
| 结果验证 | 看它说”完成了”就信 | 跑了测试 | 完整读过 diff,并能说清每处改动的理由 |
| 可复用性 | 下次还得从头来 | 记住了流程 | 把流程沉淀成了配置或技能 |
每个维度至少达到”合格”,才算完成本教程的学习目标。 出现任何一个”不合格”,回到对应章节:边界控制看第4章,任务描述看第6章,计划环节看第6章,规则沉淀看第5章,结果验证看第9章,可复用性看第7、8章。

10.4 三个失败信号
如果出现下面任何一个信号,说明流程有问题,而不是模型有问题:
信号一:你不敢读它的 diff。 说明任务粒度太大了。把它拆成三个能在十分钟内 review 完的小任务。
信号二:你在同一个会话里纠正了五次以上。 说明初始描述缺了要素,或者项目缺说明文件。/clear 重来,把纠正内容合并进初始描述。
信号三:每次都要重新交代同样的背景。 说明该写 AGENTS.md 了,或者该做成技能了。
10.5 下一步
完成演练之后,按这个顺序继续深入:
- 把演练里用到的配置固化:把你这次用的沙盒、审批、推理档位写进
~/.codex/config.toml,并按第7章那张表建两三个 profile。 - 在团队仓库开启 PR 评审:这是投入产出比最高的一步,因为它不需要队友改变任何习惯。跑两周后回头调
## Code Review Rules。 - 沉淀你的第一个技能:用第8章练习里写的那份流程清单。
- 再考虑 MCP 和云端:这两项的配置成本最高,等前面三步稳定了再动。
顺序很重要:先把个人流程跑顺,再推团队;先把规则写清楚,再谈扩展能力。 跳过前面直接接 MCP 和云端,通常的结果是配置一堆、用不起来。