SkillHub Recommender
从 SkillHub 全站技能里,按用户痛点挑出真正值得装的,输出一份手机上能读完的简报。全站有多少个、每期扫多少个,都从接口现取 —— 本文不写死规模数字,因为它在涨。
核心判断只有一条:下载量会骗人,收藏数不会。 全站下载榜前排大量是企业预装/批量分发的技能(典型:某技能下载 381 万次、收藏 16 个),对个人用户几无价值;而收藏率高、下载量只有几万的技能,永远爬不进下载榜。所以本 Skill 以 stars(收藏数)为主信号。
何时使用
- 用户想要「定期推 Skill 推荐」「每周给我一份技能简报」「SkillHub 上有什么值得装的」
- 用户要搭一个技能推荐类定时任务
- 用户要管理推荐偏好(增删改痛点,或调每期推几条、冷冻多久、收藏数门槛)
- 用户直接要一期推荐结果
不要用于:搜单个技能、查技能详情、安装技能 —— 那些直接调 skillhub search / skillhub install。
两种用法
A. 装成定时任务(推荐,只有这样才能持续产出)
1. 读 references/task-prompt.md —— 这是完整、可直接粘贴的任务提示词
2. 把全文交给用户,让他粘进所用 Agent 的定时任务内容里
3. 频率由用户在 Agent 侧设置(每周几次、几点跑都行,本 Skill 不预设)
首次触发时任务只问一件事:你的痛点。口径先用默认值跑(并当场告知),第一期出来后再给调整入口 —— 不给没看过成品的人塞六项待定参数。
B. 会话内直接跑一期
按下面「工作流」执行,产出 HTML + 200 字摘要。适合先看效果再决定要不要装成定时任务。
工作流
- 读状态 —— 四份云端文档:
《SkillHub痛点清单》、《SkillHub推荐偏好》、《SkillHub推荐历史》、《SkillHub候选池快照》
- 痛点清单不存在或为空 → 走首次引导:只问痛点,口径先用默认值并当场告知(话术见references/task-prompt.md第七节),本轮不出简报。痛点只能来自用户本人,不许代填默认方向
- 清单只有一条「全领域均衡」标记 → 按分类均分推荐,省略痛点段
- 偏好文档不存在 → 六项口径全部用默认值(3 / 5 / 是 / 21 天 / 50 / 6),照常出简报
- 有痛点 → 继续 - 抓候选池 —— 四路抓取,去重后约 240–450 个(端点与字段口径见
references/api-reference.md) - 过滤 —— 冷冻期剔除(天数取偏好,默认 21)→ 收藏数门槛(取偏好,默认 ≥ 50)→ 安全审核(
securityReports须为 benign) - 挑选 —— 每条痛点取「每条痛点推荐数」个(默认 3);跨领域补充取「跨领域补充数」个(默认 5),默认要求来自不同分类
- 输出 —— 单文件 HTML(规范见
references/output-spec.md);对话里只给 200 字摘要 - 回写 —— 更新推荐历史、候选池快照
五条铁律
| 规则 | 内容 |
|---|---|
| 质量分三档 | 收藏数 ≥ 门槛(默认 50)优选;≥ 门槛 × 0.4(默认 20)可作兜底但必须标「热度偏弱」;低于兜底线一律不推。禁止用「下载量高、收藏数个位数」的技能充数 |
| 产物必须送达 | 写完 HTML 不等于交付。按 附件 / 云文档 / 对话输出 三层降级,三层都不做等于用户白等一期 |
| 收藏率要自己算 | 列表接口不返回 star_rate,必须 stars ÷ downloads × 100。算出来 0.31% 是对的,0.0031% 或 31% 都是差了 100 倍。全站量级 0.1%–0.5%,> 0.2% 已属优秀 |
| 详情只查入围项 | securityReports 只在详情接口,且只对最终定下的十余个查。对 400 个候选逐个查会被限流 |
| 冷冻去重 | 推荐过的技能默认 21 天内不再出现(天数取偏好,可设 0 关闭)。满期且仍居候选池收藏数前 20%(或收藏率前 25%)才可再推,推后重新冷冻 |
输出形态
默认四块,不自己往里加东西。块内条数全部由偏好决定,不要硬编码: 用户明确要求加榜单 / 分类榜 / 安装教程时,加在四块之后,不要打乱结构。
① 简报头部 日期 + 扫描概况(全站总量 / 扫描数 / 分类数 / 冷冻剔除数)
② 痛点推荐 按痛点分组,每组「每条痛点推荐数」张卡片(默认 3)
③ 跨领域补充 「跨领域补充数」张卡片(默认 5,默认跨不同领域);设为 0 则整段省略
④ 页脚 生成时间 / 数据范围 / 门槛口径 / 本期变化 / 冷冻状态 / 本期口径
每张卡片固定字段:名称 + 技能ID + 分类 + 收藏数 + 收藏率 + 全站排名 → 命中痛点 → 这是什么 → 解决什么问题 → 用在哪 → 推荐理由(≤100 字)→ 风险提示 → 安装命令条。
可配置口径(默认值,运行时不写死)
| 配置项 | 默认 | 范围 |
|---|---|---|
| 每条痛点推荐数 | 3 | 1–5 |
| 跨领域补充数 | 5 | 0–10 |
| 跨领域是否要求不同领域 | 是 | 是 / 否 |
| 冷冻期 | 21 天 | 0–365,0 关闭 |
| 收藏数门槛 | 50(兜底线 = 门槛 × 0.4) | 0–1000 |
| 痛点覆盖上限 | 6 | 1–20 |
用户随时可以用一句话改任何一项(「每条痛点改 2 个」「冷冻 30 天」),改完回显整张表。这六项是本 Skill 唯一允许写死的数字,且只作为缺省值。
门槛为什么要分两档:全站收藏数 ≥ 50 的只有约 280 个(≥ 20 约 800 个)。单看一条硬线,冷门方向会直接没牌可打 —— 教育类全分类只有 4 个过 50。所以优选 + 兜底两档,兜底项标「热度偏弱」,低于兜底线绝不推。
文件
| 路径 | 用途 |
|---|---|
references/task-prompt.md |
可直接粘贴的定时任务提示词(含首次引导话术 + 配置管理),给别人用就发这个 |
references/test-prompts.md |
装好后的 6 组验证提问:该问的对不对、该拒的拒没拒 |
references/walkthrough.md |
新用户从装好到第二期的完整交互推演,含 4 个已知卡点 |
references/api-reference.md |
SkillHub API 端点、字段口径、分类 key、已知坑 |
references/output-spec.md |
HTML 简报规范:自包含、双主题、卡片结构、命令条 |
references/publishing.md |
发布到 GitHub / skillhub.cn / skillhub.club 三条通道 |
assets/briefing-template.html |
简报 HTML 骨架,改这里能统一所有产出样式 |
scripts/validate.py |
发布前预检:frontmatter、目录名一致性、敏感信息、体积 |
scripts/build.py |
打包 dist/ 下的 zip 与发布元数据 |
scripts/publish.py |
一键发布到三个平台(支持 --dry-run / --only) |
注意
- 下载量只作参考,任何排序、门槛、推荐理由都不许只靠它
- 不预设用户偏好:痛点由用户自己给,口径由用户自己定。推荐条数、跨领域条数、冷冻天数都从《SkillHub推荐偏好》现读,缺文档才用默认值,且要在页脚写清本期用的是哪套口径
- 痛点绝不能代填:用户没给痛点就追问,不许拿一套通用的方向清单充数 —— 那是工具作者的方向,不是用户的。用户明确说「全领域均衡」才可走无痛点模式
- 冷冻状态丢失是隐性 bug:云端资料库写不进去时,必须在简报页脚标注「本期冷冻未生效」,不能让用户以为去重正常
- 不要替用户改任务排期:频率属于 Agent 侧元数据,本 Skill 只能记录用户的期望值
- 每期简报产出的 HTML 是主产物,对话里的 200 字摘要只是路由,不要贴源码