关于 janitor-fix
janitor-fix 是用于修复用户、项目和 codex 范围内技能常见问题的 Claude Code 技能。默认先预览修改,也可清理损坏链接或空目录,并跳过插件技能。
主要功能
- 01修复技能 frontmatter
- 02生成模板描述
- 03补充缺失的版本字段
- 04清理损坏链接和空目录
- 05默认预览并记录变更
适用场景
- 01应用前预览元数据修复
- 02确认后删除损坏的技能链接
- 03清理空目录或孤立技能
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ khendzel/ skills-janitor --skill janitor-fix安装后在 Claude Code 中输入/janitor-fix确认已加载。
详细介绍
自动修复
自动修复常见的技能问题。默认采用试运行模式:显示将要进行的更改,但不修改文件。
概述
修复用户、项目和 codex 作用域技能的 frontmatter 问题(缺少分隔符、描述为空、缺少版本字段);在 --prune 模式下,还会移除失效的符号链接和空技能目录。绝不会修改插件/市场技能(更新时所做更改会被覆盖)。
前提条件
- 已安装 skills-janitor 插件的 Claude Code(提供
scripts/fix.sh) - bash 3.2+(macOS 自带的 bash 即可;无需外部依赖)
- 对用户自己的技能目录(
~/.claude/skills、./.claude/skills、~/.agents/skills)具有写入权限
说明
步骤 1:先预览(始终如此)
bash ~/.claude/skills/skills-janitor/scripts/fix.sh # preview fixes
bash ~/.claude/skills/skills-janitor/scripts/fix.sh --prune # preview broken/orphaned removals
步骤 2:向用户展示预览并确认
切勿直接使用 --apply。展示 [DRY RUN] 行,并在写入前征求确认。
步骤 3:应用更改
bash ~/.claude/skills/skills-janitor/scripts/fix.sh --apply # apply fixes
bash ~/.claude/skills/skills-janitor/scripts/fix.sh --prune --apply # remove broken skills
修复内容:
- 添加缺失的 frontmatter 分隔符(
---) - 使用模板填充空的
description字段 - 添加缺失的
version字段(默认值为 "1.0.0") - 根据技能文件夹名称生成模板描述
清理模式会查找并移除:
- 失效的符号链接 — 技能文件夹指向已删除的源
- 空目录 — 不含 SKILL.md 的技能文件夹
- 孤立技能 — 插件技能的用户作用域副本
安全机制:默认采用试运行模式(必须传入 --apply 才会写入),跳过插件/市场技能,将所有更改及时间戳记录到 data/changelog.log,移除内容前始终征求确认。
输出
逐项显示技能操作行([DRY RUN] / [FIXED] / [PRUNED] / [SKIP]),随后汇总可修复问题、跳过的项目和可清理条目。试运行模式下,汇总末尾会显示 "Run with --apply to make these changes."
错误处理
-
错误:对 SKILL.md 的修复产生了意外结果
解决方案:每项已应用的更改都会连同时间戳记录在data/changelog.log中 — 显示日志条目并手动还原受影响的字段;模板描述应由作者替换。 -
错误:
[SKIP] Plugin/marketplace skill - don't modify
解决方案:这是预期行为,并非错误。插件内容由上游固定 — 建议用户向插件作者报告问题。 -
错误:清理列表中包含用户想保留的技能
解决方案:不要运行--apply。如果要保留的“失效符号链接”目标已迁移,应重新创建链接(ln -sfn <new-target> <link>),而不是清理。
示例
示例 1:安全修复流程
输入:"Fix my skills."
输出:运行试运行,展示 [DRY RUN] 列表("3 个可修复项:2 个缺少描述,1 个缺少版本"),征求确认,然后运行 --apply 并报告 [FIXED] 行。
示例 2:清理残留的失效项
输入:"Remove broken skills."
输出:运行 --prune(试运行),说明将要移除的内容及原因(失效的符号链接目标、空目录),征求确认,然后运行 --prune --apply 并报告 [PRUNED] 行。
资源
- 修复脚本(相对于插件的路径):
{baseDir}/../../scripts/fix.sh - 已应用修复的变更日志:插件目录中的
data/changelog.log - 查找问题:
/janitor-report - 使用说明及令牌成本:
/janitor-value