Skill: dongyulin89/skill-install-guard (version 1.0.0)

--- name: skill-install-guard description: 安全拦截型技能，确保安装任何技能前都经过 skill-vetter 的安全审查，输出审查报告并要求用户明确确认，禁止私自安装。 --- # 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**： ```bash # 直接审查本地技能文件夹 cd $WORKSPACE/skills/<skill-name> # 读取 SKILL.md 和所有代码文件 # 根据 skill-vetter/SKILL.md 的审查标准进行检查 ``` **如果技能未下载**： ```bash # 先获取技能信息 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、凭证、系统文件访问） - [ ] 权限范围评估 - [ ] 外部依赖分析 - [ ] 代码复杂度评估 **报告示例**： ```markdown 🔍 **Skill 审查报告** **技能**：skill-creator v1.0.0 **来源**：ClawHub (official) **风险等级**：🟢 低 **审查项**： ✅ 来源可信：官方技能，签名验证通过 ✅ 无可疑模式：未检测到凭证窃取、硬编码密钥等 ✅ 权限正常：仅文件读写，无网络请求 ⚠️ 外部依赖：需要 Python 运行时 **详细发现**： - 技能文档清晰完整 - 代码结构合理 - 无执行外部命令的脚本 - 文件操作限制在 workspace 之内 **建议**：可以安全安装 --- ``` ### 第 5 步：请求用户确认 显示审查报告后，**明确要求用户确认**： ``` 🦐 以上是安全审查结果。 **请确认：你是否允许安装此技能？** 回复以下之一： - "确认安装" 或 "安装" 或 "yes" → 执行安装 - "取消" 或 "不安装" 或 "no" → 停止操作 - "更多信息" → 提供更详细的审查说明 等待你的明确指令... ``` **重要规则**： - ⚠️ 不得在用户确认前执行任何安装操作 - ⚠️ 不得预设用户的同意（不要说"如果你同意，我就安装"） - ⚠️ 必须得到明确的"确认"或类似的肯定回复 - ⚠️ 如果用户回复"更多信息"，提供更多细节，然后再次请求确认 ### 第 6 步：执行安装 只有收到用户的**明确确认**后才执行安装： **确认词包括**： - "确认安装" - "安装" - "yes" - "好的" - "继续" - "可以" - 同样肯定的中文或英文表达 **执行安装**： ```bash 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`）： ```markdown ## [日期] 技能安装记录 ### 技能名称 - **版本**：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 命令 --- **记住：你的职责是确保安全，而不是方便安装。当有疑问时，选择更安全的选项。**

path: _meta.json
content: slug: skill-install-guard
version: 1.0.0

Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)