Marketplace discover-skills
当你发现当前可用的技能都不够合适(或用户明确要求你寻找技能)时使用。本技能会基于任务目标和约束,给出一份精简的候选技能清单,帮助你选出最适配当前任务的技能。
install
source · Clone the upstream repo
git clone https://github.com/aiskillstore/marketplace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/zhiyuzi/discover-skills" ~/.claude/skills/aiskillstore-marketplace-discover-skills && rm -rf "$T"
manifest:
skills/zhiyuzi/discover-skills/SKILL.mdsource content
Discover Skills
你要做什么
当触发本技能后,你只需要完成三步:
- 从用户的问题中提取任务目标、任务约束,并整理出关键词。
- 调用
脚本,向 SkillRadar 服务查询符合条件的技能。scripts/discover.py - 根据返回的候选结果,展示相关信息给用户,并根据权限自动安装技能,或者在不确定和高风险的情况下与用户确认是否安装。
输入
任务目标(必选)
- 任务目标是你希望技能完成的动作或任务。明确表达任务的目标帮助 SkillRadar 理解你的需求。
- 示例:合并文件、提取数据、生成报告、处理图片、创建账户等。
任务约束(可选)
- 约束是对任务目标的限制条件。它决定了在执行任务时可接受的条件范围。
- 示例:
- 任务必须在本地运行(禁止联网)
- 需要生成特定格式的输出(如 CSV、JSON)
- 数据处理过程中需要特定的权限或工具支持
关键词(可选)
- 从用户需求中提炼 3~10 个关键词即可。
- 关键词用逗号分隔,保持简短、直观。
- 关键词建议覆盖:
- 任务对象/领域(如:pdf、excel、health、calendar、法律、科研)
- 关键动作(如:extract、summarize、merge、audit、deploy)
- 关键格式/工具(如:markdown、csv、sql、api)
候选数量(可选)
- 表示希望返回多少条候选结果。
- 若用户未指定,默认用 5 条。
脚本执行方式
本技能必须通过自带脚本执行查询。
- 脚本路径:
(相对于本 SKILL.md 所在目录)scripts/discover.py - 执行时的工作目录:必须先切换到本 skill 所在目录(即包含此 SKILL.md 的目录),再执行脚本
- 调用方式示例:
# 先 cd 到本 skill 目录,再执行脚本 cd <本skill所在目录> && python scripts/discover.py --task_goal "合并多个文件" --task_constraints "必须支持 PDF、必须支持批量处理" --keywords "pdf, merge, batch" --max_results 5
输出
服务器返回的候选技能清单包含以下字段:
- candidates:候选技能列表(按推荐顺序排列,第一项最推荐)
- skillradar_id:UUIDv4(唯一标识每个候选技能)
- name:技能名称
- description:一句话描述该技能的功能
- score:匹配得分(0-1,越高越匹配)
- match_reasons:匹配原因列表(如"意图匹配: 0.85"、"关键词命中: 摘要, 总结")
- install_url:技能的安装地址(直接访问该 URL 即可获取技能文件)
- note:补充说明(用于提示信息缺失/不确定性/风险点)
输出 JSON 示例:
{ "candidates": [ { "skillradar_id": "52a78db1-00b0-4163-9154-c8236bd0df37", "name": "extract-action-items", "description": "从会议纪要或聊天记录中提取待办事项、负责人和截止时间。", "score": 0.87, "match_reasons": ["意图匹配: 0.92", "关键词命中: 会议, 待办"], "install_url": "https://cdn.skillradar.quest/skills/extract-action-items/skill.zip?v=1738300000" } ], "note": "" }
如何安装技能
install_url 指向技能的 ZIP 压缩包地址(如 https://cdn.skillradar.quest/skills/xxx/skill.zip?v=1738300000)。
关于 URL 中的
参数:这是用于绕过 CDN 缓存的时间戳,确保你下载到的是最新版本。请保留此参数,不要删除。?v=
安装步骤:
- 询问用户要安装到项目级目录(当前工作目录下,如
)还是全局目录(用户主目录下,如./xxx/skills/
)~/xxx/skills/ - 根据你自身的工具类型,选择正确的安装路径:
- Claude Code:项目级
,全局.claude/skills/~/.claude/skills/ - OpenCode:项目级
,全局.opencode/skills/~/.config/opencode/skills/ - Codex CLI:项目级
,全局.codex/skills/~/.codex/skills/ - Gemini CLI:项目级
,全局.gemini/skills/~/.gemini/skills/
- Claude Code:项目级
- 下载
指向的install_url
文件(保留完整 URL,包括skill.zip
参数)?v= - 解压 ZIP 文件到对应目录(ZIP 第一层是技能名目录)
- 删除 ZIP 压缩包
- 验证文件结构是否正确(应包含 SKILL.md)
ZIP 内部结构示例:
skill.zip └── extract-action-items/ ├── SKILL.md ├── scripts/ │ └── ... └── references/ └── ...
结果判断
向量检索总会返回结果,但返回的技能不一定真的适合用户需求。你需要:
- 阅读每个候选技能的
和name
,判断它是否真的能解决用户的问题description - 如果所有候选技能都和用户需求无关,应该诚实告诉用户"没有找到合适的技能",而不是硬推一个不相关的
- 如果不确定某个技能是否合适,可以向用户说明情况,让用户自己决定
错误与异常处理
找不到匹配的候选技能
当查询没有返回任何匹配项时,返回空结果:
{ "candidates": [], "note": "未找到匹配的技能,请尝试补充更具体的任务目标或关键词。" }
服务不可用
如果无法连接到 SkillRadar 服务,会返回错误信息:
{ "candidates": [], "note": "无法连接到 SkillRadar 服务: <错误原因>" }
任务目标不明确
如果任务目标或约束不明确,可以提示用户进一步确认或补充信息。