What you need to do
When this skill is triggered, you only need to complete three steps:
- Extract the task goal and task constraints from the user's question, and organize the keywords.
- Call the
scripts/discover.pyscript to query the SkillRadar service for matching skills. - Based on the returned candidate results, present the relevant information to the user, and automatically install the skill according to permissions, or confirm with the user whether to install it in uncertain and high-risk situations.
Input
Task goal (required)
- Task goalis the action or task you want the skill to complete. Expressing the goal of the task clearly helps SkillRadar understand your needs.
- Examples: merge files, extract data, generate reports, process images, create accounts, etc.
Task constraints (optional)
- Constraintsare the limiting conditions on the task goal. They determine the acceptable range of conditions when executing the task.
- Examples:
- The task must run locally (no internet access allowed)
- A specific output format must be generated (such as CSV, JSON)
- Specific permissions or tool support are required during data processing
Keywords (optional)
- Just extract 3 to 10 keywords from the user's needs.
- Separate keywords withcommas, and keep them short and intuitive.
- Keywords are recommended to cover:
- Task object/domain (such as pdf, excel, health, calendar, legal, research)
- Key actions (such as extract, summarize, merge, audit, deploy)
- Key formats/tools (such as markdown, csv, sql, api)
Number of candidates (optional)
- Indicates how many candidate results you want returned.
- If the user does not specify, the default is 5.
How to execute the script
This skill must execute the query through its bundled script.
- Script path:
scripts/discover.py(relative to the directory where this SKILL.md is located) - Working directory during execution: You must first switch to the directory where this skill is located (that is, the directory containing this SKILL.md), then execute the script
- Example invocation method:
# 先 cd 到本 skill 目录,再执行脚本
cd <本skill所在目录> && python scripts/discover.py --task_goal "合并多个文件" --task_constraints "必须支持 PDF、必须支持批量处理" --keywords "pdf, merge, batch" --max_results 5
Output
The list of candidate skills returned by the server contains the following fields:
- candidates: list of candidate skills (arranged in recommended order, with the first item most recommended)
- skillradar_id: UUIDv4 (uniquely identifies each candidate skill)
- name: skill name
- description: one-sentence description of the skill's function
- score: match score (0-1, higher is a better match)
- match_reasons: list of match reasons (such as "intent match: 0.85", "keyword hits: summary, summarize")
- install_url: the skill's installation address (visit this URL directly to obtain the skill file)
- note: supplementary notes (used to indicate missing information/uncertainty/risk points)
Example output 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": ""
}
How to install the skill
install_url points to the skill's ZIP archive address (such as https://cdn.skillradar.quest/skills/xxx/skill.zip?v=1738300000)。
About the ?v= parameter: This is a timestamp used to bypass CDN caching, ensuring that you download the latest version. Please keep this parameter and do not delete it.
Installation Steps:
- Ask the user whether to install to the project-level directory (under the current working directory, such as
./xxx/skills/) or the global directory (under the user's home directory, such as~/xxx/skills/) - Based on your own tool type, choose the correct installation path:
- Claude Code: project-level
.claude/skills/, global~/.claude/skills/ - OpenCode: project-level
.opencode/skills/, global~/.config/opencode/skills/ - Codex CLI: project-level
.codex/skills/, global~/.codex/skills/ - Gemini CLI: project-level
.gemini/skills/, global~/.gemini/skills/
- Claude Code: project-level
- Download the
install_urlpointed to byskill.zipfile (keep the full URL, including the?v=parameter) - Extract the ZIP file to the corresponding directory (the first level of the ZIP is the skill name directory)
- Delete the ZIP archive
- Verify whether the file structure is correct (it should contain SKILL.md)
Example of the ZIP internal structure:
skill.zip
└── extract-action-items/
├── SKILL.md
├── scripts/
│ └── ...
└── references/
└── ...
Result Evaluation
Vector retrieval always returns results, but the returned skills may not actually suit the user's needs. You need to:
- Read each candidate skill's
nameanddescription, and determine whether it can really solve the user's problem - If all candidate skills are unrelated to the user's needs, you should honestly tell the user "no suitable skill was found" rather than forcing an irrelevant one
- If you are unsure whether a certain skill is suitable, you can explain the situation to the user and let the user decide
Error and Exception Handling
No matching candidate skill found
When the query returns no matches, return an empty result:
{
"candidates": [],
"note": "未找到匹配的技能,请尝试补充更具体的任务目标或关键词。"
}
Service unavailable
If it cannot connect to the SkillRadar service, it will return an error message:
{
"candidates": [],
"note": "无法连接到 SkillRadar 服务: <错误原因>"
}
Task objective unclear
If the task objective or constraints are unclear, you can prompt the user to further confirm or provide additional information.