khendzel/skills-janitor

GitHub: khendzel/skills-janitor

一款零依赖的 Claude Code 与 Codex skill 清理管理工具,帮助用户盘点、去重、评估 token 成本并交互式精简已安装的 skill 和 MCP server,同时提供安装前的启发式安全扫描。

Stars: 110 | Forks: 17

# Skills Janitor 适用于 **Claude Code** 和 **OpenAI Codex**。包含 6 个命令,零依赖。 ![/janitor-swipe — 滑动保留 / 删除 / 跳过所有已安装的 skill](https://raw.githubusercontent.com/khendzel/skills-janitor/main/janitor-swipe-demo.gif) 扫描所有存放 skill 的位置:user、project、codex 以及通过 `/plugin install` 安装的每个 skill —— 此外还包括你的 subagent 和 MCP server。找出那些堆积在上下文中的重复项、损坏的 symlink、未使用的 skill,以及已连接但从未被调用的 MCP server。使用统计数据直接提取自真实的会话记录,包括 Claude 自动触发的 skill。 ## 命令 | 命令 | 功能 | |---|---| | `/janitor-report` | 健康检查:清单、重复项、损坏的 skill。使用 `--brief` 仅查看清单。 | | `/janitor-fix` | 自动修复问题。使用 `--prune` 移除损坏的 symlink 和空目录。 | | `/janitor-value` | 如实评估 token 成本(常驻加载的描述 vs 按需加载的正文)以及 skill 和 subagent 的使用情况。 | | `/janitor-security` | 对 prompt 注入、隐藏指令和危险脚本模式进行启发式扫描。(v1.6+) | | `/janitor-discover` | 在 GitHub 上搜索 skill,或者在安装前检查 URL —— 现在包含安装前安全扫描。 | | `/janitor-swipe` | 交互式 TUI —— 滑动保留/删除/跳过 skill 和 MCP server,按最可能是废弃物的优先排序。(v1.4+) | 每个命令都有对应的斜杠命令。你也可以使用自然语言:*“检查我的 skill”*、*“哪些 skill 在浪费上下文?”*、*“找一个 n8n skill”*。 ## 安装 ``` /plugin marketplace add khendzel/skills-janitor /plugin install skills-janitor ``` 或者通过 [skills.sh](https://skills.sh): ``` npx skills add khendzel/skills-janitor ``` 或者直接克隆: ``` git clone https://github.com/khendzel/skills-janitor ~/.claude/skills/skills-janitor ``` ## 安全扫描 (v1.6) skill 是你的 agent 所信任的文本。公开研究发现,在测试的社区 skill 中,约有三分之一的 skill 存在 prompt 注入 —— 因此 Janitor 现在会扫描已知的恶意特征:指令覆盖短语、“不要告诉用户”的指令、隐藏在 HTML 注释或零宽度 unicode 中的指令、夹带的 base64 payload,以及将网络数据通过管道传递给 shell 或读取凭证存储的脚本。 ``` /janitor-security # audit everything installed /janitor-discover # overlap + security check BEFORE installing ``` 判定结果是客观的启发式评估(PASS / REVIEW / RISK):RISK 意味着“在信任它之前先阅读其内容”,而不是“恶意软件”。经过校准以降低误报率 —— 在一台装有 178 个 skill 的真实机器上,它只标记了 2 个,且这两个都确实值得阅读。 ## 滑动浏览你的 skill (v1.4) 为你的 skill 集合提供类似 Tinder 的分类整理。列表会优先按最庞大且最少使用的项目排序,因此大多数用户在查看完所有内容之前,就会在前 5 到 10 个卡片上点击 `← delete` 并退出。 ``` !bash ~/.claude/skills/skills-janitor/scripts/swipe.sh ``` (`!` 前缀会在你的终端中运行,而不是在 Claude Code 的 Bash 工具中 —— 因为 TUI 需要真正的交互式 stdin。) 控制方式:`←` 删除,`→` 保留,`↓` 跳过,`u` 撤销,`i` 查看完整描述,`q` 退出。 Plugin skill 会被标记为需要审查(你无法 `rm` 单个 plugin skill —— 它们归属于整个 plugin)。User 作用域的 skill 会被暂存以待实际删除,并在最后通过 `y` 确认后执行。 ## v1.3 能查出但 v1.2 漏掉的内容 重复检测器现在能够标记出以前不可见的跨作用域重叠: ``` === Skills Janitor - Duplicate Detection === --- Description Overlap (Jaccard > 30%) --- [98%] marketing-seo-audit <-> marketing-skills:seo-audit Scopes: user / plugin [100%] marketing-content-strategy <-> marketing-skills:content-strategy Scopes: user / plugin ``` 如果你安装了一个重新实现了你已有的独立 skill 的 plugin,v1.3 会通知你。v1.2 无法做到这一点,因为它完全无法识别 plugin 树。 ## v1.2 → v1.3 迁移 原有的五个 v1.2 别名已在 v1.5 中移除。重命名对照: | v1.2 | v1.3 | |---|---| | `/janitor-audit` | `/janitor-report --brief` | | `/janitor-usage` | `/janitor-value` | | `/janitor-tokens` | `/janitor-value` | | `/janitor-search` | `/janitor-discover` | | `/janitor-precheck` | `/janitor-discover ` | 完整发布说明:[CHANGELOG.md](CHANGELOG.md)。 ## 环境要求 Bash、Python 3、`curl`。无需 pip 安装,无需 node module。 ## 贡献 欢迎提交 PR。每个命令都独立包含在 `skills/janitor-*/SKILL.md` 以及位于 `scripts/` 中的配套脚本里。 ## 许可证 MIT
标签:AI辅助开发, Claude Code, MCP服务器, SOC Prime, 上下文管理, 令牌成本分析, 应用安全, 开发工具, 提示词注入检测