uvwt/skill-installation
审查、安装、配置、激活、验证、更新和回滚 AgentDock Skill 时使用;负责来源校验、安全评估、环境配置和已安装版本验收。
npx skills add https://github.com/uvwt/agentdock --skill skill-installation
用于把本地或外部 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 类型;环境值统一保存在:
~/.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 自身不需要环境变量。它只负责通过 skill_package 管理目标 Skill 的独立环境。
只有同时满足以下条件才算完成:
blocked 项;skill_package validate 通过;agentdock_context 和 skill:// 验证通过;status 通过;Take uvwt/skill-installation from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.