Skill Doctor
診斷並改善任何 SKILL.md。這是指南針,不是操作手冊——具體標準存放在 references/ 中,按需讀取。
觸發後的診斷流程(每個步驟必須產生可見輸出)
沒有可見輸出的步驟會被靜默跳過(Seleznov 實驗,2026)。每個步驟列印一行確認訊息。 自我審查標記:如果本次對話已編輯/寫入目標 SKILL.md,請在每次 doctor 列印行前綴加上
[self-review],並在步驟 3 的最後附加一行:「結論為自我評估,建議使用全新子代理重新審查。」
步驟 1:讀取目標 SKILL.md,宣告診斷開始
讀取正在編輯的 SKILL.md 全文,執行 python3 <此技能目錄>/scripts/check_listing_budget.py "<專案根目錄>"(路徑需加引號——路徑中常有空格),列印兩行:
[skill-doctor] 稽核中:<路徑> 主體=<N> 行 描述=<M> 字元
[skill-doctor] 預算(<平台>):<K> 個技能,<T> 字元 vs 約<B> → <符合 | 超出 ×N.N>
自動偵測平台(CC / Codex / Hermes / OpenClaw)。退出碼:0 = 符合;1 = 超出;2 = 無法使用(無平台 / 上下文未知 → 詢問用戶的平台 + 視窗)。超出是整體層級的注意事項,非針對受審技能的發現:印出數字讓用戶知道,但不要因預算因素縮短此技能的描述——瘦身是全域性的操作,永遠不是單一技能的修正。
步驟 2:根據各面向評判
從參考索引(面向章節)選取要載入的面向——僅讀取那些 when-to-read 條件觸發的條目。 載入後,列印一行:
[skill-doctor] 已載入:<列表>;已跳過:<列表及單詞原因>
步驟 2.5:乾執行逐步演練(僅當主體包含工作流程時)
依照 references/effect-dry-run.md,選取 1 個最典型的提示,在主體的步驟中逐步演練,檢查輸入/指令/輸出是否連貫。
任何斷連或含糊之處 → 標記為 P0(效果問題)並放入步驟 3 的 ❌ 區塊。
列印一行:
[skill-doctor] 乾執行提示:「<提示>」 斷連數=<N>
若主體無工作流程(純規則 / 參考型技能),則列印:
[skill-doctor] 乾執行:已跳過(無工作流程)
步驟 2.6:即時注入檢查(僅當目標技能在本次對話的範圍內)
檢查目標技能是否出現在本次對話的可用技能列表中且附帶其描述(不僅是名稱)。三種情況(已注入 / 僅名稱預算掉落 / 範圍外跳過)以及整體注意事項規則請參閱 references/live-injection-check.md。列印一行:
[skill-doctor] 即時注入:<已注入 | 已掉落(僅名稱)| 已跳過(<原因>)>
步驟 3:輸出診斷報告
嚴格按照以下格式,列印到對話中:
[skill-doctor] 診斷
❌ 必須修復(按 P0→P3 排序,定義見 references/priority-tiers.md)
[P0 效果中斷] <問題>:<原因> → <修復>
[P1 結構] <問題>:<原因> → <修復>
[P2 具體性] <問題>:<原因> → <修復>
[P3 影響執行] <問題>:<原因> → <修復>
⚠️ 建議改善(包含純粹外觀 / 冗長型 P3)
- <問題>:<原因> → <修復>
✅ 已通過檢查
- <列表>
P3 放置規則:問「如果不修復,下一個執行此技能的 LLM 是否會做錯事?」——是 → ❌;僅是難看/冗長 → ⚠️。詳見 references/priority-tiers.md。
每個問題必須給出具體的行號或欄位——不得含糊。當同一類違規出現在多處時,請分開列出——例如,內容被錯誤歸類到三個子目錄中應視為 3 個問題,而非 1 個合併條目。
若適用,請標示失效模式(定義見 references/predictability-glossary.md):在發現前加上 [no-op] / [sediment] / [premature-completion] / [weak-leading-word] / [duplication] / [sprawl] 前綴。該名詞說明何種問題;P 層級仍說明多嚴重——兩者正交,因此前綴永不取代層級。
步驟 4:用戶確認後使用編輯套用
未經確認絕不編輯。等待用戶說「修復它」後再行動。
行動前,套用尺寸閘門與刪除前檢查;之後結束循環——完整程序見 references/apply-safety.md。
修復完成後,列印一行:
[skill-doctor] 已套用 <N> 個修復至 <路徑> 主體:<舊>→<新> 行(<+X%>)
硬性規則快速參考
量化的硬性規則(違規視為錯誤,非建議)存放在 references/hard-rules.md——每次稽核時查閱。
例外處理
當路徑遺失、YAML 無法解析、或捆綁腳本(scripts/check_listing_budget.py + scripts/detect_platform.py / scripts/check_routes.py / scripts/eval_retrieval.py / scripts/check_desc_slim.py)遺失或退出碼為 2 時——請依 references/exception-fallback.md 處理。先向用戶宣告例外;永遠不要靜默跳過。
輸出與語言
報告文字遵循 references/output-style.md(清晰、終端安全、結論優先)。主體/參考預設為英文;標記無合理理由的非英文 ⚠️ — 政策與兩個正當例外見 references/language-policy.md。
超出此技能範圍的事項
- 實際功能是否正確(那是邏輯錯誤,非技能格式問題)
- 專案特定慣例(應放在 CLAUDE.md,而非技能中)
- 一次性修復腳本(執行一次後即丟棄,不應作為技能)
為何存在此技能
為何 LLM 會把 SKILL.md 寫得像操作手冊,以及此技能如何將機械檢查與判斷分離:references/rationale.md。