Sooua
登录
返回文章列表
Codex··4 分钟阅读

代码审查工作流:让 Codex 当你的 Reviewer

Codex 内置的 /review 命令会启动一个独立的只读子 Agent,与当前会话隔离,避免"自我审查"的认知偏差。

官方原文索引: 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 test

3. 场景深入:不同审查策略

策略 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,防止重复发生
  • 审查是教学机会:把审查发现的问题和修复方案记录下来,作为团队知识库
分享

评论

登录 后参与讨论。

加载中…

相关文章