字數總計:0 個 | 閱讀時長:0 分鐘 |閱讀次數:

課程資訊

學習目標

理解 Hooks 機制並實作自訂 hook,識別常見陷阱與注意事項,透過 Claude Code SDK 將 AI 能力整合進自有工具鏈與自動化流程

本章涵蓋主題與分享範圍

Lesson主題本次分享
312000Introducing hooks
312002Defining hooks
312003Implementing a hook
312004Useful hooks
312423Gotchas around hooks
312427Another useful hook
312001The Claude Code SDK

各 Lesson 速覽

1. Introducing hooks

Hooks 是 Claude Code 的攔截機制,可在工具呼叫前(PreToolUse)或後(PostToolUse)執行自訂命令,實現程式碼格式化、測試、存取控制等自動化流程。

前往閱讀

2. Defining hooks

定義 Hook 的四個步驟:選擇 PreToolUse 或 PostToolUse、指定監聽的工具、撰寫接收 JSON stdin 的命令、透過 exit code 控制行為(0 放行、2 阻擋)。

前往閱讀

3. Implementing a hook

實作一個 PreToolUse hook,阻止 Claude 讀取 .env 檔案。從建立 Node.js 腳本、解析 stdin JSON、檢查檔案路徑到以 exit code 2 阻擋敏感操作的完整流程。

前往閱讀

4. Useful hooks

兩個實用的生產級 Hook:TypeScript 型別檢查 hook(編輯後自動執行 tsc 捕捉簽名不匹配),以及查詢重複偵測 hook(使用 Agent SDK 啟動獨立 Claude 實例檢查資料庫查詢是否重複)。

前往閱讀

5. Gotchas around hooks

Hook 腳本應使用絕對路徑以防止路徑攔截攻擊,但這會讓設定難以在團隊間共享。解法是在 settings.example.json 中使用 $PWD 佔位符,搭配 init-claude.js 腳本在設定時自動替換為實際專案路徑。

前往閱讀

6. Another useful hook

除了 PreToolUse 和 PostToolUse,Claude Code 還支援 Notification、Stop、SubagentStop、PreCompact、UserPromptSubmit 等 Hook 類型。建議先用 jq debug hook 檢查各 hook 的 stdin 結構,再實作正式邏輯。

前往閱讀

7. The Claude Code SDK

Agent SDK 讓你從 TypeScript 或 Python 程式化驅動 Claude Code,提供與 CLI 相同的完整能力(檔案讀寫、工具呼叫),支援自訂 prompt、MCP servers、hooks、subagents 與工具白名單。

前往閱讀

建議閱讀順序

  1. 先讀 Introducing hooks — 建立 Hook 機制的整體概念
  2. 接著 Defining hooks → Implementing a hook — 從定義到實作的完整流程
  3. 再讀 Useful hooks + Another useful hook — 了解進階應用場景與更多 Hook 類型
  4. 注意 Gotchas around hooks — 掌握安全性與團隊協作的注意事項
  5. 最後讀 The Claude Code SDK — 將 Claude Code 能力整合進自有工具鏈