在真实工作区里完成一次只读审计
亲手确认工作区、指令来源、权限和可验证命令,建立“先读环境、再行动”的 Codex 心智。
先知道终点
- 做完你会得到
- 得到一份基于真实文件的 workspace-audit.md
- 开始前只需要
- 已完成任务分流课;会新建一个练习文件夹
- 最后留下这些证据
- 审计报告列出实际读取文件;权限决策与任务动作匹配;至少一个验证命令可重复运行
内容校准于 2026-07-30 · 第 20 / 38 节已发布课程
跟着材料做,不只阅读
本节练习资料
它没有看错文件,它只是被放进了错误的房间
两个项目名字很像。Codex 在旧目录里找到 README、测试和配置,分析得有理有据。直到准备修改,你才发现真正的仓库在另一个文件夹。
错误现场也能产生流畅结论。
Codex 的第一项工程能力不是写代码,而是准确说出自己站在哪里。 这节课不修改任何文件,只完成一份工作区审计,把目录、规则、权限和可验证命令逐项钉住。
先理解你要观察什么
Codex 不是在真空里回答问题。它从当前工作区读取文件和项目指导,在允许的边界内运行命令,并把修改留在真实文件系统里。打开错目录、缺少关键文件或忽略项目规则,都会让后续工作从错误起点出发。
本节只做审计,不修改练习材料。你会得到 workspace-audit.md;重点不是这份报告有多漂亮,而是每个结论能回到一个文件、命令或当前权限状态。
第一步:建立练习工作区
下载《工作区审计起始材料》,按其中“文件清单”建立:
workspace-lab/
README.md
AGENTS.md
package.json
src/
format-name.js
tests/
format-name.test.js
在 Codex 中把 workspace-lab 作为当前工作区。不要只在聊天里粘贴代码;本节要练的是让 Codex认识真实目录。
第二步:发送只读审计请求
目标
- 只读审计当前工作区,生成 workspace-audit.md 的草稿内容,但先不要写文件。
请报告
1. 当前工作区根目录和你实际读取的文件;
2. 项目的用途、入口、运行与测试命令;
3. 当前生效的 AGENTS.md 规则;
4. 如果要修改姓名格式化逻辑,需要触碰哪些文件;
5. 当前权限是否足够完成“只读审计”,哪些后续动作会需要更高权限;
6. 哪些结论是文件直接支持,哪些只是推断。
边界
- 不修改文件,不安装依赖,不联网。
- 找不到内容时写“未找到”,不要按常见项目猜。
你应该看到什么
合格结果会说出具体路径,例如 README.md、src/format-name.js,而不是“我查看了项目文件”。它应把 package.json 中的脚本与实际用途连接起来,并指出 AGENTS.md 要求的检查。
如果它声称“测试使用 Jest”,但 package.json 没有 Jest,这就是无来源推断。要求它引用具体字段并纠正报告。
第三步:手工核对三条,而不是全盘相信
任选三条:
- 它说的测试命令是否与 package.json 完全一致;
- 它说的当前行为是否与 src/format-name.js 一致;
- 它提到的禁止事项是否真的在 AGENTS.md;
- 它列出的文件数量是否与目录相符;
- 它是否把 README 的愿景误当成已经实现的行为。
把每条标为“文件支持 / 推断 / 错误”。这一步让你体验“证据等级”,以后诊断和审查都沿用。
第四步:区分能力、沙箱和审批
三个概念不要混在一起:
- 能力:Codex 是否有某个工具或会使用某类命令;
- 沙箱:命令技术上可以读写哪些位置、是否能联网;
- 审批:越过当前边界时,什么时候必须停下来问你。
本次审计只需要读取练习目录,所以只读权限足够。若下一步要把报告写入工作区,需要工作区写入;若要访问网络或修改工作区外文件,则是新的权限范围。
为三个任务填写最小权限:
| 任务 | 最小权限 | 必须停下的情况 |
|---|---|---|
| 解释目录结构 | 只读 | 需要安装依赖或访问外部资料 |
| 修复格式化函数 | 工作区写入 | 要改工作区外配置或联网下载 |
| 发布包 | 取决于环境 | 登录、推送、发布或写外部系统 |
第五步:验证 AGENTS.md 是否真正生效
AGENTS.md 官方说明 强调指导会按全局、仓库、子目录组合,离当前目录更近的规则覆盖更宽泛规则。
问 Codex:
只根据当前可见证据,列出你本次任务实际加载的指导来源及优先顺序。
然后用一句话说明:如果修改 src/format-name.js,完成前必须运行什么检查。
不要修改任何文件。
答案应提到练习目录里的 AGENTS.md 和指定测试命令。如果没提到,先确认你打开的是正确工作区、文件非空,并重新启动任务;不要用聊天里再复制一遍规则来掩盖工作区错误。
第六步:运行一个无副作用的验证
允许 Codex 运行 package.json 中已有测试,但仍不修改文件:
运行项目已经声明的最小测试命令。报告完整命令、退出码和测试数量。
不要安装缺失依赖;如果环境不足,停止并说明缺什么。
观察重点
- 它是否先使用项目已有命令,而不是发明新工具;
- 失败时是否保留原始错误;
- 报告是否把“命令执行成功”和“业务完全正确”区分开。
第七步:生成最终审计文件
确认事实后再允许写入:
把已核对内容写入 workspace-audit.md。
结构:工作区、已读文件、项目入口、规则、最小权限、验证结果、未知项。
每个事实标注来源文件;推断单列。不要修改其他文件。
对照参考答案。措辞可以不同,但真实路径、测试命令、规则和未知项不能不同。
常见失败与修正
- 报告像通用模板:要求删除所有无法指向文件或命令的句子。
- 它修改了文件:检查提示中是否明确“先不要写文件”,并回看当前权限。
- 它安装依赖:任务边界不够明确,或你批准了超出审计范围的动作。
- 它没读 AGENTS.md:通常是工作区根目录或新任务加载时机错误。
每次换现场,都重新报一次地址
在另一个安全仓库重复审计。不要复制上一次结论,让 Codex 重新读取路径、Git 状态和生效指令。
只读检查不是浪费时间。它是后面所有修改能够被相信的地基,而且工作区一变,地基就要重测。
完成检查
- 我能指出 Codex 当前工作的真实目录
- 审计报告列出实际读取的文件和命令
- 事实、推断和未知项被分开
- 我能解释沙箱与审批的区别
- 我用一个无副作用命令验证了环境
参考与校准来源
本文是官方资料的中文转译与教学重组,不是逐字翻译;产品能力、命令、默认值与安全边界以下列官方原文为准。