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 分