Community研究與資料分析github.com

enmr10/skill-doctor

稽核你的 Claude 技能,找出碰撞問題。分析為什麼錯誤的技能被觸發,並提供精確的修正方案。零依賴。

skill-doctor 是什麼?

Skill-Doctor 是一個專門診斷 Claude Code 技能庫的工具,用於檢測技能描述之間是否存在「碰撞」(即多個技能競爭相同提示詞),進而導致錯誤的技能被觸發。它支援兩種輸入方式:技能目錄(`<root>/<name>/SKILL.md`)或 Claude Code 的 `manifest.json` 檔案,並且完全依賴 Python 3.8+ 標準函式庫,實現零外部依賴。該工具會生成詳細的 Markdown 或 JSON 報告,包含健康評分、碰撞熱點、重複觸發詞表格以及具體的修正建議(如合併、吸收、消歧義)。使用者不僅可以手動執行,還能將其整合到 CI 流程中作為閘道(gate),確保技能庫的品質。需注意,該工具本身是唯讀的,實際的修正仍需由 AI 代理或開發者在使用者同意後執行。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add enmr10/skill-doctor

Installed? Explore more 研究與資料分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

skill-doctor 是做什麼的?

診斷技能庫。找出那些競爭相同提示詞的技能描述,然後修正路由問題。

何時執行

  • 你安裝了許多技能,但「錯誤的技能一直觸發」
  • 在發佈技能包之前(提前發現審查者會遇到的碰撞)
  • 新增技能之後(它是否與現有技能衝突?)
  • 對不斷成長的技能庫進行定期健康檢查

輸入

將引擎指向以下任一:

  • 技能目錄(<root>/<name>/SKILL.md),或
  • Claude Code 的 manifest.json(skills-plugin/.../manifest.json)

如何執行

引擎位於本檔案旁邊的 scripts/ 目錄中。零依賴(Python 3.8+ 標準函式庫)。

# 從包含此 SKILL.md 的目錄執行:
python3 -m scripts <path-to-skills-or-manifest>            # Markdown 報告
python3 -m scripts <path> --format json --out report.json # 機器輸出
python3 -m scripts <path> --fail-on critical               # CI 閘道(退出碼 1)

常用選項:

  • --merge-at 0.55 — 觸發「合併」建議的碰撞分數
  • --disambig-at 0.30 — 觸發「消歧義」建議的分數
  • --vague-threshold 0.5 — 標記描述過於模糊的門檻
  • --top 12 — 列出多少個最高碰撞
  • --format md|json|both

可檢測的問題(問題代碼)

代碼嚴重程度意義
DUPLICATE_TRIGGER🔴相同觸發詞被 2 個以上技能聲明(路由錯誤的首要原因)
DUPLICATE_NAME🔴兩個技能名稱相同
MISSING_DESCRIPTION🔴技能永遠無法可靠觸發
HIGH_OVERLAP🔴/🟠兩個描述在語義上過於接近
VAGUE_DESCRIPTION🟠充滿填充詞,缺乏「何時使用」及觸發詞
NAME_DIR_MISMATCH🟠名稱 ≠ 目錄名稱(違反規範)
BAD_NAME_FORMAT🟠名稱不符合小寫/連字符規則
DESC_TOO_SHORT / DESC_TOO_LONG🟠/🟡字數超出 40–1024 字元範圍
NO_BOUNDARY🟡缺少「若要 X,請參閱 」的交叉引用
BODY_TOO_LONG🔵SKILL.md 主體超過 500 行

評分方式(一句話)

碰撞分數 = 0.50·餘弦相似度(TF-IDF 描述)
         + 0.35·傑卡德係數(觸發詞)
         + 0.15·傑卡德係數(領域關鍵字)

閾值:<0.22 低 · 0.22 中 · 0.38 高 · 0.55 嚴重。 完整原理請參閱 references/scoring.md。

AI 代理的工作流程

  1. 執行引擎,導入使用者的技能路徑 → 讀取 Markdown 報告。
  2. 總結健康評分、最嚴重的問題群集以及重複的觸發詞。
  3. 針對每個最佳建議,提出具體的編輯方案:
    • MERGE(合併) → 草擬一個合併後的描述,建議保留的名稱。
    • ABSORB(吸收) → 指定要刪除的技能,以及其觸發詞移至何處。
    • DISAMBIGUATE(消歧義) → 寫出兩條對應的邊界線(「若要 X,請參閱 Y。」)。
  4. 提議套用描述改寫(編輯每個 SKILL.md 的前置資料)。
  5. 重新執行以確認健康評分已改善。

輸出

  • 一份 Markdown 報告:健康評分、頂級碰撞、易混淆群集、 重複觸發詞表格、建議、完整問題清單、ASCII 熱力圖。
  • 可選的 JSON(--format json),供 CI 閘道或其他工具使用。

規則

  • 引擎是唯讀的——它絕不會編輯技能。改寫操作必須由 AI 代理(你)在使用者同意後執行。
  • 未經明確確認,絕不刪除任何技能。
  • 在改寫描述時,保留使用者依賴的所有真實觸發詞; 僅移動或消歧義它們——切勿刪除。

更多資訊請參閱 references/methodology.md(演算法)及 references/issue-catalog.md(如何修正各類問題)。

相關技能