技能智配 · Skill Finder by Usage (skill-finder-by-usage)
根据"最近用过的项目"反推工作主题,推荐并(经同意)安装匹配的 skills。不猜测、不越权,一切安装先列清单再确认。
硬性规则
- 安装前必须列清单:所有候选技能以表格逐条列出(名称/slug/来源/理由/风险),等用户明确同意
- 未确认不安装:任何技能(本地或 SkillHub)未经用户同意一律不下载、不复制
- 先审查后安装:第三方技能安装前必须检查 SKILL.md 与 scripts 是否有危险操作(curl|bash、rm -rf、外传数据、sudo)
- 沙盒边界:若执行环境无法写入目标技能目录,给出需用户执行的命令,不擅自降级绕过
工作流
1. 确定时间窗口
询问用户:最近一周(7 天)/ 一个月(30 天)/ 三个月(90 天)。未指定默认一个月。记录为 WINDOW_DAYS。
2. 收集使用记录
读取 references/memory-sources.md,按 WINDOW_DAYS 过滤收集:
- Reasonix 会话历史(~/.reasonix/sessions/ 最近 N 天的会话文件,取名称与首行主题)
- 项目目录(~/.reasonix/projects/,按最后修改时间在窗口内)
- 用户工作区/常用文档目录(按 mtime 过滤,如 ~/Documents 下最近修改的子目录)
- 每个项目采样:名称、修改时间、主要文件扩展名、目录名关键词
输出:项目/会话清单(项目名、时间、关键词),供下一步。
3. 提取主题
从清单提取高频关键词与领域,映射到技能分类(见 references/matching.md):
- 例:n8n / 工作流 / code节点 → 工作流编排
- 例:python / 数据处理 / excel / 报表 → 数据处理
- 例:冷冻站 / 节能 / 空调 → 工业节能
- 例:剧本 / 分镜 / 短剧 → 内容创作
每类记录 1~3 个搜索关键词(中文+英文)。
4. 匹配技能
- 本地已装:枚举当前 agent 的 skills(全局 + 项目 + 内置,可用
reasonix doctor capabilities或扫描技能目录),标记"已安装" - SkillHub 在线:对每个关键词按
references/skillhub-api.md调GET /api/skills,取sortBy=score前 3~5,过滤掉已在本地/已推荐过的 - 对候选做匹配度粗评分(关键词命中数/分类一致性),不做过度分析
5. 生成候选清单(表格)
| 技能 | slug | 来源 | 匹配理由 | 下载量 | 需APIKey | 风险提示 |
只列与主题强相关的前 5~8 条;本地已装但主题相关的也列出(标注"已安装,无需重装")。
6. 征得用户同意
- 逐条呈现清单,明确询问:装哪些?装到哪个目录(
~/.agents/skills/~/.claude/skills/ 项目 skills)? - 用户同意后,对选中技能执行第 7 步;未选中的一律跳过
7. 安装(同意后)
对每个选中技能:
1. 审查:下载前先看 SKILL.md(可用 download 接口拿 zip 后本地解压查看,不执行)
2. 下载:GET https://api.skillhub.cn/api/v1/download?slug=<slug> → zip → 解压
3. 确认目标目录与沙盒可写性:
- 可写 → 直接复制到 <目标目录>/<技能名>/
- 不可写 → 给出用户终端可执行命令(cp -R)
4. 验证:解压后核对 SKILL.md 存在、frontmatter 有 name + description
文件约定
- 收集的清单/候选表保存到
skill-recommendation-<日期>.md(工作区),便于用户复查 - 不修改任何已装技能,不自动启用/禁用