Codex Review (对抗式审查)
触发时机
P 阶段 plan.md 生成后, 如果 Codex 可用。
初始化
REVIEW_ID = 生成一个 8 位随机 ID (用 Bash: uuidgen | cut -c1-8)
审查模板选择
根据 design.md 关键词自动选择:
- 包含 API/endpoint/route → templates/api-review.md
- 包含 component/CSS/UI → templates/frontend-review.md
- 包含 deploy/docker/k8s/terraform → templates/infra-review.md
- 否则 → templates/general-review.md
对抗循环
Round 1 (新 exec, 捕获 SESSION_ID):
CC → Codex: "审查以下计划. 严格找出漏洞/模糊/不可执行的部分. {plan.md 全文} {选定的 review template} 结果以 VERDICT: APPROVED 或 VERDICT: REVISE 结尾." Codex → 质疑列表 + VERDICT 如果 APPROVED → 结束, 记录到 reviews/review-{REVIEW_ID}.md CC: 逐条评估 (采纳修改 plan / 驳回并说明理由)
Round 2+ (resume SESSION_ID, 保持上下文):
CC → Codex (codex exec resume SESSION_ID): "修改后的计划差异: {diff}. 继续审查. VERDICT: APPROVED 或 VERDICT: REVISE." Codex → 继续质疑 + VERDICT ...
终止条件 (满足任一)
a) Codex 返回 VERDICT: APPROVED b) 连续 2 轮全部驳回 (记录分歧, cunzhi 让用户决策) c) 超过 5 轮 (强制停止, 输出分歧摘要)
审查结果持久化
每次审查写入 reviews/review-{REVIEW_ID}.md:
# Review {REVIEW_ID}
Date: {timestamp}
Rounds: {n}
Final Verdict: {APPROVED|STALEMATE|TIMEOUT}
## 采纳的修改
- ...
## 驳回的质疑
- ...
## 遗留分歧
- ...
Fallback
如果 Codex 不可用: CC 用 validator agent 做 Plan Review: "作为严格审查者, 这个计划有哪些漏洞/模糊/不可执行的部分?"