官方原文索引: Run local code review / /review command
1. 核心架构与原理解析
Codex 内置的 /review 命令会启动一个独立的只读子 Agent,与当前会话隔离,避免"自我审查"的认知偏差。
审查维度覆盖:
| 维度 | 检查内容 | 配置方式 |
|---|---|---|
| 正确性 | 逻辑错误、竞态条件、边界遗漏 | 内置 |
| 安全性 | 注入风险、敏感数据泄露、越权 | AGENTS.md 安全规则 |
| 可维护性 | 代码重复、命名清晰度、注释质量 | AGENTS.md 编码规范 |
| 测试覆盖 | 新增代码是否补充测试 | AGENTS.md 测试要求 |
2. 工程落地与代码示例
基础审查
codex
> /review
# 审查当前分支相对于 base branch 的所有改动
> /review --uncommitted
# 审查未提交的本地修改
> /review main
# 明确指定对比 main 分支自定义审查 Agent
# .codex/agents/security_reviewer.toml
name = "security_reviewer"
description = "专注安全漏洞审查"
model = "gpt-5.3-codex-spark"
sandbox_mode = "read-only"
model_reasoning_effort = "high"
developer_instructions = """
像安全审计员一样审查代码。优先查找:
- 注入类漏洞(SQL、Command、LDAP、XPath)
- 敏感数据泄露(日志、异常信息、API 响应)
- 权限越权(水平/垂直越权、IDOR)
- 加密误用(硬编码密钥、弱算法、可预测随机数)
输出格式:
[Risk: Critical/High/Medium] 文件:行号 - 问题描述 - 修复建议
"""审查后工作流
# 1. 发起审查
> /review main
# 2. Codex 输出审查报告(结构化列表)
# 3. 逐条确认修复
> 修复第 1 条:将 user_input 改为参数化查询
# 4. 修复完成后再次审查
> /review main
# 5. 确认无风险后提交
git commit -m "fix: resolve security findings from codex review"审查清单模板(可放入 AGENTS.md)
## Code Review Checklist
### 安全
- [ ] 无硬编码密钥、Token、密码
- [ ] 用户输入经过校验和转义
- [ ] 数据库查询使用参数化/ORM
- [ ] 敏感操作有权限校验
- [ ] 日志不包含敏感信息
### 正确性
- [ ] 边界条件处理(空值、最大值、异常输入)
- [ ] 错误路径有处理(try/catch、错误返回)
- [ ] 并发安全(锁、原子操作、事务)
- [ ] 时区/精度问题(日期、货币、浮点)
### 可维护性
- [ ] 命名清晰(函数、变量、文件)
- [ ] 单一职责(函数 < 50 行,类内聚)
- [ ] 必要注释(复杂逻辑、业务规则)
- [ ] 无重复代码(DRY 原则)
### 测试
- [ ] 新增代码有对应测试
- [ ] 边界条件有测试覆盖
- [ ] 所有测试通过
- [ ] 无 flaky test3. 场景深入:不同审查策略
策略 A:预提交审查(Pre-commit Review)
# 在 .git/hooks/pre-commit 中集成
#!/bin/bash
# 使用 Codex 做预提交审查
codex exec --sandbox read-only \
--approval-mode never \
"审查当前暂存区的改动,输出安全问题列表"策略 B:PR 描述自动生成
# 基于 diff 自动生成 PR 描述
git diff main...HEAD | codex exec "根据这些改动生成 PR 描述,包含:变更摘要、影响范围、测试说明"策略 C:安全专项审查
# 每月一次安全审查
codex --sandbox read-only
> 扮演安全审计员,审查 src/ 下所有文件:
> 1. 找出所有 OWASP Top 10 风险
> 2. 检查依赖是否有已知 CVE
> 3. 审查日志是否泄露敏感信息
> 4. 输出按严重性排序的修复清单4. 💡 核心避坑与最佳实践 (Takeaways)
- 审查前确保 Git 状态干净:未跟踪文件会干扰
/diff和/review的准确性 - 自定义审查模型降低成本:
review_model = "gpt-5.3-codex-spark"比满血模型便宜 60%+,且对审查任务足够 - 不要完全依赖机器审查:Codex 擅长找常见模式,但业务逻辑错误仍需人工判断
- 审查结果要落地为规则:反复出现的问题应补充到 AGENTS.md,防止重复发生
- 审查是教学机会:把审查发现的问题和修复方案记录下来,作为团队知识库