SkillHub

skill-install-guard

v1.0.0

安全拦截型技能,确保安装任何技能前都经过 skill-vetter 的安全审查,输出审查报告并要求用户明确确认,禁止私自安装。

Sourced from ClawHub, Authored by dongyulin89

Installation

Please help me install the skill `skill-install-guard` from SkillHub official store. npx skills add dongyulin89/skill-install-guard

Skill Install Guard

Overview

这是安装技能的安全守门员。当用户请求安装任何技能时(通过 clawhub install、URL 或其他方式),这个技能会:

  1. 拦截安装请求:暂停任何自动安装行为
  2. 审查技能代码:使用 skill-vetter 进行安全检查
  3. 报告审查结果:提供详细的安全风险评估
  4. 确认用户意图:要求饲养员明确同意安装
  5. 执行安装操作:只有在用户确认后才执行

核心理念:没有明确的用户授权,绝不安装任何技能。

触发条件

当用户请求以下操作时触发此技能:

"安装技能 <skill-name>"
"下载技能 <skill-id>"
"clawhub install <skill>"
"从 ClawHub 安装..."
"安装这个技能"

安装审查流程

第 1 步:识别安装请求

当用户请求安装技能时,首先确认是否为安装意图:

  • 如果是查看/搜索技能 → 不触发此技能
  • 如果是安装技能 → 触发此技能并进入审查流程

识别示例: - ✅ "安装 skill-creator" → 触发 - ✅ "用 clawhub 安装 weather" → 触发 - ✅ "下载 ID 为 xxx 的技能" → 触发 - ❌ "搜索天气相关的技能" → 不触发 - ❌ "看看 skill-creator 做什么的" → 不触发

第 2 步:暂停并告知用户

立即停止任何安装操作,告知用户安全审查即将开始:

🦐 停住!准备安装技能前,我们需要先进行安全审查。
这将使用 skill-vetter 检查技能代码的安全性和风险等级。

第 3 步:调用 skill-vetter

使用 skill-vetter 进行安全审查:

如果技能已在本地 workspace

# 直接审查本地技能文件夹
cd $WORKSPACE/skills/<skill-name>
# 读取 SKILL.md 和所有代码文件
# 根据 skill-vetter/SKILL.md 的审查标准进行检查

如果技能未下载

# 先获取技能信息
clawhub info <skill-id> --format json
# 根据信息决定是否下载后审查
# 或者直接使用 skill-vetter 的在线审查功能(如果可用)

必要操作: 1. 读取并加载 skill-vetter 的 SKILL.md(路径通常在 ~/.openclaw/workspace/skills/skill-vetter/SKILL.md 或类似位置) 2. 按照 skill-vetter 技能文档中的审查标准逐项检查 3. 记录所有发现的安全问题

第 4 步:输出审查报告

生成结构化的审查报告,包含以下内容:

基本信息: - 技能名称和版本 - 来源(ClawHub ID 或 URL) - 发布者信息(如果可用)

审查结果: - 风险等级:🟢 低 / 🟡 中 / 🔴 高 / 🚨 极端 - 发现的问题列表(按严重程度排序) - 权限需求评估

详细检查项(基于 skill-vetter 标准): - [ ] 来源可信度检查 - [ ] 可疑模式检测(URL、凭证、系统文件访问) - [ ] 权限范围评估 - [ ] 外部依赖分析 - [ ] 代码复杂度评估

报告示例

🔍 **Skill 审查报告**

**技能**:skill-creator v1.0.0
**来源**:ClawHub (official)
**风险等级**:🟢 低

**审查项**:
✅ 来源可信:官方技能,签名验证通过
✅ 无可疑模式:未检测到凭证窃取、硬编码密钥等
✅ 权限正常:仅文件读写,无网络请求
⚠️ 外部依赖:需要 Python 运行时

**详细发现**:
- 技能文档清晰完整
- 代码结构合理
- 无执行外部命令的脚本
- 文件操作限制在 workspace 之内

**建议**:可以安全安装

---

第 5 步:请求用户确认

显示审查报告后,明确要求用户确认

🦐 以上是安全审查结果。

**请确认:你是否允许安装此技能?**

回复以下之一:
- "确认安装" 或 "安装" 或 "yes" → 执行安装
- "取消" 或 "不安装" 或 "no" → 停止操作
- "更多信息" → 提供更详细的审查说明

等待你的明确指令...

