PUA 說 NO。YES 說 YES。
一個讓 AI 安全、以證據為本、做事徹底 的 Claude Code Skill — 用鼓勵代替施壓。
別 PUA 你的 AI,YES 它。
你的 CLAUDE.md 只有一層。AI 讀完後,選擇要不要遵守。
YES.md 有六層。AI 要偷懶,得先闖過六道關卡。
| 層級 | 內容 | 做法 | 執行者 |
|---|---|---|---|
| 1 | 格式 — AI 真正看懂你的規則 | AI.MD 將文字轉換成結構化標籤格式 | 格式本身 |
| 2 | 觸發 — 在正確時機啟動 | SKILL.md 描述中有 20+ 個精確觸發條件 | Skill 引擎 |
| 3 | Hook — 擋掉危險指令、提醒檢查項 | 腳本在 AI 動作前後自動執行 | 機器 |
| 4 | 反偷懶 — 偵測 7 種偷懶模式並糾正 | 甩鍋、猜測、打轉、治標不治本、空問題… | AI 自我糾正 |
| 5 | 關卡 — 沒有備份不能改,沒有測試不算完成 | 強制停止規則,條件未達到就不能繼續 | AI 自律 |
| 6 | 記憶 — 錯誤被記錄,不再重蹈覆轍 | 錯誤日誌 + 知識庫跨 session 持續存在 | 外部儲存 |
第三層是關鍵。 其他層依賴 AI 的自律。Hook 是自動執行的腳本 — AI 就算想繞也繞不過。
大多數工具只給你第四層或第五層。這就是為什麼它們沒效。六層一起才是 YES.md 有效的原因。
AI 程式碼助手有七個壞習慣:
| 壞習慣 | 實際狀況 |
|---|---|
| 🎲 猜測 | 「可能是權限問題」— 完全沒查 |
| 🙈 甩鍋 | 「請手動確認你的環境」 |
| 🩹 治標不治本 | 修了一個 bug,忽視另外三個相關問題 |
| 🔄 盲目重試 | 同一個指令跑三次,然後放棄 |
| 🤷 空問題 | 「能確認一下 X 嗎?」— 根本沒去調查 X |
| 💬 建議不行動 | 說「我建議...」而不是直接寫程式碼 |
| 🛠️ 無視工具 | 有 WebSearch 但靠猜。有 Bash 但不跑。 |
PUA 風格的 skill 只修習慣 #4(盲目重試/放棄)。
YES.md 七個全修。
| 支柱 | 功能 |
|---|---|
| 安全關卡 | 改之前備份。確認影響範圍。改完驗證。部署前預檢。 |
| 證據規則 | 禁止猜測。禁止「應該是」。每個主張都需要資料、行號或工具輸出。 |
| 漣漪感知 | 每次修復後:確認同樣模式有無其他位置、確認上下游、確認邊界情況。 |
規則依賴 AI 自律。Hooks 不依賴。它們是自動執行的腳本,在 AI 動作前後運行。
| Hook | 時機 | 做什麼 |
|---|---|---|
pre-bash-guard.sh |
任何 Bash 指令前 | 擋下 rm -rf、git reset --hard、DROP TABLE 等危險指令 |
post-edit-check.sh |
任何 Write/Edit 後 | 提醒 AI 說「完成」前先跑漣漪檢查 |
post-deploy-health.sh |
部署指令後 | 提醒 AI 確認容器、端點和日誌 |
AI 無法跳過這些。這就是重點。
YES.md 識別 7 種 AI 迴避行為並強制自我糾正 — 不需要等使用者發現:
甩鍋給使用者 → 自己先做
未驗證的歸因 → 先跑指令再說話
原地打轉 → 完全停下,換本質不同的方案
只修表面 → 漣漪檢查
空問題 → 先調查,再提問
建議不行動 → 交出程式碼,不是建議
無視工具 → 用工具,不用記憶
| 失敗次數 | 動作 |
|---|---|
| 2 | 切換:換本質不同的方案(不是調整參數) |
| 3 | 五步稽查:逐字讀錯誤 → WebSearch → 讀 50 行上下文 → 驗證假設 → 反轉假設 |
| 4 | 隔離:最小可重現範例 |
| 5+ | 結構化交接:已驗證事實、已排除原因、縮小範圍、下一步 |
與 PUA 的關鍵差異:第三層在繼續之前強制做方向確認。往錯誤方向堅持下去比停下來更糟。
在任何根因主張之前,四個強制問題:
- 資料來源? — log / DB / API / curl?
- 時間範圍? — 全量資料還是只看最近的?
- 樣本 vs 總量? — 你看到了多少?
- 其他可能? — 還有什麼能解釋這個現象?
資料不完整 = 「
| 能力 | YES.md | PUA |
|---|---|---|
| 除錯韌性 | ✅ | ✅ |
| 除錯方向(準確度) | ✅ | ❌ |
| 反偷懶行為偵測 | ✅ | ✅ |
| 修復後漣漪檢查 | ✅ | ⭕️ |
| 安全關卡(備份、部署) | ✅ | ❌ |
| 以證據為本的診斷 | ✅ | ❌ |
| 結論完整性檢查 | ✅ | ❌ |
| Bug 關閉協議 | ✅ | ❌ |
✅ = 有 | ⭕️ = 部分 | ❌ = 沒有
兩者互補。 PUA 讓 AI 持續前進。YES.md 讓 AI 走對方向。兩個一起用效果最好。
# Marketplace
claude plugin marketplace add sstklen/yes.md
claude plugin install yes@sstklen
# 手動安裝
git clone https://github.com/sstklen/yes.md.git ~/.claude/plugins/yesmkdir -p ~/.codex/skills/yes
curl -o ~/.codex/skills/yes/SKILL.md \
https://raw.githubusercontent.com/sstklen/yes.md/main/skills/yes/SKILL.mdmkdir -p .agents/skills/yes
curl -o .agents/skills/yes/SKILL.md \
https://raw.githubusercontent.com/sstklen/yes.md/main/skills/yes/SKILL.md| 語言 | Skill 目錄 | 指令 |
|---|---|---|
| English | skills/yes/ |
預設 |
| 中文 | skills/yes-zh/ |
將上方指令中的 yes 換成 yes-zh |
| 日本語 | skills/yes-ja/ |
將上方指令中的 yes 換成 yes-ja |
當 AI:
- 沒有證據就猜測(「應該是」、「可能是」、「好像是」)
- 甩鍋給使用者(「請確認...」、「你應該手動...」)
- 同一個任務失敗 2 次以上
- 做出根因主張
- 完成修復(觸發漣漪檢查)
- 修改 config/env/部署相關檔案(觸發安全關卡)
在對話中輸入 /yes。
- PUA(
tanweai/pua)— PUA 加韌性壓力,YES.md 加準確度結構 - systematic-debugging — 方法論層面的除錯,YES.md 加治理層
經過數個月的真實生產工作實戰驗證 — 每日部署、多服務除錯、以及從出錯中學到的慘痛教訓。YES.md 裡的每一條規則,都是因為少了它而出過問題才寫進來的。
MIT
由 sstklen 打造 — PUA 說 NO。YES 說 YES。