AI 程式碼閱讀 · 審查 AI 寫的程式碼

審查 AI
為你寫的程式碼

AI 剛做完一項任務,diff 長到你沒法逐行細看。用 Yenpo 開啟專案,從本機改動或分支 diff 看起,藉助搜尋、跳至和 AI Reader,一次看清一處改動。

安裝並開啟第一個專案

Mac 本機檔案閱讀 · 可選 AI · 本機改動與 Git 對比v0.1.303 EAP · Apple silicon & Intel · macOS 14+到期日期 (UTC)AI 需要先設定模型服務商,使用費用按服務商規則計算。

01 / AI 改完了,接著讀懂它

把 AI 交來的改動,變成自己能解釋的程式碼

用 Claude Code、Codex 或 Cursor 做完一輪後,挑一小處改動真正弄懂。問題要具體:這個篩選器現在應該留下哪些項目?某個項目被哪條規則排除了?改掉這條規則,會影響哪些結果?先寫下自己的預測,再請 AI 解釋。

把輸入和規則放在一起讀

把資料、篩選函式和呼叫方分別開啟。用檔案搜尋、全文搜尋找到功能裡的名稱,讀清呼叫方實際傳入了哪些值。

回到原始碼檢查解釋

設定模型服務商後,可以圍繞看不懂的規則或分支提問。沿原始碼引用讀周邊條件,再用自己的話說明結果為什麼出現。

手改一條規則,再執行核對

選一處小改動,先預測哪些情況會變、哪些應當保持不變,再由你在終端執行對應命令或測試,把解釋記在自己的筆記裡。

用一個可執行的小篩選器,走完預測、修改、驗證的學習過程

練習提供虛構資料、三個待預測結果、一行修改和修改後的檢查命令,不需要模型帳號。Yenpo 用來閱讀本機程式碼,示例和檢查由你自己執行。

02 / 從一個問題開始

圍繞改動影響的行為,一步步看程式碼

讀清 AI 做出的一個功能

挑一個 AI 加進來、你還說不清的小功能。先猜它會輸出什麼,再讀決定結果的規則,最後親手改一處、執行確認。

用可執行的篩選練習學會一條規則

把分支和呼叫方連起來

問清哪個輸入選擇了實作、呼叫後繼續做什麼,以及錯誤會在哪裡結束執行。除了被解釋的函式,還要讀呼叫方。

沿 HTTP 請求讀程式碼

核對 AI 寫的改動

圍繞具體疑點比較選定的提交或分支。接受解釋前,核對引用中的分支、沒改過的呼叫方和測試斷言。

審查改過的斷言

Yenpo 適合一邊討論改動、一邊繼續讀儲存庫。它不是程式設計 agent,不會建置專案、執行測試或合併修補程式;這些步驟留在 Claude Code、Codex、Cursor 或終端裡做。

03 / 找到這次要讀的檔案

先串起一條路徑,再展開讀整個儲存庫

這個教學專案有兩個命令:preview 輸出「Moon Kite · paper」,list 列出展品名稱。它們讀取同一份資料,但執行路徑不同。下面用手寫閱讀筆記畫出路徑,你可以下載原始碼對照。

  1. 確認入口。先讀 README.md 和 package.json。preview 指令碼選中 src/preview.mjs,輸入是 moon-kite;list 指令碼則從 src/list.mjs 開始。把命令和原始碼版本一起記下。
  2. 用輸出找線索。搜尋 Moon Kite 會找到存資料的 catalog.mjs。沿 findExhibit 的呼叫找到 build-label.mjs,再沿 buildLabel 找到 preview.mjs。對照啟動指令碼,才能確認入口;文字命中的檔案可能只是資料所在處。
  3. 記下每個檔案負責什麼。preview.mjs 接收編號並列印結果;build-label.mjs 串起查詢與排版;catalog.mjs 查記錄;format-label.mjs 把記錄變成文字。這次的問題先讀清這四處就夠了。

下載教學專案、完整地圖和空白筆記模板。解壓後進入 exhibit-labels,在 Terminal 中用 Node.js 22 或更新版本執行,無需安裝依賴或連線模型。

node src/preview.mjs moon-kite
node src/list.mjs
node --test tests/lab.test.mjs

預覽輸出「Moon Kite · paper」;清單分兩行輸出「Moon Kite」和「Cloud Loom」。5 項測試全部透過,包括選擇另一個展品,以及未知編號在輸出前失敗。壓縮包附有原始碼位置和檔案雜湊清單。

換成自己的儲存庫時,把還沒查清的問題放在地圖旁:啟動參數從哪來,選中了哪個實作,資料來自檔案還是服務?從其中一個問題選擇下一份原始碼。只看目錄樹,還看不出這次執行走哪條路徑。

04 / 在 YENPO 中沿路徑閱讀

邊問邊讀,隨時開啟相關檔案

  1. 先找到起點。把解壓後的 exhibit-labels 資料夾作為本機專案開啟。用 Command-P 找 preview.mjs,或用全文搜尋找 Moon Kite。沿 import 往下讀時,讓入口和資料檔案保持開啟;檔案、資料夾或選區都可以作為 AI Reader 的起點。
  2. 圍繞一個行為提問。例如:「preview 命令輸入 moon-kite 時,哪些檔案選記錄、排版文字、列印結果?請列出原始碼位置,並區分 list 命令。」讓回答圍繞這條路徑展開。
  3. 開啟原始碼引用。引用會在程式碼快速預覽中開啟對應行。用「開啟檔案」在標籤頁裡檢視周邊原始碼,再判斷這些程式碼是否真的支援回答中的說法。
  4. 繼續追到結果。在自己的筆記裡記下讀過的檔案、各自負責什麼,以及下一個問題。需要確認執行結果時,在 Terminal 中執行針對性的命令或測試;AI Reader 不會代你執行。
05 / 模型、資料與權限

分清本機閱讀和模型請求

本機閱讀與模型輔助閱讀

瀏覽與搜尋本機檔案不需要模型帳號。使用 AI Reader 提問前,在設定中設定服務商、API 型別、端點和模型。支援 OpenAI-compatible Chat Completions、OpenAI Responses 和 Anthropic Messages;模型存取權限和使用費用由你的服務商帳號決定。

問題、相關對話、附件和調查時讀取的程式碼會傳送到你設定的端點。AI Reader 可能繼續讀取附件以外的相關檔案;遠端服務商會在你的 Mac 之外處理這些內容。

設定模型服務商
06 / 繼續查證

按還沒弄清的問題,選擇下一步

在練習裡,選錯展品就讀輸入和查詢;記錄對了但標籤文字不對,就讀排版函式。面對更大的專案,也按這個辦法,從具體疑問進入一條閱讀路徑。

先前的單檔案分支練習仍可下載,適合先練習一個更小的起點。

安裝 Yenpo,開啟第一個專案

試用 Yenpo EAP

等 AI 下次改完程式碼,
用它看看。

改動、diff 和搜尋開啟就能用。想問 AI Reader 時,再連線模型服務商。

下載 EAP

App 介面支援英文、簡體中文、繁體中文、日文、西班牙文、巴西葡萄牙文、韓文、德文、法文和俄文。

v0.1.303 EAP · Apple silicon & Intel · macOS 14+到期日期 (UTC)