事件
生命週期的觸發點,例如 SessionStart、PreToolUse、PostToolUse、Stop。
Agent 工作流程/掛鉤
掛鉤 把反覆提醒 代理 的工作,改成固定時機、固定範圍、固定回應的系統規則。它不取代人,而是把容易忘記的邊界守住。
這份實作採安全預設:不自動刪除、提交、發布或傳送資料;每個阻擋與提醒都能被檢查、停用與修改。

基礎
一個好 掛鉤 不是「功能很多」,而是只在必要時做一件可預測的事,並且知道什麼時候不該繼續。
生命週期的觸發點,例如 SessionStart、PreToolUse、PostToolUse、Stop。
縮小範圍,例如只匹配 Bash,或只在 Edit/Write 後處理。
真正執行的本機命令;讀 JSON、輸出判斷或補充上下文。
明確放行、拒絕或交給人工,避免自動化變成無限循環。
平台差異
兩者都把 掛鉤 組成 事件 → 比對條件 → 處理程序,但可用事件與 處理程序 能力不同;設定前要以官方文件為準。
掛鉤 可設在個人、專案或外掛層級。Command、HTTP、MCP tool、Prompt 與 Agent handler 的能力較完整。
~/.claude/settings.json目前實際執行的是 Command 處理程序;設定可放在 ~/.codex/hooks.json 或 config。改過的命令 掛鉤 要由使用者在 /hooks 介面信任。
掛鉤 實戰大全
公開內容未列出付費資料中的原始 15 項清單。以下是依公開方法、兩個示範案例與官方支援能力整理的可安全落地版本。
新對話或恢復時,提醒 代理 先讀專案指示、辨認工作區與驗證方式。
先找既有規則、測試命令與未完成工作,避免一開始就改檔。
送出 提示詞 時提醒不要貼 API 金鑰、Cookie、密碼、私鑰或 .env 原文。
遇到產品決策、設計選擇或過去決定,提醒先走討論或大腦查詢流程。
在 Bash 執行前阻擋 git reset --hard、強制 推送、破壞性 清理 等高風險指令。
嘗試讀寫或列印 .env、私鑰、憑證檔時直接拒絕,避免被 代理 帶入輸出。
修改 Claude、Codex 或共用 掛鉤 設定前,提醒保留原設定、採結構化合併並在後面驗證語法。
編輯程式後要求跑最小的 語法檢查、單元測試或 建置,不把「已修改」當成「已完成」。
改 HTML、CSS 或前端檔後,提醒確認對比、文字溢位、圖片 alt 與桌機/手機排版。
教材、文章與公開頁改動後,提醒保留來源、區分原始事實與自己的整理。
每輪準備結束時,要求回報改了什麼、驗證了什麼、還有哪些測試沒跑。
部署、公開發文、寄信、發訊息與上架都要有當前任務中的明確同意。
壓縮上下文前保留目標、已同意決策、變動檔案、驗證狀態與未解風險。
任務開始時補上範圍、來源要求、不可碰的檔案與回報格式,避免子任務越界。
結束前要求明確列出假設、來源與驗證證據;耐久但非敏感的經驗才可送進大腦待審。
兩個可直接使用的模式
第一種處理不可逆風險;第二種守住公開內容品質。兩者都比「自動幫你修」更適合作為第一個 掛鉤。
事件選 PreToolUse,比對條件 只指向 Bash;處理程序 只比對少數高風險模式,命中就回傳 deny。
觸發:PreToolUse / Bash
比對:git reset --hard、git push --force、rm -rf / 或 ~
回應:deny + 說明原因
停止:交由人確認,不改寫指令在 Stop 時檢查這輪是否改過教學或文章;若要深度檢查,設定最多重試次數,避免同一輪一直卡住。
觸發:Stop
範圍:本輪修改的公開內容
檢查:來源、隱私、語氣、版面
停止:連續失敗到上限後交回人工安裝與驗證
任何新的 command 掛鉤 都是本機程式。先檢查內容、再接設定、再用模擬 JSON 驗證;不使用跳過信任的危險參數。
先用一個窄 比對條件 與無副作用的提醒開始。
用代表性的 JSON payload 模擬「命中」與「不命中」。
驗證 JSON/TOML 語法;Codex 再從 /hooks 審閱並信任命令。
一週後檢視是否真的有幫助;太吵或太慢就縮小 比對條件 或停用。
本頁根據公開來源整理;教學內容不含付費頁面或未公開清單。15 個情境是可實作的安全版本,不主張與外部付費資料逐字相同。