重要规则: - ⚠️ 不得在用户确认前执行任何安装操作 - ⚠️ 不得预设用户的同意(不要说"如果你同意,我就安装") - ⚠️ 必须得到明确的"确认"或类似的肯定回复 - ⚠️ 如果用户回复"更多信息",提供更多细节,然后再次请求确认

第 6 步:执行安装

只有收到用户的明确确认后才执行安装:

确认词包括: - "确认安装" - "安装" - "yes" - "好的" - "继续" - "可以" - 同样肯定的中文或英文表达

执行安装

clawhub install <skill-id>

安装后: - 告知用户安装成功 - 建议用户查看安装日志(如有问题)

第 7 步:处理取消请求

如果用户回复取消或否定:

  • ⛔ 停止所有安装操作
  • 📝 记录取消操作到 memory(可选)
  • 🦐 告知用户操作已取消

取消词包括: - "取消" - "不安装" - "no" - "算了" - 同样否定的中文或英文表达

特殊场景处理

场景 1:批量安装请求

如果用户请求一次安装多个技能:

用户:"同时安装 skill-creator, weather, 和这三个技能"

处理方式: 1. 告知用户:每次只能安装一个技能 2. 询问优先安装哪一个 3. 对每个技能逐一进行审查流程

场景 2:从 URL 安装

如果用户提供 GitHub 或其他 URL:

用户:"从 https://github.com/xxx/skill.git 安装"

处理方式: 1. 告知用户:非 ClawHub 来源的技能需要更严格的审查 2. 询问:是否继续 3. 如果继续,先克隆或下载到临时位置 4. 使用 skill-vetter 严格审查(高风险假设) 5. 报告时强调"非官方来源"风险

场景 3:审查失败

如果 skill-vetter 无法完成审查:

处理方式: 1. 告知用户:审查过程遇到问题 2. 提供错误信息摘要 3. 询问: - 是否重试审查 - 是否停止安装(推荐选项) 4. 如果用户坚持安装: - 再次警告风险 - 要求明确确认"我理解风险,坚持安装" - 记录到 memory(跳过审查风险的案例)

场景 4:技能更新

如果用户请求更新现有技能:

用户:"更新 skill-creator"

处理方式: 1. 视为"新安装"请求,执行完整审查流程 2. 报告时对比"当前版本"和"新版本" 3. 强调更新的变更内容(如果可能)

记录和追踪

安装历史

每次安装操作(成功或失败)都可以记录到 memory 文件中:

建议格式memory/skill-install-history.md):

## [日期] 技能安装记录

### 技能名称
- **版本**:1.0.0
- **来源**:ClawHub (xxx)
- **风险等级**:🟢 低
- **审查结果**:通过
- **用户决定**:确认安装
- **安装时间**:2026-03-10 09:15:00
- **操作结果**:成功

### 技能名称
- **版本**:2.1.0
- **来源**:GitHub (xxx/skill)
- **风险等级**:🔴 高
- **审查结果**:发现高风险代码
- **用户决定**:取消安装
- **操作结果**:已取消

何时记录: - ✅ 安装成功 - ✅ 安装失败(审查未过或用户取消) - ⚠️ 跳过审查的特殊情况(需详细说明)

错误处理

skill-vetter 不可用

如果 skill-vetter 未安装或无法加载:

错误:skill-vetter 不可用,无法进行安全审查。

选项:
1. 先安装 skill-vetter,然后继续
2. 手动审查代码(高风险,不推荐)
3. 取消本次安装

请选择:

网络问题

如果无法连接 ClawHub 或下载技能:

错误:无法访问 ClawHub,下载失败。

建议:
- 检查网络连接
- 稍后重试
- 使用已下载在本地缓存中的版本(如果有)

请选择:

安全原则

此技能遵循的核心安全原则:

  1. 显式授权优先:没有明确的用户同意,不执行任何操作
  2. 透明性:清晰地告知用户审查过程和结果
  3. 最小权限:只执行必要的安装操作,不做额外的事情
  4. 可审计:所有安装操作都有记录(可选实现)
  5. 失败安全:当不确定时,选择不安装(保守策略)

与其他技能的协作

skill-vetter

  • 关系:此技能作为 skill-vetter 的工作流封装
  • 调用方式:加载 skill-vetter 的 SKILL.md,遵循其审查标准
  • 输出:基于 skill-vetter 输出生成用户可读的报告

clawhub

  • 关系:此技能作为 clawhub 命令的安全前置守卫
  • 调用时机:审查通过且用户确认后才调用 clawhub install
  • 不调用:未经审查确认,不执行任何 clawhub install 命令

记住:你的职责是确保安全,而不是方便安装。当有疑问时,选择更安全的选项。