关于 janitor-discover
janitor-discover 是用于在 GitHub 搜索技能并在安装前评估候选项的 Claude Code 技能。它按相关性排列仓库,并检查候选项与已安装技能的重叠及可疑内容。
主要功能
- 01在 GitHub 搜索技能
- 02比较本地技能的替代项
- 03安装前检查候选技能
- 04分析与已安装技能的重叠
- 05扫描候选内容中的安全风险
适用场景
- 01按主题查找技能
- 02比较已安装技能的替代项
- 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)。
错误处理
-
错误:
GitHub API rate limit exceeded解决方案:设置GITHUB_TOKEN环境变量(任何经典令牌均可,无需任何作用域),然后重新运行;匿名搜索每分钟只允许少量请求。 -
错误:
Could not fetch SKILL.md from <url>解决方案:该仓库将 SKILL.md 放在非标准路径下——请传入 SKILL.md 文件的直接 URL,或本地克隆路径。 -
错误:有效主题没有搜索结果 解决方案:相关性门槛会过滤掉没有任何技能信号的仓库。请扩大关键词范围(例如将
n8n skill改为n8n),或查看缓存结果说明——结果会在data/search-cache.json中缓存 24 小时。 -
错误:
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— 修复已安装技能的问题