mcpField
J
janitor-discover

janitor-discover

github.com/khendzelAgent 工作流12251 次安装4 周前更新
代码仓库

关于 janitor-discover

janitor-discover 是用于在 GitHub 搜索技能并在安装前评估候选项的 Claude Code 技能。它按相关性排列仓库,并检查候选项与已安装技能的重叠及可疑内容。

主要功能

  1. 01在 GitHub 搜索技能
  2. 02比较本地技能的替代项
  3. 03安装前检查候选技能
  4. 04分析与已安装技能的重叠
  5. 05扫描候选内容中的安全风险

适用场景

  1. 01按主题查找技能
  2. 02比较已安装技能的替代项
  3. 03安装前检查重叠和安全情况

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/khendzel/skills-janitor --skill janitor-discover

安装后在 Claude Code 中输入/janitor-discover确认已加载。

详细介绍

技能发现与安装前检查

用于在 GitHub 上查找技能,以及在安装前评估指定技能(URL 或本地路径)的统一入口。

概述

取代 v1.2 中将 /janitor-search 和 /janitor-precheck 分开的做法。分派器会根据参数形式选择正确的模式。搜索结果会经过相关性筛选(仓库名称、描述或主题中必须包含技能信号),并优先按相关性排序、其次按星标数排序,避免通用大型仓库挤掉真正的技能。

参数模式运行内容
类似 seo 或 n8n workflows 的关键词发现search.sh — 在 GitHub 上查找匹配的技能
--compare <skill-name>比较search.sh --compare — 查找本地技能的替代方案
完整 URL:https://github.com/user/skill安装前检查precheck.sh — 安装前进行分析
简短仓库名:user/skill安装前检查precheck.sh(自动扩展为 URL)
本地路径:~/path/to/skill安装前检查precheck.sh(本地文件夹)

安装前模式会运行两项检查,而不是一项:检查与已安装内容的重叠情况,以及(自 v1.6 起)使用 security.sh 对候选技能进行安全扫描——采用与 /janitor-security 扫描已安装技能相同的启发式规则。

前提条件

  • 已安装 skills-janitor 插件的 Claude Code(提供 scripts/discover.sh、search.sh、precheck.sh、compare.sh)
  • bash 3.2+ 和 curl
  • 可访问 api.github.com 的网络(可匿名访问;设置 GITHUB_TOKEN 可提高速率限制并启用代码搜索)

使用说明

第 1 步:根据参数形式分派
bash ~/.claude/skills/skills-janitor/scripts/discover.sh <query-or-url> [options]

示例:

  • discover.sh seo — 搜索与 SEO 相关的技能
  • discover.sh n8n --limit 20 — 排名前 20 的 n8n 技能
  • discover.sh --compare marketing-seo-audit — 查找本地技能的替代方案
  • discover.sh https://github.com/user/my-skill — 安装前检查
  • discover.sh user/my-skill — 同上,简短形式
第 2 步:根据模式呈现结果

发现模式 — 按排名列出 GitHub 仓库,并显示技能名称、描述、星标数、最后更新时间和一行结论。

安装前模式 — 分为两个部分。第一部分是重叠分析:根据描述,列出用户现有技能(包括插件技能)中与候选技能重叠的内容,并给出安装/跳过/替换的建议。第二部分是 --- Security (<scope>) --- 区块。

务必向用户说明安全扫描范围,因为范围因来源而异:

来源扫描范围
本地路径完整目录 — SKILL.md 及随附脚本
URL / user/repo仅获取 SKILL.md — 不会下载脚本,因此克隆后需重新检查

因此,远程 URL 的 PASS 表示“在可查看的文本中未发现可疑内容”,而非“此仓库安全”。如果候选技能包含脚本,请明确说明这一点。

输出

发现模式:带编号的表格(仓库、星标数、更新时间、INSTALLED/AVAILABLE 状态)。

安装前模式:重叠类别(HIGH ≥60%、MODERATE 30–59%、LOW <30%),包含共同关键词和最终结论行(HIGH_OVERLAP / MODERATE_OVERLAP / SAFE),以及安全区块。安全区块会输出 No suspicious patterns found.(PASS)、Security scan unavailable.(UNKNOWN),或 VERDICT: REVIEW|RISK,后接每条发现的严重级别、标题和证据行。使用 --json 时,相同数据会放在 security 键下(verdict、scope、findings)。

错误处理

  1. 错误:GitHub API rate limit exceeded 解决方案:设置 GITHUB_TOKEN 环境变量(任何经典令牌均可,无需任何作用域),然后重新运行;匿名搜索每分钟只允许少量请求。

  2. 错误:Could not fetch SKILL.md from <url> 解决方案:该仓库将 SKILL.md 放在非标准路径下——请传入 SKILL.md 文件的直接 URL,或本地克隆路径。

  3. 错误:有效主题没有搜索结果 解决方案:相关性门槛会过滤掉没有任何技能信号的仓库。请扩大关键词范围(例如将 n8n skill 改为 n8n),或查看缓存结果说明——结果会在 data/search-cache.json 中缓存 24 小时。

  4. 错误:Security scan unavailable.(判定结果为 UNKNOWN) 解决方案:security.sh 执行失败或未返回可解析的 JSON——重叠度结果仍然有效,但不要将候选项描述为已通过安全检查。请重新运行,或克隆后使用 /janitor-security 扫描。

示例

示例 1:按主题查找技能

输入:“帮我找一个 n8n 技能。”

输出:运行 discover.sh n8n,展示排名表,并标记已安装的结果。

示例 2:安装前检查

输入:“github.com/user/seo-helper 值得安装吗?”

输出:运行 discover.sh https://github.com/user/seo-helper,然后总结:与现有技能的重叠情况、判定结果(例如“MODERATE_OVERLAP — 与 marketing-skills:seo-audit 重叠 45%”)、安全判定结果以及建议。请注明只扫描了获取到的 SKILL.md。

示例 3:候选项未通过安全扫描

输入:“安装前帮我检查一下 user/handy-helper。”

输出:运行 discover.sh user/handy-helper。如果安全检查部分报告 VERDICT: RISK,请优先说明这一点,而非重叠度数值——引用发现项的严重程度、标题和证据,解释 RISK 表示“信任前请先阅读”,而非“恶意软件”,并提醒用户没有获取捆绑脚本。

资源

  • 分发脚本(相对于插件的路径):{baseDir}/../../scripts/discover.sh
  • 搜索缓存:data/search-cache.json(TTL 为 24 小时)
  • /janitor-security — 对所有已安装内容运行相同的扫描
  • /janitor-report — 检查当前已安装技能的健康状况
  • /janitor-value — 评估现有技能是否值得其上下文成本
  • /janitor-fix — 修复已安装技能的问题

评论

支持 Markdown