Developer Advocate 深度解析

馴服 AI 實習生:
Claude Code Hooks 實戰指南

別把專案丟給 AI 就以為沒事了!專案越大,AI 越容易迷路。讓我們透過「自動化 Hooks 機制」,為這位打字極快但有點粗心的實習生戴上護欄。

1 事後檢驗 (Post-tool-use):專治「改 A 忘 B」

情境:你請實習生修改一個核心功能,他改好了,卻忘記去更新其他呼叫這個功能的地方,導致系統崩潰。
解法:在他存檔後,自動觸發 tsc --noEmit 語法檢查,把報錯砸在他臉上逼他修好!

實習生辦公桌模擬器
schema.ts (實習生修改中)
export async function createSchema(
  db: Database
) {
  // 建立資料庫結構...
}
main.ts (被遺忘的檔案)
import { createSchema } from './schema';

async function main() {
  const db = await openDb();
  await createSchema(db);
}
> 系統終端機 (Hook 監控中)
等待實習生寫扣...

2 事前防禦 (Pre-tool-use):專治「重複造輪子」

情境:你給實習生一個大任務,他為了貪快,直接寫了一個全新的資料庫查詢,無視公司早就寫好的舊功能。
解法:在存檔前攔截!喚醒「第二個 AI(資深審查員)」去掃描資料夾,發現重複就直接退件 (Exit Code 2)!

雙 AI 審查防禦矩陣 (Agent SDK)
📂 公司專案 /queries
  • user_queries.ts
  • order_queries.ts
  • ↳ getPendingOrders() // 前輩寫好的
  • slack_alerts.ts (實習生新建)
實習生 Claude
正在喝咖啡,等待任務...
資深審查員 Claude (Pre-Hook)
睡覺中。只有當實習生試圖存檔時才會醒來。

架構師的 Trade-off 警告: 喚醒第二個 AI 來審查,就像請資深工程師幫實習生 Code Review,會消耗昂貴的 Token 與時間。絕對不要全域啟用!只把這個 Hook 綁定在最核心的目錄(如 ./queries)才是最佳實踐。