mcpField
J
janitor-fix

janitor-fix

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

关于 janitor-fix

janitor-fix 是用于修复用户、项目和 codex 范围内技能常见问题的 Claude Code 技能。默认先预览修改,也可清理损坏链接或空目录,并跳过插件技能。

主要功能

  1. 01修复技能 frontmatter
  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-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."

错误处理

  1. 错误:对 SKILL.md 的修复产生了意外结果
    解决方案:每项已应用的更改都会连同时间戳记录在 data/changelog.log 中 — 显示日志条目并手动还原受影响的字段;模板描述应由作者替换。

  2. 错误:[SKIP] Plugin/marketplace skill - don't modify
    解决方案:这是预期行为,并非错误。插件内容由上游固定 — 建议用户向插件作者报告问题。

  3. 错误:清理列表中包含用户想保留的技能
    解决方案:不要运行 --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

评论

支持 Markdown