Skill管家(z-skill-concierge)
🗣️ 大白话介绍
你装的 skill 越来越多,每次对话系统都要把一长串 skill 名单塞进上下文,既费 token 又容易用错。
这个管家就像「技能收纳师」:平时只让常用的几个 skill 保持开启,其余不常用的统统关掉;
哪天某个关掉的 skill 真用得上了,你点个头,管家临时把它打开,用完还能再关回去。
靠一份使用登记表记住谁常用、谁闲置,关之前先备份、先问你,绝不乱动关键技能。
触发词
- 「管理/整理/清理我的 skill」「关掉不常用的 skill」「skill 太多太占 token」
- 「把某某 skill 关掉 / 打开」「需要时再启用某某 skill」
- 「盘点一下我装了哪些 skill」「哪些 skill 我基本没用过」
核心能力
- 扫描建册:扫描用户级与项目级 skills 目录,读出每个 skill 的
name / slug / disable状态,写入registry/skill-status.json - 常用判定:以登记表使用频次 + 用户 MEMORY.md 中声明的常用项为准;模糊时主动询问用户
- 批量关闭:首跑列出「建议关闭」清单,用户一次性确认后,逐文件备份并改写
disable: true - 按需启用:任务需要已关闭 skill 时,先征求同意 → 改写
disable: false→ 用完可选恢复关闭 - 自检自愈:定期重扫真实
disable状态,校正登记表漂移 - 跨平台降级:在 WorkBuddy 上真正启停;在其它平台
disable字段不被识别时,降级为维护建议清单
工作流(六步)
第 1 步 扫描
运行 scripts/toggle_skill.py --scan,或让助手读取以下目录(不写死,按平台):
- WorkBuddy 用户级:~/.workbuddy/skills/
- WorkBuddy 项目级:<workspace>/.workbuddy/skills/
- 其它平台:~/.claude/skills/、~/.cursor/skills/ 等
读出每个 skill 的 frontmatter,抽取 name / slug / disable / description。
第 2 步 建册
把扫描结果写入 本技能目录内的 registry/skill-status.json(相对路径,禁止写死系统绝对路径),字段:
{
"version": "1.0.0",
"last_scan": "2026-07-24T14:00:00+08:00",
"skills": {
"<slug>": {
"name": "中文名", "status": "enabled|disabled",
"classification": "frequent|idle|critical",
"use_count": 0, "last_used": null, "note": ""
}
},
"critical_whitelist": ["<永不关闭的slug>"],
"concierge_pinned": true
}
第 3 步 判定常用
- 常用(frequent):近 30 天用过 ≥3 次,或用户在 MEMORY.md / 登记表中明确标为常用
- 闲置(idle):长期未用、且非关键
- 关键(critical):灾备、安全、底层依赖类(如本管家自身、记忆同步、乐享等),列入
critical_whitelist - 模糊项一律询问用户,不擅自判定
第 4 步 常态关闭(首跑批量征询)
- 生成「建议关闭」清单(全部 idle 且不在白名单)
- 一次性展示给用户确认(列出名称 + slug + 判定依据)
- 用户确认后,对每个目标执行:
python3 scripts/toggle_skill.py --skill <slug> --action disable
脚本会自动备份再改写disable: true
第 5 步 按需启用
任务中识别到需某已关闭 skill:
1. 向用户提议「是否临时启用 <name>?」
2. 同意后执行:python3 scripts/toggle_skill.py --skill <slug> --action enable
3. 任务完成后询问「是否恢复关闭?」用户可选保留开启
第 6 步 自愈
每次操作后更新 use_count / last_used。周期性 --scan 重读真实 disable 状态,与登记表比对,发现漂移即提示用户校正。
安全规则(红线,P0)
- 改前必备份:
toggle_skill.py在改写任何 SKILL.md 前,先复制原文件到本技能backups/目录 - 逐次显式同意:每次启用/关闭具体 skill 前,必须向用户说明并获确认;批量关闭也需用户一次性确认清单
- 自锁:
z-skill-concierge自身disable恒为false,脚本拒绝关闭自身 - 关键白名单:
critical_whitelist中的 skill 默认不关,除非用户显式--force并再次确认 - 只改 disable 字段:脚本仅改写 frontmatter 的
disable:一行,不触碰其它内容 - 禁止删除:本管家只改启停状态,绝不删除任何 skill 文件
跨平台说明(R15)
- WorkBuddy:
disable字段原生生效,真正启停、减少误触发 - Claude / Cursor / 其它:多数不识别
disable字段。本管家在这些平台降级为建议清单——维护registry/skill-status.json作为助手参考,指导「优先用常用 skill、闲置 skill 谨慎调用」,但无法硬关闭;用户可借助平台自带开关或手动移除闲置 skill - 安装路径见 USAGE.md 的 8 客户端安装表;脚本
--scan会自动探测多平台目录
适用边界
- 适用:skill 数量 ≥10、希望降 token / 防误触发的重度用户
- 不适用:只装了 2-3 个 skill 的轻量用户(无需收纳)
- 预期收益:真实收益来自「避免闲置 skill 被误触发」;若平台仍向上下文注入全部 skill 的 name+description,则「减少注入体积」的收益有限——本管家如实声明,不夸大
toggle_skill.py 用法
# 扫描并输出所有 skill 的启停状态(不改文件)
python3 scripts/toggle_skill.py --scan
# 关闭某 skill(自动备份 + 改写 disable:true)
python3 scripts/toggle_skill.py --skill <slug或name> --action disable
# 启用某 skill
python3 scripts/toggle_skill.py --skill <slug或name> --action enable
# 干跑(只显示将做什么,不改文件)
python3 scripts/toggle_skill.py --skill <slug> --action disable --dry-run