关于 skill-cleaner
用于审查 Skill 清单、提示词预算压力、重复项和近期使用迹象的 Node.js 分析器,可扫描指定目录与日志并生成报告。它先提供清理建议,仅在收到要求后才修改内容。
主要功能
- 01估算 Skill 提示词预算用量
- 02查找重复及相似 Skill
- 03从日志识别可能未使用项
- 04审查 Skill 根目录与禁用状态
- 05生成报告但不自动修改
适用场景
- 01缩短 Skill 描述以控制提示词预算
- 02比较不同仓库中的重复 Skill
- 03检查已启用和已禁用的 Skill 目录
- 04确定要保留或移除的 Skill
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ steipete/ agent-scripts --skill skill-cleaner安装后在 Claude Code 中输入/skill-cleaner确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlscripts/skill-cleaner.test.tsskill-cleaner.ts详细介绍
Skill Cleaner
用于削减技能提示词预算、查找重复技能、审查已启用或已禁用的技能根目录,或决定移除哪些技能/插件。
工作流
- 从此技能目录或仓库根目录运行分析器:
node --experimental-strip-types skills/skill-cleaner/scripts/skill-cleaner.ts --months 3
实用变体:
node --experimental-strip-types skills/skill-cleaner/scripts/skill-cleaner.ts --no-logs
node --experimental-strip-types skills/skill-cleaner/scripts/skill-cleaner.ts --no-live --no-logs
node --experimental-strip-types skills/skill-cleaner/scripts/skill-cleaner.ts --months 6 --max-log-mb 800 --deep-logs
node --experimental-strip-types skills/skill-cleaner/scripts/skill-cleaner.ts --context-tokens 272000 --budget-percent 2 --no-logs
node --experimental-strip-types skills/skill-cleaner/scripts/skill-cleaner.ts --root ~/Dropbox/boxd/skills --no-logs
node --experimental-strip-types skills/skill-cleaner/scripts/skill-cleaner.ts --root ~/.agents/skills --root-only --no-logs
- 按以下顺序阅读报告:
Skill Budget:实时 Codex 技能清单、2% 预算、预算用量和完整描述带来的压力。Description candidates:可通过放宽语法来节省提示词预算的长描述。Duplicates:Codex、插件缓存、仓库同级目录和个人技能根目录中名称相同或描述/正文近乎相同的技能。Unused candidates:近期 Codex/OpenClaw 日志中没有用户提及记录,也没有实际读取SKILL.md的技能。Root summary:技能来源,以及配置是否将其标记为已禁用。
- 删除或编辑之前:
- 确认保留的副本确实存在且已加载。
- 如果 Codex 内置技能已涵盖相关内容,优先删除仓库本地或
agent-scripts中的重复项。 - 如果仓库本地的 OpenClaw 维护者技能包含仓库策略或实时运维信息,请予以保留。
- 在描述中保留触发词:产品、工具、操作、对象。
分析器说明
- 默认情况下,
codex debug prompt-input会提供模型可见的确切技能列表、顺序、名称和别名路径。--no-live会强制使用范围更广的文件系统回退方案。 - 广泛的文件系统扫描仍用于重复项、已禁用技能和归档缓存诊断;不会将其视为已加载的技能清单。
- 该脚本会仿照 Codex 模型可见行的格式:
- name: description (file: path)。 - 它采用类似 Codex 的 frontmatter 规则:仅处理 YAML frontmatter;默认使用父目录作为名称;
name和description均为单行并经过清理。 - 它遵循 Codex
core-skills/src/render.rs的规则:使用原始context_window的 2% 作为预算,token 成本按ceil(utf8_bytes / 4)计算,然后依次尝试完整描述、等长截断描述,最后省略最少行数。别名表行的成本也计入预算。 - 它会读取
~/.codex/models_cache.json中 GPT-5.5 的context_window;读取失败时,回退为 272,000 tokens 和 2%。 - 默认只扫描常规 Codex/插件/仓库技能根目录。只有使用
--root <path>时才会纳入 Dropbox 归档等额外文件夹。 --root-only要求至少提供一个--root <path>,会跳过实时 Codex 技能清单,只扫描指定根目录。- 它会对根目录执行 realpath 去重,因此
~/.codex/skills/agent-scripts -> ~/Projects/agent-scripts/skills等符号链接根目录不会造成误报的重复项。 - 对于名称重复的技能,它会报告描述/正文相似度,并且仅在正文近乎相同时建议删除候选项。默认保留优先级为:Codex 直接提供的系统技能、Codex 直接提供的技能、插件技能、个人/仓库副本。
- 默认会扫描
~/.codex/history.jsonl和近期的~/.codex/sessions/**/*.jsonl。使用--deep-logs可扫描归档会话以及常见的 OpenClaw/Clawd 日志文件夹。 - 使用情况证据为启发式判断:用户提及
$skill/use skill,以及工具调用参数中出现的路径。
输出策略
- 先提出建议;只有用户提出要求时才编辑。
- 如果用户要求执行清理,请按小组提交更改:描述、删除项、配置禁用项。
- 不要删除被忽略或未跟踪的技能目录,除非已说明目标位置,或确认这些目录可以删除。
评论
支持 Markdown