[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-build-codebase-aware-ai-pr-reviewer-zh":3,"tags-build-codebase-aware-ai-pr-reviewer-zh":34,"related-lang-build-codebase-aware-ai-pr-reviewer-zh":45,"related-posts-build-codebase-aware-ai-pr-reviewer-zh":49,"series-ai-agent-15ed5c11-4f9e-495d-9109-4cf1ba19e013":86},{"id":4,"title":5,"content":6,"summary":7,"source":8,"source_url":9,"author":10,"image_url":11,"keywords":12,"language":18,"translated_content":10,"views":19,"is_premium":20,"created_at":21,"updated_at":21,"cover_image":11,"published_at":22,"rewrite_status":23,"rewrite_error":10,"rewritten_from_id":24,"slug":25,"category":26,"related_article_id":27,"status":28,"google_indexed_at":29,"x_posted_at":10,"tweet_text":10,"title_rewritten_at":10,"title_original":10,"key_takeaways":30,"topic_cluster_id":10,"embedding":10,"is_canonical_seed":20},"15ed5c11-4f9e-495d-9109-4cf1ba19e013","怎麼做具備程式碼庫知識的 AI PR 審查器","\u003Cp data-speakable=\"summary\">這篇教你把團隊規則寫進倉庫，做出能讀懂程式碼庫脈絡的 AI PR 審查器。\u003C\u002Fp>\u003Cp>這篇給技術主管、資深工程師和平台團隊看。你會一路做出一套可重複的 AI PR 審查流程，讓它先讀懂專案規則，再檢查變更差異，最後抓出你們團隊最常漏掉的審查問題。\u003C\u002Fp>\u003Cp>照做完，你會得到一個具名、可執行、可回饋的審查系統，而不是只會泛泛建議的聊天機器人。這套做法可搭配 \u003Ca href=\"\u002Fnews\u002Fhow-to-run-openclaw-with-open-source-models-zh\">Cla\u003C\u002Fa>ude Code、\u003Ca href=\"\u002Ftag\u002Fcursor\">Cursor\u003C\u002Fa>、Cline 或 \u003Ca href=\"\u002Ftag\u002Fgithub-copilot\">GitHub Copilot\u003C\u002Fa> 使用，重點是把團隊記憶放回倉庫裡。\u003C\u002Fp>\u003Ch2>開始之前\u003C\u002Fh2>\u003Cul>\u003Cli>一個可存取目標儲存庫的 GitHub 帳號。\u003C\u002Fli>\u003Cli>一個 AI 編碼工具帳號，例如 Claude Code、Cursor、Cline 或 GitHub Copilot。\u003C\u002Fli>\u003Cli>Node 20+，如果你要在本機腳本化審查命令。\u003C\u002Fli>\u003Cli>Git 2.40+，並且已完成基本設定。\u003C\u002Fli>\u003Cli>一個已有慣例文件、ADR 或架構筆記的專案。\u003C\u002Fli>\u003Cli>可在倉庫根目錄新增 AGENTS.md 或 CLAUDE.md 的權限。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>Step 1: 蒐集審查漏網規則\u003C\u002Fh2>\u003Cp>目的是先把人類常常晚才抓到的錯誤整理出來，因為這些就是 AI 審查器最先要學的規則。請找出重複出現的問題，例如舊 middleware 路徑、重複元件、層級違規，或該用 \u003Ca href=\"\u002Fnews\u002Fwhy-openais-for-profit-shift-is-right-zh\">en\u003C\u002Fa>um 卻寫成字串常值的地方。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1777979445923-hme4.png\" alt=\"怎麼做具備程式碼庫知識的 AI PR 審查器\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>把每個問題寫成一句可檢查的短規則，再依領域分組，例如 auth、UI、back\u003Ca href=\"\u002Fnews\u002Fopenai-compute-infrastructure-beyond-10gw-zh\">en\u003C\u002Fa>d layering、命名或 migration 行為。這份清單就是後續指令與文件的來源。\u003C\u002Fp>\u003Cp>驗收標準：你應該看到一份 5 到 10 條的審查規則清單，而且每條都來自你自己的程式碼庫，而不是通用風格建議。\u003C\u002Fp>\u003Ch2>Step 2: 建立倉庫級記憶文件\u003C\u002Fh2>\u003Cp>目的是把團隊知識放進 AI 在審查前就能讀到的檔案。若你使用 Claude，先看 \u003Ca href=\"https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code\" target=\"_blank\" rel=\"noreferrer\">Claude Code 文件\u003C\u002Fa> 與 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\" target=\"_blank\" rel=\"noreferrer\">Claude Code GitHub repo\u003C\u002Fa>，然後在倉庫根目錄建立 AGENTS.md 或 CLAUDE.md，用精簡條列寫下規則。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1777979444889-9fcn.png\" alt=\"怎麼做具備程式碼庫知識的 AI PR 審查器\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cpre>\u003Ccode># AGENTS.md\n\n- 新 API endpoint 必須使用 v2 auth middleware。\n- 不要從 \u002Fhooks 複製共享 hooks。\n- Controllers 不可直接 import repo functions。\n- 建立新 UI 元件前先檢查 \u002Fdesign-system。\n- 狀態判斷要用 enums，不要用字串常值。\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>語句要具體，而且要能被驗證。只要某條規則無法產生明確的 yes-or-no 審查意見，就改寫到可以檢查為止。\u003C\u002Fp>\u003Cp>驗收標準：你應該能打開這個檔案，逐條指出每一條都是 AI 在審查時可以直接檢查的規則。\u003C\u002Fp>\u003Ch2>Step 3: 補上服務層指令文件\u003C\u002Fh2>\u003Cp>目的是讓審查器理解各服務的例外與局部慣例，而不是靠整個倉庫去猜。請在它所管理的程式旁邊新增服務層文件，例如 backend 服務資料夾內的說明，或 UI 套件中的元件備註。\u003C\u002Fp>\u003Cp>例如，在某個服務目錄加入短文件，說清楚哪條 auth 路徑是標準、哪一層負責 orchestration，以及哪些共享元件目錄要先檢查。migration 規則與架構邊界也應該放在這裡。\u003C\u002Fp>\u003Cp>驗收標準：你應該能打開一個服務資料夾，並看到一份只描述該區域規則的本地指令文件。\u003C\u002Fp>\u003Ch2>Step 4: 寫出可重複的審查命令\u003C\u002Fh2>\u003Cp>目的是讓 AI 只做一次可重複、唯讀的程式碼庫感知審查。這個命令要讀入倉庫規則、檢查 diff，並且只在違反規則或與既有模式衝突時輸出發現。\u003C\u002Fp>\u003Cp>如果你要寫本機腳本，保持簡單即可：傳入 diff、包含相關記憶文件，並要求輸出 file、line、issue 和 rationale。審查階段不要讓模型改寫程式碼。\u003C\u002Fp>\u003Cpre>\u003Ccode>node scripts\u002Freview-pr.js --base origin\u002Fmain --head HEAD\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>驗收標準：你應該拿到一份具體審查結果，能指出檔案與行號，而不是只有稱讚或空泛建議。\u003C\u002Fp>\u003Ch2>Step 5: 用真實 PR 跑一次審查器\u003C\u002Fh2>\u003Cp>目的是拿一個真實 PR 來測試，最好是會碰到敏感區域的變更，例如 auth、共享 UI 或 backend layering。請選一個近期變更，而且人類審查者已經很熟的案例，這樣你才能對照 AI 輸出與真實團隊規則。\u003C\u002Fp>\u003Cp>檢查審查器是否能抓到資深工程師憑記憶會看到的問題。如果漏掉重要項目，就把缺少的規則加回 AGENTS.md 或對應的服務文件，然後再跑一次。\u003C\u002Fp>\u003Cp>驗收標準：你應該看到至少一則有意義、而且帶有團隊脈絡的評論，這種評論一般的審查器很可能抓不到。\u003C\u002Fp>\u003Ch2>Step 6: 用人類回饋收斂規則\u003C\u002Fh2>\u003Cp>目的是讓審查器每次被人類修正後都變得更好。每次真實 PR 審查後，請記錄誤報、漏報，以及哪些規則太模糊，無法提供幫助。\u003C\u002Fp>\u003Cp>接著更新記憶文件，讓下一次審查更準。真正的價值在於累積效應：每次人類修正都會變成審查器的永久上下文。\u003C\u002Fp>\u003Cp>驗收標準：你應該看到重複評論變少，而且同一類錯誤在第一輪就更常被抓到。\u003C\u002Fp>\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>指標\u003C\u002Fth>\u003Cth>基準／優化前\u003C\u002Fth>\u003Cth>結果／優化後\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>審查瓶頸\u003C\u002Ftd>\u003Ctd>只有資深審查者記得團隊規則\u003C\u002Ftd>\u003Ctd>規則已移入倉庫文件，AI 可直接讀取\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>通用審查品質\u003C\u002Ftd>\u003Ctd>常漏掉程式碼庫專屬規則\u003C\u002Ftd>\u003Ctd>能抓到 auth、層級與共享元件違規\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>審查一致性\u003C\u002Ftd>\u003Ctd>取決於當下誰有空\u003C\u002Ftd>\u003Ctd>用固定命令與穩定指令重複執行\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003Ch2>常見錯誤\u003C\u002Fh2>\u003Cul>\u003Cli>規則寫得太大而無法檢查。修法：改寫成可驗證句子，例如「controllers 不可直接 import repo functions」。\u003C\u002Fli>\u003Cli>重要指引只放在聊天紀錄。修法：移到 AGENTS.md、CLAUDE.md，或放進服務層指令文件，並保留在倉庫內。\u003C\u002Fli>\u003Cli>讓審查器在審查時改寫程式。修法：把命令維持唯讀，只輸出發現，不進入實作流程。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>接下來可以看什麼\u003C\u002Fh2>\u003Cp>當這個審查器已經能在單一儲存庫穩定運作後，可以把同一套模式擴展到其他服務，再加入 PR 模板、ADR 與自動化檢查，把原本靠口耳相傳的規則變成可持續執行的流程。\u003C\u002Fp>","這篇教你把團隊規則寫進倉庫，做出能讀懂程式碼庫脈絡的 AI PR 審查器。","www.freecodecamp.org","https:\u002F\u002Fwww.freecodecamp.org\u002Fnews\u002Fhow-to-unblock-ai-pr-review-bottleneck-handbook",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1777979445923-hme4.png",[13,14,15,16,17],"AI PR reviewer","Claude Code","AGENTS.md","GitHub","review automation","zh",2,false,"2026-05-05T11:10:29.265875+00:00","2026-05-05T11:10:29.108+00:00","done","7e012257-975c-4fc5-b250-1dc165364e19","build-codebase-aware-ai-pr-reviewer-zh","ai-agent","69c66a80-5dc5-46fb-9218-68f0307e399e","published","2026-05-06T09:00:22.296+00:00",[31,32,33],"把團隊審查規則寫進倉庫文件，讓 AI 在審查前先讀到。","用服務層指令文件補足局部例外，避免只靠全域規則。","把審查流程做成唯讀命令，再用真實 PR 和人類回饋持續收斂。",[35,37,39,41,43],{"name":17,"slug":36},"review-automation",{"name":15,"slug":38},"agentsmd",{"name":16,"slug":40},"github",{"name":14,"slug":42},"claude-code",{"name":13,"slug":44},"ai-pr-reviewer",{"id":27,"slug":46,"title":47,"language":48},"build-codebase-aware-ai-pr-reviewer-en","How to Build a Codebase-Aware AI PR Reviewer","en",[50,56,62,68,74,80],{"id":51,"slug":52,"title":53,"cover_image":54,"image_url":54,"created_at":55,"category":26},"38406a12-f833-4c69-ae22-99c31f03dd52","switch-ai-outputs-markdown-to-html-zh","怎麼把 AI 輸出改成 HTML","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778743243861-8901.png","2026-05-14T07:20:21.545364+00:00",{"id":57,"slug":58,"title":59,"cover_image":60,"image_url":60,"created_at":61,"category":26},"c7c69fe4-97e3-4edf-a9d6-a79d0c4495b4","anthropic-cat-wu-proactive-ai-assistants-zh","Cat Wu 談 Claude 的主動式 AI","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778735455993-gnw7.png","2026-05-14T05:10:30.453046+00:00",{"id":63,"slug":64,"title":65,"cover_image":66,"image_url":66,"created_at":67,"category":26},"e1d6acda-fa49-4514-aa75-709504be9f93","how-to-run-hermes-agent-on-discord-zh","如何在 Discord 執行 Hermes Agent","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778724655796-cjul.png","2026-05-14T02:10:34.362605+00:00",{"id":69,"slug":70,"title":71,"cover_image":72,"image_url":72,"created_at":73,"category":26},"4104fa5f-d95f-45c5-9032-99416cf0365c","why-ragflow-is-the-right-open-source-rag-engine-to-self-host-zh","為什麼 RAGFlow 是最適合自架的開源 RAG 引擎","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778674262278-1630.png","2026-05-13T12:10:23.762632+00:00",{"id":75,"slug":76,"title":77,"cover_image":78,"image_url":78,"created_at":79,"category":26},"7095f05c-34f5-469f-a044-2525d2010ce9","how-to-add-temporal-rag-in-production-zh","如何在正式環境加入 Temporal RAG","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778667053844-osvs.png","2026-05-13T10:10:30.930982+00:00",{"id":81,"slug":82,"title":83,"cover_image":84,"image_url":84,"created_at":85,"category":26},"10479c95-53c6-4723-9aaa-2fde5fb19ee7","github-agentic-workflows-ai-github-actions-zh","GitHub 把 AI 代理放進 Actions","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778551884342-8io7.png","2026-05-12T02:11:02.069769+00:00",[87,92,97,102,107,112,117,122,127,132],{"id":88,"slug":89,"title":90,"created_at":91},"4ae1e197-1d3d-4233-8733-eafe9cb6438b","claude-now-uses-your-pc-to-finish-tasks-zh","Claude 開始幫你操作電腦","2026-03-26T07:20:48.457387+00:00",{"id":93,"slug":94,"title":95,"created_at":96},"5bede67f-e21c-413d-9ab8-54a3c3d26227","googles-2026-ai-agent-report-decoded-zh","Google 2026 AI Agent 報告解讀","2026-03-26T11:15:22.651956+00:00",{"id":98,"slug":99,"title":100,"created_at":101},"2987d097-563f-46c7-b76f-b558d8ef7c2b","kimi-k25-review-stronger-still-not-legend-zh","Kimi K2.5 評測：更強，但還不是神作","2026-03-27T07:15:55.277513+00:00",{"id":103,"slug":104,"title":105,"created_at":106},"95c9053b-e3f4-4cb5-aace-5c54f4c9e044","claude-code-controls-mac-desktop-zh","Claude Code 也能操控 Mac 了","2026-03-28T03:01:58.58121+00:00",{"id":108,"slug":109,"title":110,"created_at":111},"dc58e153-e3a8-4c06-9b96-1aa64eabbf5f","cloudflare-100x-faster-ai-agent-sandbox-zh","Cloudflare 的 AI 沙箱跑超快","2026-03-28T03:09:44.142236+00:00",{"id":113,"slug":114,"title":115,"created_at":116},"1c8afc56-253f-47a2-979f-1065ff072f2a","openai-backs-isara-agent-swarm-bet-zh","OpenAI 挺 Isara 的 agent swarm …","2026-03-28T03:15:27.513155+00:00",{"id":118,"slug":119,"title":120,"created_at":121},"7379b422-576e-45df-ad5a-d57a0d9dd467","openai-plan-automated-ai-researcher-zh","OpenAI 想做自動化 AI 研究員","2026-03-28T03:17:42.090548+00:00",{"id":123,"slug":124,"title":125,"created_at":126},"48c9889e-86df-450b-a356-e4a4b7c83c5b","harness-engineering-ai-agent-reliability-2026-zh","駕馭工程：從「馬具」到「作業系統」，AI Agent 可靠性的終極密碼","2026-03-31T06:42:53.556721+00:00",{"id":128,"slug":129,"title":130,"created_at":131},"e41546b8-ba9e-455f-9159-88d4614ad711","openai-codex-plugin-claude-code-zh","OpenAI 把 Codex 放進 Claude Code","2026-04-01T09:21:54.687617+00:00",{"id":133,"slug":134,"title":135,"created_at":136},"96d8e8c8-1edd-475d-9145-b1e7a1b02b65","mcp-explained-from-prompts-to-production-zh","MCP 怎麼把提示詞變工作流","2026-04-01T09:24:39.321274+00:00"]