Install any skill in seconds. Free to start, no credit card required.
Get Started Free →审查、安装、配置、激活、验证、更新和回滚 AgentDock Skill 时使用;负责来源校验、安全评估、环境配置和已安装版本验收。
.claude/skills/uvwt-skill-installation/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | -31% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 3% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 136% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 67% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 116% | 0% |
用于把本地或外部 Skill 安全地纳入当前 AgentDock,并验证当前激活版本确实可用。Skill 只提供审查和安装流程;真实读取、校验、配置、安装、命令执行、回滚和卸载由工具完成。
使用本 Skill 处理:
不要使用本 Skill 创建新 Skill、重写核心设计、替作者决定业务边界,或大范围修改第三方包。需要修改源码、补测试、升级文档或重新设计时,切换到 skill-authoring。
完整安全审查规范见 skill://skill-installation/references/skill-security-review.md。
skill_package validate 当作完整安全审计。先记录:
远程来源优先要求可信发布页和可验证摘要。URL 认证信息、查询参数和片段不得写入报告或日志。
在隔离的临时审查位置查看包,不直接从未知目录运行脚本。至少读取:
SKILL.md;references/;只读检查不应加载包内环境文件、不应执行安装钩子,也不应运行未知脚本。
确认:
SKILL.md;name、description、version;name 稳定且与安装目标一致;description 能明确触发场景;version 是语义化版本;发现 agentdock.yaml、旧式统一执行协议或旧 Skill Runtime 设计时,至少标记为 blocked,不得直接安装。
逐项检查:
风险分类:
| 等级 | 含义 | 默认处理 | |---|---|---| | low | 纯文档或行为明确、只读、无敏感访问 | 可继续校验 | | medium | 有明确网络、写入或普通依赖,但范围可解释 | 展示风险后继续 | | high | 涉及敏感凭据、广泛文件访问、上传、删除或持久化 | 未经明确确认不安装 | | blocked | 存在不可接受或无法解释的危险行为 | 停止安装 |
必须阻止:
agentdock.yaml 旧清单。从 SKILL.md 中提取环境变量表,确认每个变量的:
config 或 secret 类型;环境值统一保存在:
text~/.agentdock/env/skill/<skill-name>.env
不得在以下位置新建环境文件:
~/.agentdock/skill-data/<skill-name>/;使用:
skill_package env_list 查看变量名称和配置状态;skill_package env_set 写入或更新用户明确提供的值;skill_package env_unset 删除指定变量。这些动作不应返回真实值。不要用手工散落环境文件代替正式工具。
辅助脚本应满足:
skill_action;code 和 message;status 默认只读;对脚本做语法或编译检查,并运行包内测试。首次审查未知脚本时,只有静态审查通过后才允许在受控环境中运行只读检查。
调用 skill_package validate 校验来源,必要时同时传入预期摘要。确认:
valid: true;校验只证明包满足 AgentDock 基础结构和安装约束,不替代前面的安全审查。
正式安装前向用户说明:
low 和可解释的 medium 风险可按用户原始安装意图继续。high 风险必须获得明确确认。blocked 不得继续。
使用 skill_package install,并遵循:
skill_package activate 显式激活已安装的目标版本;Activated 为真;安装完成后记录安装结果中的名称、版本、摘要和激活状态。
只配置用户明确提供或已获授权迁移的值。流程:
skill_package env_list 获取当前配置状态;skill_package env_set;env_list,只核对 configured 状态;配置动作与安装包版本分离。更新或回滚不应自动覆盖已有 Skill 环境。
至少验证:
skill_package install 返回成功并激活预期版本;active_version 与预期一致;agentdock_context 中出现正确名称和描述;read_file skill://<name>/SKILL.md 可读取,并显示预期版本正文;skill://<name>/... 读取;skill_package env_list 显示必填配置完整;不要只验证源码目录。skill:// 读取的是当前激活版本,是最终验收依据之一。
只有包包含辅助脚本和 status 能力时才执行:
exec_command 的 skill: "<skill-name>" 绑定当前激活版本的包根目录和独立环境;python3 run.py;{"skill_action":"status"};source 环境文件;纯文档 Skill 没有辅助脚本时,不虚构 status,以索引、正文、引用和环境状态验证为准。
更新前比较:
对新版本完整执行审查、校验、安装和验收,不因旧版本已可信而跳过差异审查。
使用 skill_package rollback 切换到上一已安装版本。回滚前确认旧版本仍存在,并说明回滚原因。
回滚后验证:
active_version 已切回预期版本;skill://<name>/SKILL.md 读取的是回滚版本;agentdock_context 描述与回滚版本一致;~/.agentdock/env/skill/<skill-name>.env 没有被覆盖;status 通过。若新旧版本共享状态格式不兼容,先停止并报告,不擅自删除或迁移数据。
使用 skill_package uninstall 管理已安装包:
version 时卸载整个非内置 Skill,包括全部已安装版本和版本选择状态;version 时只卸载指定版本;当前激活版本不能直接卸载,必须先显式激活其他版本;~/.agentdock/env/skill/<skill-name>.env 或 ~/.agentdock/skill-data/<skill-name>/,这些用户配置和运行数据需要独立管理。卸载后确认目标版本或 Skill 已不再出现在已安装列表中;保留的环境配置和私有运行数据不得被误删。
本 Skill 自身不需要环境变量。它只负责通过 skill_package 管理目标 Skill 的独立环境。
只有同时满足以下条件才算完成:
blocked 项;skill_package validate 通过;agentdock_context 和 skill:// 验证通过;status 通过;| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 16,468 | 19,378 | +18% | 1 | 1 | 0% | 2,992 | 4,351 | +45% | 0 | 0 | — |
case-02 | fail→fail | 31,427 | 6,239 | -80% | 1 | 1 | 0% | 2,791 | 3,855 | +38% | 0 | 0 | — |
case-03 | fail→fail | 17,213 | 10,275 | -40% | 1 | 1 | 0% | 1,894 | 3,571 | +89% | 0 | 0 | — |
case-04 | fail→fail | 25,267 | 20,127 | -20% | 1 | 1 | 0% | 4,765 | 5,799 | +22% | 0 | 0 | — |
case-05 | fail→pass | 35,842 | 9,082 | -75% | 1 | 1 | 0% | 5,007 | 3,440 | -31% | 0 | 0 | — |
case-06 | fail→pass | 30,138 | 6,656 | -78% | 1 | 1 | 0% | 3,605 | 3,718 | +3% | 0 | 0 | — |
case-07 | fail→pass | 16,610 | 19,435 | +17% | 1 | 1 | 0% | 2,144 | 5,051 | +136% | 0 | 0 | — |
case-08 | fail→pass | 17,581 | 7,071 | -60% | 1 | 1 | 0% | 2,436 | 4,070 | +67% | 0 | 0 | — |
case-09 | fail→pass | 21,622 | 19,846 | -8% | 1 | 1 | 0% | 2,494 | 5,385 | +116% | 0 | 0 | — |
case-10 | pass→pass | 16,397 | 17,380 | +6% | 1 | 1 | 0% | 2,546 | 4,463 | +75% | 0 | 0 | — |
case-11 | pass→pass | 13,555 | 14,221 | +5% | 1 | 1 | 0% | 2,038 | 4,043 | +98% | 0 | 0 | — |
case-12 | pass→pass | 12,578 | 11,954 | -5% | 1 | 1 | 0% | 1,711 | 3,803 | +122% | 0 | 0 | — |
case-13 | fail→pass | 16,759 | 13,803 | -18% | 1 | 1 | 0% | 2,757 | 5,060 | +84% | 0 | 0 | — |
case-14 | fail→fail | 12,770 | 16,871 | +32% | 1 | 1 | 0% | 2,061 | 4,639 | +125% | 0 | 0 | — |
case-15 | fail→pass | 21,205 | 17,332 | -18% | 1 | 1 | 0% | 2,485 | 4,490 | +81% | 0 | 0 | — |
case-16 | fail→pass | 16,369 | 15,429 | -6% | 1 | 1 | 0% | 2,474 | 4,616 | +87% | 0 | 0 | — |
case-17 | fail→fail | 18,062 | 17,492 | -3% | 1 | 1 | 0% | 2,168 | 4,587 | +112% | 0 | 0 | — |
case-18 | fail→pass | 15,152 | 15,921 | +5% | 1 | 1 | 0% | 2,519 | 4,681 | +86% | 0 | 0 | — |
case-19 | fail→fail | 19,225 | 10,684 | -44% | 1 | 1 | 0% | 2,418 | 3,140 | +30% | 0 | 0 | — |
case-20 | fail→fail | 18,535 | 12,446 | -33% | 1 | 1 | 0% | 2,271 | 4,928 | +117% | 0 | 0 | — |
case-21 | fail→pass | 21,759 | 23,495 | +8% | 1 | 1 | 0% | 2,383 | 5,553 | +133% | 0 | 0 | — |
case-22 | fail→pass | 17,980 | 15,624 | -13% | 1 | 1 | 0% | 2,905 | 4,542 | +56% | 0 | 0 | — |
case-23 | fail→pass | 22,871 | 14,964 | -35% | 1 | 1 | 0% | 2,529 | 4,376 | +73% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 21 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +52 percentage points is the difference between those two pass rates over the 21 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
The publisher has shipped newer versions since this run, so these numbers describe v1, not the version currently listed.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.