[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-build-codebase-aware-ai-pr-reviewer-zh":3,"article-related-build-codebase-aware-ai-pr-reviewer-zh":29,"series-ai-agent-15ed5c11-4f9e-495d-9109-4cf1ba19e013":82},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":22,"views":26,"created_at":27,"published_at":28,"topic_cluster_id":11},"15ed5c11-4f9e-495d-9109-4cf1ba19e013","build-codebase-aware-ai-pr-reviewer-zh","怎麼做具備程式碼庫知識的 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","ai-agent","zh","69c66a80-5dc5-46fb-9218-68f0307e399e",[17,18,19,20,21],"AI PR reviewer","Claude Code","AGENTS.md","GitHub","review automation",[23,24,25],"把團隊審查規則寫進倉庫文件，讓 AI 在審查前先讀到。","用服務層指令文件補足局部例外，避免只靠全域規則。","把審查流程做成唯讀命令，再用真實 PR 和人類回饋持續收斂。",6,"2026-05-05T11:10:29.265875+00:00","2026-05-05T11:10:29.108+00:00",{"tags":30,"relatedLang":41,"relatedPosts":45},[31,33,35,37,39],{"name":21,"slug":32},"review-automation",{"name":19,"slug":34},"agentsmd",{"name":20,"slug":36},"github",{"name":18,"slug":38},"claude-code",{"name":17,"slug":40},"ai-pr-reviewer",{"id":15,"slug":42,"title":43,"language":44},"build-codebase-aware-ai-pr-reviewer-en","How to Build a Codebase-Aware AI PR Reviewer","en",[46,52,58,64,70,76],{"id":47,"slug":48,"title":49,"cover_image":50,"image_url":50,"created_at":51,"category":13},"83c2f8f6-3710-466e-b52c-473b811f0535","how-to-set-up-openclaw-safely-zh","如何安全架設 OpenClaw","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780549368665-1t2l.png","2026-06-04T05:02:21.26625+00:00",{"id":53,"slug":54,"title":55,"cover_image":56,"image_url":56,"created_at":57,"category":13},"0ba5b1a8-82c5-464a-bea5-9a2c8730da74","aws-devops-agent-turns-incident-chaos-into-triage-zh","AWS DevOps Agent 把事故排查變成三步","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780466689960-g1sv.png","2026-06-03T06:03:14.154923+00:00",{"id":59,"slug":60,"title":61,"cover_image":62,"image_url":62,"created_at":63,"category":13},"841eac88-b0f0-4a4c-9e1e-efc3b5c16281","kimi-k26-live-300-agent-workflows-zh","Kimi K2.6 上線：300 代理工作流","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780430574285-hqpn.png","2026-06-02T20:02:24.972179+00:00",{"id":65,"slug":66,"title":67,"cover_image":68,"image_url":68,"created_at":69,"category":13},"f0411957-bcdb-42d9-a267-3e90ae7d9cb1","how-to-take-a-sabbatical-at-openai-zh","怎麼申請 OpenAI sabbatical","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780398216422-8fi7.png","2026-06-02T11:02:25.74372+00:00",{"id":71,"slug":72,"title":73,"cover_image":74,"image_url":74,"created_at":75,"category":13},"37a5e429-4235-439c-9b05-bb377085462c","8-steps-build-production-rag-with-langchain-zh","8 步驟打造可上線的 LangChain RAG","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780178597493-4hz7.png","2026-05-30T22:02:48.14022+00:00",{"id":77,"slug":78,"title":79,"cover_image":80,"image_url":80,"created_at":81,"category":13},"e73c041b-852b-44c3-85aa-0f1e2e5848e3","ai-agents-hit-chaos-mode-claude-code-openclaw-zh","Claude Code＋OpenClaw 讓 AI 代理失控升溫","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780160576178-yqcs.png","2026-05-30T17:02:25.725767+00:00",[83,88,93,98,103,108,113,118,123,128],{"id":84,"slug":85,"title":86,"created_at":87},"4ae1e197-1d3d-4233-8733-eafe9cb6438b","claude-now-uses-your-pc-to-finish-tasks-zh","Claude 開始幫你操作電腦","2026-03-26T07:20:48.457387+00:00",{"id":89,"slug":90,"title":91,"created_at":92},"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":94,"slug":95,"title":96,"created_at":97},"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":99,"slug":100,"title":101,"created_at":102},"95c9053b-e3f4-4cb5-aace-5c54f4c9e044","claude-code-controls-mac-desktop-zh","Claude Code 也能操控 Mac 了","2026-03-28T03:01:58.58121+00:00",{"id":104,"slug":105,"title":106,"created_at":107},"dc58e153-e3a8-4c06-9b96-1aa64eabbf5f","cloudflare-100x-faster-ai-agent-sandbox-zh","Cloudflare 的 AI 沙箱跑超快","2026-03-28T03:09:44.142236+00:00",{"id":109,"slug":110,"title":111,"created_at":112},"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":114,"slug":115,"title":116,"created_at":117},"7379b422-576e-45df-ad5a-d57a0d9dd467","openai-plan-automated-ai-researcher-zh","OpenAI 想做自動化 AI 研究員","2026-03-28T03:17:42.090548+00:00",{"id":119,"slug":120,"title":121,"created_at":122},"48c9889e-86df-450b-a356-e4a4b7c83c5b","harness-engineering-ai-agent-reliability-2026-zh","駕馭工程：從「馬具」到「作業系統」，AI Agent 可靠性的終極密碼","2026-03-31T06:42:53.556721+00:00",{"id":124,"slug":125,"title":126,"created_at":127},"96d8e8c8-1edd-475d-9145-b1e7a1b02b65","mcp-explained-from-prompts-to-production-zh","MCP 怎麼把提示詞變工作流","2026-04-01T09:24:39.321274+00:00",{"id":129,"slug":130,"title":131,"created_at":132},"f2ca7720-b471-4ce5-9336-2a9ac2a876fd","amazon-bedrock-agents-multi-agent-workflows-zh","Amazon Bedrock Agents 進入多代理工作流","2026-04-01T09:30:29.945429+00:00"]