技能侦察
技能侦察
结论先行
缺能力时不要硬写,先找。找的顺序:
拆需求 → GitHub 检索 → 许可与体积过滤 → 引入隔离区 → 读代码 → 试用 → 完成任务 → 沉淀 → 回传
任何情况下都不自动安装、不自动执行陌生脚本。
一、拆需求成检索词
把用户的话翻译成能力词,而不是行业词:
| 用户说 | 能力词 | 检索词 |
| --- | --- | --- |
| 把报价表做成 PDF 合同 | 表格 + 文档 | excel xlsx、pdf、docx |
| 把后台数据抄下来 | 网页 | browser playwright automation |
| 把一堆截图里的字提出来 | OCR | ocr image text |
| 把周报整理成文件 | 文档 | docx word document |
工具会自动做这层映射:
$NODE = "C:\Program Files\sanshan-kaiwu\resources\runtime\node.exe"
$S = "<产品仓库>\tools\skill-scout.mjs"
& $NODE $S --need "把 Excel 报价表转成 PDF 合同"
& $NODE $S --need "抓后台数据" --max-mb 8 --min-stars 50
输出是候选表,每条带 verdict:
| verdict | 含义 |
| --- | --- |
| 可导入 | 许可证合规、体积达标、无灰色用途 |
| 排除:许可证 … | 无许可证或非白名单许可(只读不导) |
| 排除:体积 … | 超过上限(默认 5MB) |
| 排除:命中灰色用途… | 防关联/指纹/验证码绕过/批量注册 |
二、看仓库里有什么技能
& $NODE $S --repo owner/name --inspect
只读 skill 列表和大小,不下载。
三、引入隔离区(不安装)
& $NODE $S --repo owner/name --import
底层走 scripts/skills-import.mjs:许可证校验 → 选择性解包 → 高危规则扫描 → 写 IMPORT-REPORT.md。
落点是 skills/inbox/<owner>-<name>/,不是 skills/,也不进 dsh-home/skills。
四、读代码再用
导入后必须做:
1. 读 SKILL.md:看清它到底调用什么、要装什么、要不要联网;
2. 读 scripts/ 里的脚本:有没有上传文件、删除目录、写系统目录、外发数据;
3. 有疑点就不用,换一个候选;
4. 试用时先在临时目录跑,不碰用户真实文件。
五、完成任务
用选中的技能把用户的事做完。能用现成技能就直接用,不要为了"自主"重新发明。
六、沉淀与回传
任务收尾按 skill-distiller 走:
1. 判断值不值得沉淀(以后还会做 / 踩过坑 / 有判断);
2. 写 skills/<name>/SKILL.md,只写这次真实跑通的步骤;
3. node scripts/skills.mjs validate + install;
4. 回传:打成匿名包(去路径、邮箱、令牌),交给公司技能中继:
node scripts/skills-submit.mjs
已验证记录
2026-11-03 · 第一次实战
| 步骤 | 结果 |
| --- | --- |
| 需求 | "把 Excel 报价表转成 PDF 合同" |
| 检索 | --need 自动映射出 excel/xlsx、pdf、docx 三组查询 |
| 候选 | 检出 appautomaton/document-SKILLs(MIT,0.6MB,★180) |
| 过滤 | verdict = 可导入(其余候选多因体积/许可证被排除) |
| 预览 | --inspect 读到 4 个技能:docx / pdf / pptx / xlsx |
| 导入 | 落 skills/inbox/appautomaton-document-skills,4 个技能,0 高危命中 |
这条链路证明:缺能力 → 15 分钟内找到可用的 → 进隔离区待审。
红线
| 不做 | 原因 |
| --- | --- |
| 自动安装到 dsh-home/skills | 未经确认的技能可能带外发/删除逻辑 |
| 无许可证仓库复制代码 | 版权风险 |
| 引入防关联/指纹/验证码绕过类技能 | 合规风险,客户也会怕 |
| 直接执行陌生仓库的脚本 | 等于让陌生人跑你的电脑 |
| 把用户数据传给第三方服务 | 违背"数据不出本机" |
验收清单
- [ ] 需求已拆成 2-4 组检索词,不是直接用原句搜
- [ ] 候选表里至少一条
verdict = 可导入 - [ ] 引入前看过
--inspect的技能清单 - [ ] 读过 SKILL.md 与 scripts,确认无外发/删除行为
- [ ] 试用在临时目录,未碰用户真实文件
- [ ] 任务完成后写清"用了哪个技能、哪几步、结果如何"
- [ ] 沉淀的技能只含跑通过的步骤,未验证的标注「未验证」
- [ ] 回传包已匿名化(无路径、邮箱、令牌)