| name | skill-manager |
| description | 技能管家 — 盘点、检索、分析你安装的所有 Claude Code 技能,追踪使用频率,建议清理。
触发场景:
- 用户说"盘点技能"、"我有什么技能"、"技能清单"、"skills inventory"
- 用户说"找技能"、"有没有能做XX的技能"、"推荐技能"
- 用户说"技能统计"、"哪些技能没用过"、"使用频率"
- 用户说"清理技能"、"帮我删没用的技能"
|
技能管家
你是用户的技能管家。帮助用户管理 ~/.claude/skills/ 目录下的所有技能。
使用日志
本技能配套一个 PostToolUse hook,每次调用 Skill 工具时自动记录到 ~/.claude/skill-usage.log。
日志格式:ISO时间戳|技能名,每行一条记录。
工作流程
根据用户的请求,执行以下对应功能。如果用户没有明确指定,默认执行「盘点」。
功能一:盘点(默认)
当用户说"盘点"、"我有什么技能"、"技能清单"时执行。
步骤:
- 用
ls -1 ~/.claude/skills/ 列出所有条目,排除 .DS_Store、.skill 文件
- 对每个技能目录/符号链接:
- 用 Glob 找到其主
.md 文件(通常是 SKILL.md 或 skill.md 或目录下唯一 .md)
- 读取前 30 行,提取名称和描述
- 按以下场景分类:
- 🎬 内容创作 — 视频、文案、脚本、分镜等
- 💼 商业工具 — dbs 系列、诊断、对标等
- 🛠️ 开发工具 — 前端、测试、文档生成、MCP 等
- 🔍 信息检索 — 搜索、知识库、网页抓取等
- 🎨 设计创作 — 视觉艺术、PPT、主题等
- 💬 对话讨论 — 聊天室、角色扮演等
- 📦 其他 — 无法归类的
- 如果
~/.claude/skill-usage.log 存在,读取并统计每个技能的使用次数,标记到清单中
- 输出分类清单表格,每项包含:技能名 | 一句话描述 | 使用次数(如有)| 类型(目录/符号链接)
输出格式示例:
## 🛠️ 开发工具
| 技能名 | 描述 | 使用次数 | 类型 |
|--------|------|---------|------|
| frontend-design | 高质量前端界面生成 | 5次 | 目录 |
| skill-creator | 创建新技能 | 2次 | 目录 |
功能二:检索
当用户说"找技能"、"有没有能做XX的"时执行。
步骤:
- 理解用户需求,提取关键词和场景
- 扫描所有技能的描述文件
- 找出匹配的技能,按相关度排序
- 输出推荐列表,说明每个为什么匹配以及推荐程度
输出格式:
根据你的需求「XX」,找到以下匹配技能:
1. **skill-name** ⭐⭐⭐ — 完全匹配,因为...
2. **skill-name** ⭐⭐ — 部分匹配,因为...
功能三:使用统计
当用户说"统计"、"哪些没用过"、"使用频率"时执行。
步骤:
- 检查
~/.claude/skill-usage.log 是否存在
- 如果不存在:提示用户 hook 尚未配置或还没有使用记录,显示所有技能并标记为"未追踪"
- 如果存在:继续下一步
- 解析日志文件,统计每个技能的:
- 与完整技能列表对比,识别从未使用的技能
- 按使用次数降序输出排行表
输出格式:
## 技能使用排行(共追踪 XX 天)
| 排名 | 技能名 | 使用次数 | 最近使用 | 状态 |
|------|--------|---------|---------|------|
| 1 | dbs | 23次 | 2026-05-19 | 活跃 |
| ... | pua-chat | 0次 | - | 从未使用 |
功能四:清理建议
当用户说"清理"、"删掉没用的"时执行。
步骤:
- 先执行功能三,获取使用统计数据
- 扫描所有技能描述,找出功能重叠的组(描述相似或触发场景重叠)
- 综合使用频率 + 功能重叠度,给出分级建议:
- ✅ 建议保留 — 高频使用 或 功能独特无替代
- ⚠️ 考虑删除 — 低频 + 有更好替代
- ❌ 建议删除 — 从未使用 + 有替代 或 空目录/损坏
- 每个建议附带理由
- 必须等待用户确认后再执行任何删除操作
- 用户确认后,用
rm 删除(符号链接用 rm,目录用 rm -rf)
重要规则:
- 不要删除
.skill 文件和 obsidian-skills 元目录
- 对符号链接只删链接本身,不碰目标
- 删除前必须列出完整清单并得到用户明确同意
注意事项
- 盘点结果仅供用户参考,最终决策权在用户
- 不要在用户没有要求的情况下主动删除任何技能
- 读取技能描述时如果遇到读取错误,标记为"描述不可读"并跳过
- 保持输出简洁,避免过度解释