老實說,這個情況我自己中過很多次
寫好 SKILL.md,把規則交代得清清楚楚,叫 Claude 跟著做事 拿回來的結果,總是漏一兩條 再加兩條規則,一樣漏 重新生成整個 skill,一樣漏 每次提示都加上「請嚴格跟規則」,前兩次有效,第三次又走樣
你心裡會想,是不是我寫得不夠清楚?是不是要再補一句? 不是
---
想想看,你給一個新員工一本員工手冊 他知道這本手冊存在,知道規則寫在裡面
但他真正做事的時候,會不會每一步都翻一下手冊核對? 不會
他會跟自己當下的判斷、跟自己的習慣 手冊只在他「想到」的時候才翻一下
AI 也是一樣的情況
SKILL.md 對它來說,是一份背景知識,不是一條條必須執行的硬規則 它讀過、它知道、但它不一定每一步都核對 再加上 AI 為了快點給你答案,會抄捷徑 中間那些「自我檢查」的步驟,它會跳過
所以你寫得多認真,效果也是有限的
---
⚙️ 真正的解法:把規則升級成「強制檢查」
那要怎麼做? 要讓 AI 沒得選,必須遵守
這就要靠 Claude Code 內建的 hook 功能
hook 是什麼? 簡單講,就是一段「守門員」程式
每次 AI 寫文、改檔、或要交付結果之前,hook 會先跑一次檢查 發現違規,就把那個動作擋下來,把錯誤訊息丟回給 AI AI 看到錯誤,必須改,改到通過為止
整個過程 AI 沒得選,沒得跳過,沒得抄捷徑
---
🛠 怎麼用?兩步搞定
第一步,寫一段檢查程式
你可以直接叫 Claude Code 幫你寫 列出你最不想 AI 做的事,例如不要用某些禁用詞、不要漏掉某段格式、不要跳過某個步驟
讓 Claude Code 幫你把這些檢查邏輯轉成一段 JavaScript 或 Python 程式 這段程式很簡單,就是讀檔案內容,跑幾條規則,發現問題就回報錯誤
第二步,在 settings.json 告訴 Claude Code 這段程式什麼時候要跑
通常會掛在 PreToolUse 階段,意思是「AI 在用工具寫檔案之前,先跑這段檢查」 也可以掛在 Stop 階段,意思是「AI 想結束任務之前,先跑這段檢查」
設定一次,之後 AI 寫的每一篇文、改的每一個檔,都會自動被檢查、自動被改到對
---
📊 真實效果:我自己跑過的例子
我自己有一條規則,是寫文章的時候不能用某些廣東話口語詞 之前光寫在 SKILL.md,每次都漏 後來我寫了一個 hook,把那些禁用詞列在程式裡 每次 AI 要寫檔案前,hook 先 grep 一次
結果?再也沒有漏過
不是因為 AI 變聰明,是因為 AI 沒得選
這個差別非常重要
過去我一直以為,AI 自己會檢查、自己會 audit 後來才發現,自己 audit 這件事根本靠不住 AI 會跟你講「我已經檢查過了,沒問題」,但實際上一查,全部是違規
AI 自行聲明這種東西,永遠不能當作真
---
💡 總結
SKILL.md 是給 AI 看的「建議書」 hook 是強制約束 AI 行為的「合約」 要用好 AI,這兩個層次都要有 SKILL.md 處理判斷類的規則(語氣、角度、創意) hook 處理機械化的規則(禁用詞、格式、必要欄位) 兩層配合,AI 才會真正照你的規範交付
從「希望 AI 跟規則」升級成「規則自己會檢查 AI」 這才是讓 AI 真正落地、真正可用的關鍵思維轉變
你自己有試過寫 hook 嗎?或者你最想用 hook 擋住 AI 做什麼事?歡迎留言分享你的經驗 👇