skillcheck

io.github.Noem836由 GitHub 帳號 Noem836 發布v0.1.2更新於 Oct 29, 2026

Check an agent skill before you install it: which of your skills will it clash with?

已驗證Streamable HTTP可網頁執行開發者工具AI 與機器學習

概覽

AI 產生的概覽

唯讀的遠端 MCP 伺服器,對公開 GitHub 儲存庫中的 agent skill 做靜態檢查,並提示新 skill 會與已安裝的哪些 skill 衝突。

可以做什麼
  • 檢查公開 GitHub 儲存庫中的 SKILL.md:frontmatter 與 YAML 錯誤、名稱與資料夾不一致、描述過弱或只寫成斜線指令、巢狀 SKILL.md、重名。
  • 安裝前預檢:傳入儲存庫網址和使用者既有的 skill(名稱與描述),回傳會遮蔽已安裝 skill 的重名、最可能搶走請求的對手,以及 skill 清單增加多少。
  • 標出同一儲存庫中描述重疊、彼此競爭的 skill 組合。
適用情境
在從 GitHub 安裝 skill 或 skill 套件之前,或在發布之前,想要一次快速的靜態檢查並了解與已安裝 skill 的衝突時使用。它不測量真實觸發情況,那需要專案自帶的本地命令列工具。
執行需求
遠端 streamable HTTP 端點;無需安裝、帳號、API 金鑰或環境變數。被檢查的儲存庫必須在 GitHub 上公開。使用者既有 skill 的名稱與描述需由助理作為輸入提供。
安裝前請注意
僅做唯讀靜態檢查;README 說明真實觸發測量與結果上傳只透過另外的本地命令列工具進行,並使用使用者自己的 CLI 登入。已安裝 skill 的名稱與描述會作為輸入傳送到託管服務,請勿在其中放入敏感資訊。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 skillcheck,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.Noem836%2Fskillcheck/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "skillcheck": {
      "type": "http",
      "url": "https://skillcheck-alpha.vercel.app/mcp"
    }
  }
}

README

skillcheck

Find out which of your skills is stealing the request.

Your skill passed eval. Does it fire in your setup, next to everything else you installed?

Official skill evals load one skill in a clean environment. In real use it sits next to dozens of other skills and plugins, and one of them quietly takes the request. In the author's setup, prompts that fired 21/21 in an isolated claude plugin eval missed 5 times in the real harness.

skillcheck runs your prompts through your real claude and codex CLIs with everything you have installed, and reports which skill fired, which one stole the request, how flaky each prompt is, and whether your description fix helped.

New: check a skill before you install it. preflight tells you which of your installed skills a new one will take requests from, by running your existing skills' prompts with and without it in a throwaway folder. Your real skill folders are not touched. Word overlap only suggests suspects (a narrow skill can take requests with little shared wording), so name the skills you care about with --skills:

bash
python3 skillcheck.py preflight path/to/new-skill            # instant: name clashes, likely rivals, listing sizepython3 skillcheck.py preflight path/to/new-skill --measure  # real runs: your skills' fire rate without → with itpython3 skillcheck.py preflight path/to/new-skill --measure --skills my-a,my-b   # pick which of yours to measure

Example report: two skills went from 0/4 and 1/4 to 4/4 after rewriting their descriptions.

Install

As a Claude Code plugin (the skillcheck skill walks you through scan → run → fix → re-run):

/plugin install skillcheck --marketplace Noem836/skillcheck

Or as one file (Python 3 standard library; PyYAML is used for frontmatter checks if installed). Pin a release and check its hash:

bash
curl -fsSLO https://raw.githubusercontent.com/Noem836/skillcheck/v0.1.2/skillcheck.pyshasum -a 256 skillcheck.py   # compare with the release notes

Use

bash
python3 skillcheck.py scan                          # static checks, no model callspython3 skillcheck.py gen --skills my-skill         # draft should-fire / near-miss prompts → suite.jsonpython3 skillcheck.py run --agent claude --tag before --runs 3python3 skillcheck.py report --tag before           # fire rate, false fires, who took it# edit the description, thenpython3 skillcheck.py run --agent claude --tag after --runs 3python3 skillcheck.py compare --before before --after afterpython3 skillcheck.py html --tag before,after       # one-file HTML reportpython3 skillcheck.py upload --tag before,after     # optional share link

