<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>代碼審查 on KnightLi的博客</title>
        <link>https://knightli.com/zh-tw/tags/%E4%BB%A3%E7%A2%BC%E5%AF%A9%E6%9F%A5/</link>
        <description>Recent content in 代碼審查 on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-tw</language>
        <lastBuildDate>Fri, 10 Jul 2026 06:20:42 +0800</lastBuildDate><atom:link href="https://knightli.com/zh-tw/tags/%E4%BB%A3%E7%A2%BC%E5%AF%A9%E6%9F%A5/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Claude Code 和 Codex 代碼審查流程怎麼搭：從本地改動到 PR 的閉環工作流</title>
        <link>https://knightli.com/zh-tw/2026/07/10/claude-code-codex-code-review-workflow/</link>
        <pubDate>Fri, 10 Jul 2026 06:20:42 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/07/10/claude-code-codex-code-review-workflow/</guid>
        <description>&lt;p&gt;Claude Code 和 Codex 都能寫代碼，但更穩的搭法不是讓兩個 Agent 同時改同一批文件，而是讓它們分工：Claude Code 負責實作和修復，Codex 負責獨立審查。&lt;/p&gt;
&lt;p&gt;這篇聚焦一個可落地的閉環：本地改動、Codex 二審、Claude Code 修復、PR 前檢查、必要時再做挑戰式審查。&lt;/p&gt;
&lt;h2 id=&#34;先明確兩個工具的位置&#34;&gt;先明確兩個工具的位置
&lt;/h2&gt;&lt;p&gt;Claude Code 更適合作為主工作台，跟著上下文修改、重構、補測試。Codex 更適合站在另一個角度檢查 diff，挑出回歸、漏測、安全風險和設計假設。&lt;/p&gt;
&lt;p&gt;不要讓兩個 Agent 同時寫同一段代碼。實作者和審查者分開，才有二審價值。&lt;/p&gt;
&lt;h2 id=&#34;最小可用流程&#34;&gt;最小可用流程
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Claude Code 完成實作
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; 本地測試或檢查
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Codex 審查 diff
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Claude Code 修復確認後的問題
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; 必要時 Codex 再審一次
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; 人類確認並發 PR
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;這個流程的好處是，Codex 不受前一輪實作對話影響，更容易發現盲點。&lt;/p&gt;
&lt;h2 id=&#34;在-claude-code-裡調用-codex&#34;&gt;在 Claude Code 裡調用 Codex
&lt;/h2&gt;&lt;p&gt;如果使用插件或 slash command，可以先用普通審查：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/codex:review
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;高風險改動再用：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/codex:adversarial-review
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;沒有插件也可以在同一倉庫打開 Codex，讓它審查當前 diff。&lt;/p&gt;
&lt;h2 id=&#34;本地改動審查怎麼搭&#34;&gt;本地改動審查怎麼搭
&lt;/h2&gt;&lt;p&gt;審查前先讓 diff 清楚：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;git&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;status&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-short&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;git&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;diff &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-stat&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;git&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;diff
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;給 Codex 的提示可以寫：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Review the current uncommitted diff. Focus on correctness, regressions, missing tests, security risks, and behavior changes. Do not rewrite the code; report findings with file and line references when possible.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;這樣能避免 Codex 直接進入改代碼模式。&lt;/p&gt;
&lt;h2 id=&#34;pr-前審查怎麼搭&#34;&gt;PR 前審查怎麼搭
&lt;/h2&gt;&lt;p&gt;PR 前可以讓 Codex 檢查：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Review this branch before PR. Check whether the change matches the stated goal, whether tests cover the risky paths, and whether the PR description should mention migration, config, compatibility, or rollout risks.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;好的輸出應該包含：真實問題、缺失測試、行為風險、開放問題和 PR 摘要。&lt;/p&gt;
&lt;h2 id=&#34;挑戰式審查適合什麼時候用&#34;&gt;挑戰式審查適合什麼時候用
&lt;/h2&gt;&lt;p&gt;適合用在：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;認證和授權；&lt;/li&gt;
&lt;li&gt;支付和帳單；&lt;/li&gt;
&lt;li&gt;資料遷移；&lt;/li&gt;
&lt;li&gt;安全敏感代碼；&lt;/li&gt;
&lt;li&gt;併發和後台任務；&lt;/li&gt;
&lt;li&gt;公共庫；&lt;/li&gt;
&lt;li&gt;生產配置；&lt;/li&gt;
&lt;li&gt;公開 API 行為。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;小改動不用每次都做挑戰式審查，否則成本和噪音都會上升。&lt;/p&gt;
&lt;h2 id=&#34;讓-claude-code-處理審查反饋&#34;&gt;讓 Claude Code 處理審查反饋
&lt;/h2&gt;&lt;p&gt;Codex 報告問題後，先由人確認哪些是真問題，再讓 Claude Code 修：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Please address the confirmed Codex review findings. Do not refactor unrelated code. Keep the patch scoped and rerun the relevant checks.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;修完後跑測試，必要時再讓 Codex 複查。&lt;/p&gt;
&lt;h2 id=&#34;把-review-清單寫進專案&#34;&gt;把 review 清單寫進專案
&lt;/h2&gt;&lt;p&gt;可以在倉庫裡放一份固定清單：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## High-risk areas
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Authentication and authorization
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Input validation
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Data migration
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Background jobs
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; External API calls
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Error handling and retries
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## Required verification
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Relevant unit tests
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Integration or smoke tests when behavior changes
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Manual check for UI changes
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Rollback or migration notes when needed
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## Code review
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Findings first
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; File and line references
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; No speculative rewrites
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Mention missing tests separately
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Claude Code 按它實作，Codex 按它審查。&lt;/p&gt;
&lt;h2 id=&#34;自動化-gate-要謹慎開&#34;&gt;自動化 gate 要謹慎開
&lt;/h2&gt;&lt;p&gt;讓 Codex 自動阻斷停止或合併很誘人，但容易帶來循環、誤報和額度消耗。先從窄規則做起：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;密鑰意外提交；&lt;/li&gt;
&lt;li&gt;改動模組沒有測試；&lt;/li&gt;
&lt;li&gt;危險 shell 命令；&lt;/li&gt;
&lt;li&gt;migration 沒有回滾說明；&lt;/li&gt;
&lt;li&gt;安全敏感文件變更沒有審查。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;大範圍推理仍應保留人工確認。&lt;/p&gt;
&lt;h2 id=&#34;一套可落地的團隊流程&#34;&gt;一套可落地的團隊流程
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;開發者讓 Claude Code 實作。&lt;/li&gt;
&lt;li&gt;本地測試。&lt;/li&gt;
&lt;li&gt;Codex 審查未提交 diff。&lt;/li&gt;
&lt;li&gt;人確認真問題。&lt;/li&gt;
&lt;li&gt;Claude Code 修復。&lt;/li&gt;
&lt;li&gt;再跑測試。&lt;/li&gt;
&lt;li&gt;Codex 輔助生成或檢查 PR 摘要。&lt;/li&gt;
&lt;li&gt;人類 reviewer 做最後決定。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;常見錯誤&#34;&gt;常見錯誤
&lt;/h2&gt;&lt;h3 id=&#34;錯誤一兩個-agent-同時改代碼&#34;&gt;錯誤一：兩個 Agent 同時改代碼
&lt;/h3&gt;&lt;p&gt;容易製造衝突和責任不清。保持一個寫、一個審。&lt;/p&gt;
&lt;h3 id=&#34;錯誤二review-提示太泛&#34;&gt;錯誤二：review 提示太泛
&lt;/h3&gt;&lt;p&gt;不要只說「幫我 review」。要明確 correctness、regression、tests、security 和行號。&lt;/p&gt;
&lt;h3 id=&#34;錯誤三只審查代碼不審查測試&#34;&gt;錯誤三：只審查代碼，不審查測試
&lt;/h3&gt;&lt;p&gt;很多風險來自漏測。讓 Codex 單獨指出測試缺口。&lt;/p&gt;
&lt;h3 id=&#34;錯誤四把-ai-review-當最終結論&#34;&gt;錯誤四：把 AI review 當最終結論
&lt;/h3&gt;&lt;p&gt;AI 能找問題，也會誤解需求。最後仍需人判斷。&lt;/p&gt;
&lt;h3 id=&#34;錯誤五不沉澱規則&#34;&gt;錯誤五：不沉澱規則
&lt;/h3&gt;&lt;p&gt;規則只留在聊天記錄裡，團隊很快會忘。要寫進倉庫。&lt;/p&gt;
&lt;h2 id=&#34;faq&#34;&gt;FAQ
&lt;/h2&gt;&lt;h3 id=&#34;claude-code-和-codex-誰更適合做代碼審查&#34;&gt;Claude Code 和 Codex 誰更適合做代碼審查？
&lt;/h3&gt;&lt;p&gt;Claude Code 適合實作流，Codex 適合獨立二審。分工比工具名稱更重要。&lt;/p&gt;
&lt;h3 id=&#34;codex-review-會自動改代碼嗎&#34;&gt;Codex review 會自動改代碼嗎？
&lt;/h3&gt;&lt;p&gt;如果明確要求只讀審查，就不應該改。審查和修復要分開。&lt;/p&gt;
&lt;h3 id=&#34;每個-pr-都要跑挑戰式審查嗎&#34;&gt;每個 PR 都要跑挑戰式審查嗎？
&lt;/h3&gt;&lt;p&gt;不需要。高風險改動再跑。&lt;/p&gt;
&lt;h3 id=&#34;review-gate-適合默認打開嗎&#34;&gt;review gate 適合默認打開嗎？
&lt;/h3&gt;&lt;p&gt;通常不適合。先 report-only，再挑可靠規則做 gate。&lt;/p&gt;
&lt;h3 id=&#34;代碼審查清單應該放在哪裡&#34;&gt;代碼審查清單應該放在哪裡？
&lt;/h3&gt;&lt;p&gt;放在倉庫裡，例如 review 文檔、Agent instruction 或專案約定文件。&lt;/p&gt;
&lt;h3 id=&#34;ai-審查結果怎麼寫進-pr&#34;&gt;AI 審查結果怎麼寫進 PR？
&lt;/h3&gt;&lt;p&gt;只寫確認過的問題、修復項、剩餘風險和測試結果，不要原樣貼整段 Agent 輸出。&lt;/p&gt;
&lt;h2 id=&#34;小結&#34;&gt;小結
&lt;/h2&gt;&lt;p&gt;Claude Code 和 Codex 的好流程不是兩個 Agent 搶著改代碼，而是一個實作、一個二審、一個修復、一個再檢查，最後由人決策。這樣能增加覆蓋面，也能保住代碼控制權。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
