開發者在整合開發環境(Integrated Development Environment, IDE)中,會反覆閱讀檔案、追查函式、修改程式與檢查錯誤。
Codex IDE 擴充功能可以直接讓 Codex 操作留在編輯器中,利用目前開啟的檔案與選取內容協助理解及修改程式。
接下來會以 Visual Studio Code(VS Code)做為示範的整合開發環境。
這次會開啟本機的 codex-hands-on 專案,找到 rankIssues 函式,先請 Codex解釋程式邏輯並指出可讀性問題,再整理 priorityScore 的重複計算。
修改完成後,開發者會直接在 VS Code 中閱讀變更差異(Diff),確認程式行為與修改範圍是否符合要求。
IDE 入口適合處理範圍集中的工作。選取程式碼可以直接指定討論對象,開啟的檔案也能提供相鄰程式作為背景。Codex 仍可能依任務需要讀取其他專案檔案,因此每次要求都要寫清楚允許修改的檔案與範圍。
先開啟 VS Code 左側的擴充功能頁面,在搜尋欄輸入 Codex,找到 OpenAI 發布的 Codex 擴充功能後選擇安裝。也可以從 Codex IDE 官方頁面 進入 Visual Studio Marketplace 的安裝連結,避免安裝到名稱相近的第三方擴充功能。
安裝完成後,VS Code 的活動列會出現 Codex 圖示。若沒有看到圖示,可以開啟命令選擇區(Command Palette),搜尋並執行 Codex: Open Codex Sidebar。
開啟 Codex 側邊欄後,依照畫面指示使用 ChatGPT 帳號登入。瀏覽器完成驗證後,再回到 VS Code。登入成功後,側邊欄會顯示輸入任務的位置。

在 VS Code 選擇「File > Open Folder」,開啟本機的 codex-hands-on 資料夾。這裡要開啟整個專案資料夾,讓 Codex 能從儲存庫中取得函式使用位置、相關型別與測試線索。若只開啟單一檔案,可取得的專案資訊會較少。
接著開啟 VS Code 的原始檔控制(Source Control)面板,確認目前沒有尚未處理的修改。也可以從整合式終端機執行:
git branch --show-current
git status --short
第一個指令用來確認目前分支,第二個指令會列出尚未提交的變更。若 git status --short 沒有輸出,代表目前沒有未提交的修改。
若原始檔控制面板已列出其他變更,先完成或保存原有工作,讓這次 Codex 產生的差異可以單獨檢查。目前只會處理 rankIssues 相關的局部整理,不會把既有修改一起交給 Codex。
使用 VS Code 的全域搜尋功能尋找 rankIssues,開啟定義這個函式的檔案。閱讀函式前後的內容,先確認目前找到的是函式定義,沒有停在呼叫位置、測試名稱或文件文字。若出現多個同名結果,可以使用「Go to Definition」定位實際實作。
找到函式後,從函式宣告開始選取到結尾,讓完整函式成為這次對話的編輯器背景。選取範圍應包含參數、回傳內容與函式內的所有判斷。若只選取幾行重複運算,Codex 取得的流程資訊會不足,也較難判斷整理後是否維持原有行為與順序。
Codex 可以把目前開啟的檔案與選取程式碼加入提示內容。送出任務前,先查看側邊欄顯示的背景,確認目前檔案與選取範圍已經帶入。
第一輪先停在理解階段。保持 rankIssues 函式為選取狀態,在 Codex 側邊欄輸入:
請根據我選取的 rankIssues 函式說明目前邏輯。
請依執行順序解釋輸入資料如何轉成排序結果,並指出 priorityScore 的重複計算對可讀性造成什麼影響。
請引用選取內容中的具體程式碼作為依據。
這一輪不要修改檔案,也不要執行命令。
收到回覆後,回到編輯器逐段核對。Codex 對輸入、條件判斷、分數計算與排序順序的說明,都要能在函式中找到對應程式。
若它提到選取範圍之外的規則,可以要求補上檔案路徑與符號名稱,再確認這些資訊是否與目前函式有關。
這一輪也要確認問題描述是否成立。若 priorityScore 在同一段處理流程中使用相同輸入重複計算,可以整理成一次計算後重複使用,減少重複閱讀與理解。若多次計算使用的輸入或執行時點不同,就要保留原有差異,不能只因程式形式相近就直接合併。

確認 Codex 的解釋符合程式內容後,在同一段對話送出修改要求:
請整理 rankIssues 函式中 priorityScore 的重複計算。
這次只處理這一項可讀性改善,保留原有輸入、排序規則與回傳結果。
不要修改其他函式、測試或文件,也不要新增相依套件或建立 Git 提交。
完成後請說明修改的程式碼範圍,以及行為維持不變的依據。
這裡限制的是一項改善。完成這項整理所需的局部程式碼可以調整,例如建立局部變數、移除重複運算與更新對應的使用位置,修改範圍仍應留在 rankIssues 函式內。
若 Codex 判斷必須調整函式外的介面才能完成,應先說明原因,再由開發者決定是否擴大範圍。
Codex 執行期間可能要求批准檔案修改或命令。批准前要先確認實際操作內容。目前尚不需要安裝套件、變更設定或建立 Git 提交,這些操作可以直接拒絕。
修改完成後,側邊欄會提供工作摘要,編輯器也會標示已變更的檔案。接下來仍要回到差異內容,確認修改只集中在 rankIssues,且沒有改變原有排序行為。

開啟原始檔控制面板,選擇這次修改的檔案,VS Code 會並排顯示修改前後的內容。先確認檔案清單只有預期的實作檔,再逐行閱讀 rankIssues 的變更。
檢查重點包括 priorityScore 是否只計算一次、所有使用位置是否改用同一個結果,以及排序條件與回傳資料是否維持原有行為。
Codex IDE 也會顯示修改摘要與可審查的差異。若某一行不清楚,可以在同一段對話要求 Codex 說明。若修改範圍過大,也可以要求它撤回其他函式、整份檔案格式化或無關的命名調整,只保留已確認的局部整理。
若整份修改都不符合預期,可以從 VS Code 原始檔控制面板捨棄該檔案的變更。這項操作會清除該檔案尚未提交的修改,因此執行前要先確認工作目錄原本沒有其他需要保留的內容,並再次核對目標檔案。

這次任務完成時,開發者應能說明 rankIssues 的處理順序、priorityScore 為何需要整理、Codex 實際修改了哪些程式碼,以及 VS Code 顯示的差異是否只涵蓋這項改善。
若其中一項仍不清楚,可以留在同一段對話要求補充說明,再決定是否保留修改。
IDE 讓提問、閱讀、修改與審查集中在同一個畫面,開啟檔案與選取內容也能直接提供任務背景。開發者仍需要控制選取範圍、寫清楚限制,並閱讀完整差異,確認 Codex 沒有超出預期範圍。