关于 skill-install
skill-install 是用于从 GitHub 仓库安装 Claude skills 的技能,面向管理 Claude 技能的用户。它先列出可选技能,再进行安全扫描,并按扫描结果处理安装。
主要功能
- 01解析 GitHub 仓库地址
- 02列出并选择仓库技能
- 03安装前进行安全扫描
- 04按安全结果确认或拒绝安装
- 05将批准的技能写入 Claude 目录
适用场景
- 01从 GitHub 仓库挑选技能安装
- 02检查技能中的恶意命令与凭据访问
- 03依据安全警告决定是否继续安装
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ stellarlinkco/ myclaude --skill skill-install安装后在 Claude Code 中输入/skill-install确认已加载。
附带文件references/security_scan_prompt.md
详细介绍
技能安装
概述
从 GitHub 仓库安装 Claude 技能,并通过内置的安全扫描防范恶意代码、后门和漏洞。
使用时机
当用户执行以下操作时触发此技能:
- 提供 GitHub 仓库 URL 并希望安装技能
- 要求“从 GitHub 安装技能”
- 希望浏览并选择仓库中的技能
- 需要向其 Claude 环境添加新技能
工作流
步骤 1:解析 GitHub URL
接受用户提供的 GitHub 仓库 URL。该 URL 应指向包含 skills/ 目录的仓库。
支持的 URL 格式:
https://github.com/user/repohttps://github.com/user/repo/tree/main/skillshttps://github.com/user/repo/tree/branch-name/skills
提取:
- 仓库所有者
- 仓库名称
- 分支(未指定时默认为
main)
步骤 2:获取技能列表
使用 WebFetch 工具从 GitHub 获取技能目录列表。
GitHub API 端点模式:
https://api.github.com/repos/{owner}/{repo}/contents/skills?ref={branch}
解析响应并提取:
- 技能目录名称
- 每个技能都应是包含 SKILL.md 文件的子目录
步骤 3:向用户展示技能
使用 AskUserQuestion 工具让用户选择要安装的技能。
设置 multiSelect: true 以允许多选。
为每个技能显示:
- 技能名称(目录名称)
- 简短描述(如 SKILL.md frontmatter 中有提供)
步骤 4:获取技能内容
对每个选中的技能,获取其目录中的所有文件:
- 获取技能目录的文件树
- 下载所有文件(SKILL.md、scripts/、references/、assets/)
- 保存完整的技能内容以供安全分析
使用 WebFetch 和 GitHub API:
https://api.github.com/repos/{owner}/{repo}/contents/skills/{skill_name}?ref={branch}
获取每个文件的原始内容:
https://raw.githubusercontent.com/{owner}/{repo}/{branch}/skills/{skill_name}/{file_path}
步骤 5:安全扫描
重要: 安装之前,必须对每个技能进行全面的安全分析。
从 references/security_scan_prompt.md 读取安全扫描提示词模板,并用它分析技能内容。
检查以下内容:
- 恶意命令执行 - eval、exec、subprocess 与 shell=True
- 后门检测 - 混淆代码、可疑网络请求
- 凭据窃取 - 访问
/.ssh、/.aws、环境变量 - 未经授权的网络访问 - 向可疑域名发送外部请求
- 滥用文件系统 - 破坏性操作、未经授权的写入
- 权限提升 - 尝试使用 sudo、修改系统
- 供应链攻击 - 可疑的软件包安装
输出安全分析结果,包含:
- 安全状态:SAFE / WARNING / DANGEROUS
- 风险级别:LOW / MEDIUM / HIGH / CRITICAL
- 详细发现,包括文件位置和严重程度
- 建议:APPROVE / APPROVE_WITH_WARNINGS / REJECT
步骤 6:用户决定
根据安全扫描结果:
如果为 SAFE(APPROVE):
- 直接继续安装
如果为 WARNING(APPROVE_WITH_WARNINGS):
- 向用户显示安全警告
- 使用 AskUserQuestion 确认:“检测到安全警告。是否要继续安装?”
- 选项:“是,仍要安装” / “否,跳过此技能”
如果为 DANGEROUS(REJECT):
- 显示关键安全问题
- 拒绝安装
- 说明该技能为何危险
- 如果严重程度为 CRITICAL,不要提供覆盖此决定的选项
步骤 7:安装技能
将获准安装的技能安装到 ~/.claude/skills/:
- 创建技能目录:
~/.claude/skills/{skill_name}/ - 写入所有技能文件并保留目录结构
- 确保文件权限正确(脚本具有可执行权限)
- 验证 SKILL.md 文件存在且 frontmatter 有效
使用 Write 工具创建文件。
步骤 8:确认
安装完成后,提供摘要:
- 成功安装的技能列表
- 跳过的技能列表(如有),并说明原因
- 位置:
~/.claude/skills/ - 后续步骤:“技能现在已可用。重启 Claude 或直接使用这些技能。”
使用示例
用户:“从 https://github.com/example/claude-skills 安装技能”
助手:
- 从代码库获取技能列表
- 展示可用技能:“skill-a”、“skill-b”、“skill-c”
- 用户选择“skill-a”和“skill-b”
- 对每个技能执行安全扫描
- skill-a:安全——继续安装
- skill-b:警告(会发起 HTTP 请求)——询问用户是否确认
- 将获准的技能安装到 ~/.claude/skills/
- 确认:“已成功安装:skill-a、skill-b”
安全说明
- 绝不跳过安全扫描——安装前始终分析技能
- 采取保守做法——如有疑虑,将其标记为警告并让用户决定
- 严重问题会阻止操作——严重级别的发现不可覆盖
- 保持透明——始终向用户展示安全扫描的发现
- 沙箱隔离——提醒用户,技能将以 Claude 的权限运行
资源
references/security_scan_prompt.md
包含详细的安全分析提示词模板,其中包括:
- 需要检查的完整安全类别列表
- 输出格式要求
- 安全、可疑和危险技能的分析示例
- 批准/拒绝建议的判断标准
执行安全扫描时,请加载此文件以确保分析全面。