From skill-selector
通用 skill 选择器。通过 ai-skills CLI 下载候选 skill 源码到临时目录,基于 SKILL.md + 代码的深度分析构建决策树,引导用户在 1-3 轮交互内选定最合适的 skill。当用户面对多个功能相近的 skill 不知选哪个时触发。
How this skill is triggered — by the user, by Claude, or both
Slash command
/skill-selector:skill-selectorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<!-- 兼容性: Claude Code / Trae Solo / Agent Skills 标准 -->
通过 5 步流程引导用户选定最合适的 skill:获取候选源码 → 深度提取 → 动态维度推导 → 交互式收窄 → 对比矩阵推荐。
与仅依赖搜索结果简述的"简版决策树"不同,本流程将候选 skill 下载到临时目录后,基于 SKILL.md 全文 + 代码实现 + 配置文件进行深度分析,确保对比矩阵的每一项都有源码级可追溯依据。
用户提供 skill 候选列表,支持以下格式:
argos,通过 ai-skills find 搜索并筛选候选argos-log, argos-query,直接作为候选ai-skills add anthropics/skills --source github --skill skill-creator,直接解析执行输入: skill 候选(关键词 / 名称 / 安装命令 / 路径)
│
▼
Step 0: 获取候选源码 → 临时目录
│ ai-skills find(搜索)→ ai-skills add --dir(下载)
▼
Step 1: 深度提取 → 结构化摘要(SKILL.md + 代码 + 配置)
│
▼
Step 2: 预构建完整决策树(含叶节点对比矩阵)
│
▼
Step 3: 沿决策树交互 → 用户选择即时下探,命中已有分支零延迟
│
▼
Step 4: 到达叶节点 → 输出预计算的对比矩阵 + 推荐
│
▼
清理: 删除临时目录
关键设计原则:Step 0 + Step 1 一次性完成下载和分析。Step 2 一次性完成决策树构建。Step 3 不做任何新的分析,只是沿预构建的树遍历。用户每次选择后应立即呈现下一层选项或最终结果,无需等待额外计算。
当输入为搜索关键词时,执行:
ai-skills find <关键词> --pure
解析输出,提取每个命中结果的:
argos-log)v0.2.0)ai-skills add liuweiming/skills --skill argos-log --source local --pure)如有多页结果(输出末尾含 Next: ai-skills find ... --page N),继续翻页直到收集完毕。
在下载前进行轻量初筛,排除明显不相关的候选:
为本次分析创建临时目录,将所有候选 skill 下载到其中:
tmpdir=$(mktemp -d -t skill-selector-XXXXXX)
ai-skills add <repo> --skill <name> --source local --dir "$tmpdir" --pure --yes
每个 skill 下载后在临时目录中的结构:
$tmpdir/
├── argos-log/
│ ├── SKILL.md
│ ├── assets/
│ │ └── config.json
│ └── references/
│ └── ...
├── argos-query/
│ ├── SKILL.md
│ └── ...
└── ...
ai-skills login)当输入已是路径列表时,跳过 Step 0 的搜索和下载步骤,直接使用指定路径进入 Step 1。
对临时目录中的每个候选 skill,按以下顺序读取并分析:
.sh、.py、.js、.ts 等),提取:
bytedcli、gdpa-cli、argos)assets/、references/、config.* 等目录/文件:
对每个候选 skill 的全部内容,提取以下结构化摘要:
{
"name": "skill 名称(取 frontmatter name 字段)",
"version": "版本号",
"one_liner": "一句话说明(≤30 字)",
"domain": "所属领域(如 SRE、前端开发、数据库、DevOps、测试…)",
"capabilities": [
"能力描述 1(动词开头)",
"能力描述 2",
"能力描述 3"
],
"prerequisites": [
"前置条件(安装/配置/权限),没有则为空数组"
],
"trigger_patterns": ["触发词 1", "触发词 2"],
"input_format": "接受的输入格式",
"output_format": "输出格式",
"unique_strengths": ["独有优势 1"],
"known_limitations": ["已知限制 1"],
"implementation": {
"external_tools": ["实际调用的外部命令列表(从代码中提取)"],
"env_vars": ["依赖的环境变量"],
"core_logic": "核心逻辑概述(从代码中提取的实际流程)",
"file_count": "skill 包含的文件数量",
"code_quality_signals": ["代码质量信号:有无错误处理、日志、重试等"]
}
}
对每个候选 skill 目录执行以下分析:
给定以下 skill 的完整内容(SKILL.md + 代码文件 + 配置文件),提取结构化摘要。
字段定义:
- name: skill 名称(取 frontmatter name 字段)
- version: 版本号(取 frontmatter 或搜索结果)
- one_liner: 一句话说明这个 skill 做什么(不超过 30 字)
- domain: 所属领域(如 SRE、前端开发、数据库、DevOps、测试…)
- capabilities: 该 skill 能做什么(3-5 条,动词开头)
- prerequisites: 使用前需要什么(安装、配置、权限等,没有则为空数组)
- trigger_patterns: 什么样的用户输入应该触发这个 skill
- input_format: 接受什么格式的输入
- output_format: 输出什么格式的结果
- unique_strengths: 相比同类 skill 的独有优势
- known_limitations: 已知限制
- implementation.external_tools: 代码中实际调用的外部命令(grep 代码提取,非猜测)
- implementation.env_vars: 代码中引用的环境变量
- implementation.core_logic: 从代码中提取的实际执行流程(不是 SKILL.md 描述,是代码实现)
- implementation.file_count: 文件数量
- implementation.code_quality_signals: 代码质量信号
输出纯 JSON,不要解释。
拿到所有候选的结构化摘要后,一次性完成维度分析、决策树构建和叶节点对比矩阵预计算。此步骤结束后,后续交互所需的全部数据均已就绪。
| 维度 | 来源字段 | 示例 |
|---|---|---|
| 领域/场景 | domain, capabilities | SRE / 前端 / 数据库 |
| 覆盖范围 | one_liner, capabilities | 国内 / 海外 / 全量 |
| 操作粒度 | capabilities | 原始查询 / 诊断分析 / 配置管理 |
| 前置成本 | prerequisites | 零配置 / 需 CLI / 需登录 |
| 工具链 | prerequisites, input_format | byte-cli / argos cli / curl |
| 输出形式 | output_format | 文本 / JSON / 自动存文件 |
维度从摘要中动态推导,上表仅为参考。LLM 应根据实际摘要内容识别最有区分力的维度。
按区分力排序:优先选择能把候选集切分为最均匀子集的维度。
评估标准:
递归构建完整决策树,包含所有分支路径直到叶节点:
构建的决策树必须符合以下结构,在后续交互中直接引用:
{
"type": "decision",
"dimension": "场景",
"question": "你的主要需求是?",
"branches": {
"日志查询": {
"skills": ["argos-log", "argos-query", "argos-tools", "argos-log-i18n", "bytedance-log-i18n"],
"child": {
"type": "decision",
"dimension": "区域",
"question": "你需要查询哪个区域的日志?",
"branches": {
"国内": {
"skills": ["argos-log", "argos-query", "argos-tools"],
"child": {
"type": "leaf",
"skills": ["argos-log", "argos-query", "argos-tools"],
"comparison_matrix": { "...预计算的对比矩阵..." : "..." },
"recommendation": { "pick": "argos-tools", "reason": "..." }
}
},
"海外": {
"skills": ["argos-log-i18n", "bytedance-log-i18n"],
"child": {
"type": "leaf",
"skills": ["argos-log-i18n", "bytedance-log-i18n"],
"comparison_matrix": { "...预计算的对比矩阵..." : "..." },
"recommendation": { "pick": "argos-log-i18n", "reason": "..." }
}
}
}
}
},
"综合诊断": {
"skills": ["argos"],
"child": {
"type": "leaf",
"skills": ["argos"],
"recommendation": { "pick": "argos", "reason": "唯一候选" }
}
}
}
}
节点类型:
每个叶节点在构建时就完成以下预计算:
当候选 = 1 个:
当候选 = 2~3 个:
零延迟下探:用户每次选择后,直接读取预构建决策树中对应分支的子节点,立即呈现下一层选项或最终结果。不做任何新的分析或计算。
从决策树根节点开始:
branches[选择].child每轮交互需要告知用户:
到达叶节点(候选 ≤ 3 个)时触发,直接输出 Step 2 中预计算的结果。
| 维度 | skill-A | skill-B | skill-C |
|------|---------|---------|---------|
| 定位 | ... | ... | ... |
| 独有能力 | ✅ X | ❌ X | ✅ X |
| 前置条件 | 需 argos cli | 需 byte-cli | 零依赖 |
| 输出方式 | JSON | 自动存文件 | 文本 |
| 亮点 | ... | ... | ... |
| 限制 | ... | ... | ... |
| 情况 | 处理 |
|---|---|
| 输入为空 | 提示用户提供 skill 候选列表或搜索关键词 |
ai-skills CLI 未安装 | 提示用户执行 npm i -g @tiktok-fe/skills 安装 |
| 搜索无结果 | 告知用户换关键词重试,或直接提供 skill 路径 |
| 单个 skill 下载失败 | 标记为「⚠️ 下载失败」,继续处理其余候选 |
| 全部下载失败 | 告知用户检查 ai-skills login 登录状态和网络 |
| skill 目录中无 SKILL.md | 标记为「⚠️ 缺少 SKILL.md」,尝试从目录中其他文件推断能力 |
| 只有 1 个有效候选 | 直接输出该 skill 的深度摘要和使用方法,跳过交互 |
| 所有候选完全相同 | 告知用户这些 skill 功能等价,任选一个即可 |
| 候选 > 15 个 | 警告下载和分析耗时较长,建议先通过初筛缩小范围 |
| 有效候选经过跳过后为 0 | 告知用户所有候选均无法分析,检查关键词或路径 |
rm -rf "$tmpdir"/tmp/skill-selector-*),由操作系统定期清理以下展示一个从搜索关键词出发,经过下载、深度分析、决策树交互,最终选定 1 个 skill 的完整流程。
请帮我选一个查 argos 日志的 skill
🔍 搜索: ai-skills find argos --pure
命中 10 个结果(2 页),翻页收集完毕。
📋 初筛结果(排除明显不相关):
✅ 保留 8 个: argos-log, argos, argos-log-i18n, argos-query, argos-tools,
bytedance-log-i18n, bytedance-apm, modify-argos-alarm-rule
❌ 排除 2 个: dh-ops-debug-job-failure(DH 任务调试,与日志查询无关)
hornbill-dev(工单平台开发,与 argos 无关)
📦 下载到临时目录: /tmp/skill-selector-a1b2c3/
✅ argos-log (2 files)
✅ argos (1 file)
✅ argos-log-i18n (3 files)
✅ argos-query (1 file)
✅ argos-tools (1 file)
✅ bytedance-log-i18n (4 files)
✅ bytedance-apm (2 files)
✅ modify-argos-alarm-rule (2 files)
✅ 下载并深度分析了 8 个候选 skill(SKILL.md + 代码 + 配置)。
✅ 决策树构建完成(2 层深度,覆盖全部 8 个候选的所有路径)。
🧹 临时目录已清理。
决策树概览:
├── 日志查询 (5)
│ ├── 国内 (3) → [argos-log, argos-query, argos-tools] → 对比矩阵已就绪
│ └── 海外 (2) → [argos-log-i18n, bytedance-log-i18n] → 对比矩阵已就绪
├── 综合诊断 (1) → argos → 直接推荐
├── 指标监控 (1) → bytedance-apm → 直接推荐
└── 报警管理 (1) → modify-argos-alarm-rule → 直接推荐
→ AskUserQuestion: 你的主要需求是?
选项: 日志查询(5) / 综合诊断(1) / 指标监控(1) / 报警管理(1)
日志查询类 5 个 skill,按区域分为:
→ AskUserQuestion: 你需要查询哪个区域的日志?
选项: 国内(3) / 海外(2)
| 维度 | argos-log | argos-query | argos-tools |
|------|-----------|-------------|-------------|
| 定位 | byte-cli 日志查询 | gdpa-cli 日志查询 | argos CLI 日志工具 |
| 工具链(代码验证) | bytedcli log | gdpa-cli argos-query | argos log.* 子命令 |
| 查询模式 | TraceQuery + KeywordQuery | Keyword + LocalFile + LogID | log.* 子命令 |
| 前置条件 | 需安装 byte-cli + 浏览器登录态 | 需安装 gdpa-cli | 需安装 argos CLI + 扫码登录 |
| 输出方式 | JSON(需 output-filter) | 结构化 JSON | 文本(大输出自动存文件) |
| 独有优势 | 精确 KV 过滤、分页 | 三种模式自动切换、PPE 支持 | 自动保存大输出、简洁命令 |
| 代码质量 | ✅ 错误处理完善 | ✅ 多模式分支清晰 | ⚠️ 较简单 |
**推荐: argos-tools**
理由: 命令最简洁,自动处理大输出,适合日常快速查询。如果需要精确过滤条件用 argos-log,需要 PPE 本地日志用 argos-query。
(以上对比基于源码级分析,非简述推断)
因为该分支只有 1 个 skill(argos),直接输出推荐,无需进入对比矩阵:
综合诊断类只有 1 个候选: argos
**推荐: argos**
使用方法: 直接描述服务问题,argos 会自动进行多维度诊断分析...
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub luw2007/skills --plugin skill-selector