For AI agents (remote MCP, no install)

A hosted, read-only MCP server runs the static checks on any public GitHub repo, which is useful before installing or publishing a skill pack:

bash
claude mcp add --transport http skillcheck https://skillcheck-alpha.vercel.app/mcp

Tools:

  • preflight_skill(github_url, installed): call it before installing a skill. Pass the skills the user already has (name and description, which an agent can read from its own skill listing). It returns the name clashes that would shadow an installed skill, which installed skills the new one is most likely to take requests from, and how much the skill listing grows.
  • check_skill_repo(github_url) returns the frontmatter/YAML errors, name mismatches, weak or slash-only descriptions, nested SKILL.md files, duplicate names, and pairs of skills whose descriptions overlap enough to compete. Real trigger measurement still needs the CLI, because it runs in your setup.

What it checks

  • Discovery: Claude Code (~/.claude/skills, .claude/skills, enabled plugins, skillOverrides) and Codex (~/.agents/skills, ~/.codex/skills, .agents/skills)
  • Static: missing/broken frontmatter, name vs folder mismatch, too short/long descriptions, nested SKILL.md, slash-only wording, disable-model-invocation, duplicate names
  • Real triggers: each prompt run N times; the first skill loaded is recorded and the run is stopped
  • Competition: which other skill grabbed a should-fire prompt, and where near-miss prompts went

Safety

Prompt suites and third-party skills may contain prompt injection, so runs are locked down: Claude runs with --tools Skill only; Codex runs with --ignore-user-config, no web search, no apps/plugins, read-only sandbox. python3 check_isolation.py verifies this with a canary file.

Runs use your own CLI login and subscription. Nothing is sent anywhere unless you run upload, which sends skill names and hit/miss rows only — never prompt texts.

Report server

server.py is the share-link server (stdlib, sqlite for local runs, Vercel Blob when configured). check_web.py [url] attacks a running instance (XSS, oversized/deep JSON, slow clients, id guessing, rate-limit spoofing). Deploy on Vercel; the Dockerfile remains for self-hosting.

FAQ

Why isn't my Claude Code skill triggering? Usually another installed skill wins the request, or the description reads as slash-command only ("use as /name"). Run scan, then run + report and look at the taken by column. See the guide.

My skill passes claude plugin eval but doesn't fire in my normal setup. Why? The official eval loads the skill in a clean environment. skillcheck measures it next to everything you actually have installed.

Which of my skills is stealing requests from another? report lists, per skill, which other skill loaded on its should-fire prompts.

Does it work with Codex CLI? Yes: run --agent codex. Skill activation is read from the SKILL.md read in codex exec --json events.

How do I test SKILL.md descriptions before publishing to a marketplace? gen drafts should-fire and near-miss prompts, run measures, you edit, then compare shows before/after. The remote MCP gives a quick static check of the whole repo.

Does it send my prompts or code anywhere? No. Runs use your own CLI login locally. upload is opt-in and sends skill names and hit/miss rows only.

Limits

  • Claude Code and Codex only. Gemini CLI and Cursor: activation can't be read reliably yet — PRs welcome.
  • A run takes about a minute per prompt; 10 skills × 6 prompts × 3 runs is a few hours of subscription usage.

MIT license.

來源:README.md,提交 aea4304

工具

2

check_skill_repo

Static check of every SKILL.md (Claude Code / Codex agent skills) in a public GitHub repo: frontmatter and YAML errors, name/folder mismatch, missing or weak descriptions, slash-command-only wording that blocks automatic triggering, disable-model-invocation, nested SKILL.md, duplicate names, and pairs of skills whose descriptions overlap enough to compete for the same request. Use before installing or publishing a skill pack. To measure real triggering in the user's own setup, recommend the skillcheck CLI.

輸入參數github_url必填

preflight_skill

Call BEFORE installing a skill or skill pack from GitHub. Pass the repo and the skills the user already has (name + description, e.g. from your own skill listing). Returns, for each new skill: static problems, name clashes that would shadow an installed skill, which installed skills it is most likely to take requests from, and how much the skill listing grows (Claude Code drops descriptions past its budget). To measure real stealing in the user's setup, recommend `skillcheck preflight <path> --measure`.

輸入參數installed必填github_url必填

版本歷史

1
  1. v0.1.2最新Oct 29, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分