Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Skill Registry Manager

v1.1.0

管理和安装 Claude Code skills 的工具。Use when: 列出可用skills、有哪些skills、安装skill、管理skills、添加订阅、列出订阅、查看订阅、删除订阅、取消订阅。NOT for: 与 skill 管理无关的任务。

1· 189·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for gavinyao/skills-registry-manager.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Skill Registry Manager" (gavinyao/skills-registry-manager) from ClawHub.
Skill page: https://clawhub.ai/gavinyao/skills-registry-manager
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install skills-registry-manager

ClawHub CLI

Package manager switcher

npx clawhub@latest install skills-registry-manager
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
技能名称、描述与所需操作一致:维护 registry.yaml、列出/安装/管理 skills、支持 npx/git/local 安装与订阅管理,所描述的行为与实现指令相符。
!
Instruction Scope
SKILL.md 要求递归加载本地与远程订阅(可互相引用)、按订阅中定义的 install 字段运行 npx/git/cp 等命令,并在加载本地路径时读取文件内容;这些操作会使代理在不显著受限的情况下执行远程/第三方提供的安装命令并读取本机文件,扩大了攻击面。
Install Mechanism
技能本身无 install spec(仅为 instruction-only),这是较低的静态风险;但运行时隐含会执行 npx、git clone、cp 等命令——这些是功能需要但会导致代码下载与执行,因此风险取决于订阅源的可信度。
Credentials
技能不要求任何声明的凭据或环境变量,但说明中允许展开任意环境变量($HOME、$HOSTNAME、$USER 等)并基于它们解析路径。虽然这对实现路径解析有正当理由,但若恶意注册表引导读取敏感路径或构造路径引用敏感变量,会造成信息暴露。
Persistence & Privilege
没有设置 always:true,默认的自治调用也未单独放大权限;技能会修改其 registry.yaml(添加/删除订阅),这是其预期职责,未见要求修改其他技能或系统范围配置的说明。
What to consider before installing
这份技能在功能上自洽:它可以管理本地注册表并从远程/本地订阅加载 skills。但请注意: - 远程或第三方注册表可以包含任意 install 字段(npx 命令、git 仓库 URL、或本地路径引用),代理按指令会下载并执行这些安装步骤——这等同于允许第三方在你的机器上安装/执行代码。仅添加你完全信任的订阅源。 - 订阅加载是递归的:恶意注册表可以链式引用其他注册表,扩大影响范围。添加订阅前最好先用浏览器或手动 fetch 并审查注册表文件内容(尤其是 install 字段)。 - 本技能会展开环境变量并解析相对路径,这有助于路径解析,但也可以被构造为引用敏感本地路径(例如 $HOME 下的配置文件)。不要将指向敏感文件的本地路径作为订阅 URL,且在添加本地订阅前确认其内容。 - npx/git clone 会引入并可能执行第三方代码。对于不信任的 skill,请优先手动审查源码或在隔离环境中安装。 如果你打算使用此技能:只订阅受信任的注册表,审查注册表中每个 skill 的 install 字段的含义,避免自动接受未知来源的安装命令;如有可能,在沙箱或容器中先测试安装流程。

Like a lobster shell, security has layers — review code before you run it.

latestvk978y5sb2wvt3kq5refvky1gzn8367mh
189downloads
1stars
2versions
Updated 17m ago
v1.1.0
MIT-0

Skill Registry

管理和安装 Claude Code skills 的工具。维护一份常用 skills 注册表,支持订阅远程注册表或本地注册表文件,便于共享和分发 skills 列表。

触发条件

当用户提到以下意图时激活:

  • "列出可用 skills"、"有哪些 skills"
  • "安装 skill"、"装一下 xxx skill"
  • "管理 skills"
  • "添加订阅"、"订阅 xxx URL"
  • "列出订阅"、"查看订阅"
  • "删除订阅"、"取消订阅 xxx"

工作流程

1. 读取注册表

读取本技能目录下的 registry.yaml,解析本地 skills 和订阅列表。

1.1 加载订阅注册表

遍历 subscriptions 列表,根据 url 字段判断来源类型并加载:

判断来源类型

  • http://https:// 开头 → 远程注册表,使用 WebFetch 获取
  • 其他情况 → 本地文件路径,按以下规则解析后使用 Read 工具读取文件内容,按 YAML 解析

本地路径解析规则(按优先级):

  1. 展开环境变量($HOME$HOSTNAME 等)和 ~
  2. 如果展开后是相对路径(不以 / 开头),则基于当前注册表文件所在目录解析为绝对路径

加载流程

  1. 防止循环引用: 维护已加载路径/URL 集合,跳过重复的条目
  2. 递归加载: 注册表格式统一,支持嵌套的 subscriptions(递归加载,本地和远程可互相引用)
  3. 合并 skills: 将订阅 skills 合并到总列表,为每个 skill 标注来源(本地 / 订阅名称)
  4. 处理重名: 本地 skills 优先,后订阅覆盖前订阅
  5. 错误处理: 单个订阅加载失败时记录警告,继续处理其他订阅

2. 展示可用列表

以带编号的表格形式展示所有可用 skills,方便用户通过编号快速选择:

| # | 名称 | 描述 | 来源 | 状态 |
|---|------|------|------|------|
| 1 | [skill-name](repo-url) | ...  | 本地 | ...  |
| 2 | [skill-name](repo-url) | ...  | official | ...  |

"名称" 列如有 repo 字段则渲染为链接,方便用户查看项目详情。"来源" 列显示 skill 的注册表来源:本地 skills 显示 "本地",订阅的 skills 显示订阅名称。

编号从 1 开始,按 registry.yaml 中的顺序递增。同时检查 ~/.claude/skills/ 和当前项目 .claude/skills/ 下是否已存在同名目录,标注已安装状态。

3. 用户选择

使用 AskUserQuestion 工具让用户选择要安装的 skill。用户可以通过编号(如 "1")或名称指定。如果用户在触发时已经指定了名称或编号,跳过此步。

4. 选择安装位置

使用 AskUserQuestion 询问安装位置:

  • 全局安装 (~/.claude/skills/) — 所有项目可用
  • 项目安装 (.claude/skills/) — 仅当前项目可用

5. 执行安装

安装前检查该 skill 的 depends 字段。如果存在依赖且依赖的 skill 尚未安装,先按相同流程安装依赖的 skill(递归处理),全部依赖就绪后再安装目标 skill。

根据 registry.yaml 中的 source 类型执行安装:

  • npx: 在目标 skills 目录下运行 install 命令
    cd <target_skills_dir> && <install_command>
    
  • git: 克隆仓库到目标 skills 目录
    git clone <install_url> <target_skills_dir>/<skill_name>
    
  • local: 复制本地目录到目标位置。install 路径解析规则与订阅 url 一致:先展开环境变量和 ~,若为相对路径则基于当前注册表文件所在目录解析。
    cp -r <resolved_source_path> <target_skills_dir>/<skill_name>
    

6. 确认结果

检查目标目录下是否存在安装后的 skill 目录,报告安装结果。

订阅管理

添加订阅

当用户触发 "添加订阅" 或 "订阅 URL" 时:

  1. 获取订阅名称和 URL/路径(通过用户输入或 AskUserQuestion)
  2. 验证订阅源可访问且格式正确(应包含 skills 列表):
    • 远程 URLhttp:// / https:// 开头):使用 WebFetch 验证
    • 本地文件路径:展开环境变量($HOME~),使用 Read 工具验证文件存在且为合法 YAML
  3. 将新订阅追加到 registry.yaml 的 subscriptions 列表(url 字段保留用户原始输入,如 $HOME/xxx.yaml
  4. 报告添加结果

列出订阅

当用户触发 "列出订阅" 或 "查看订阅" 时:

  1. 读取 registry.yaml 中的 subscriptions 列表
  2. 对每个订阅,检查可用性:
    • 远程 URL:使用 WebFetch 获取远程注册表
    • 本地文件路径:展开环境变量后使用 Read 工具检查文件是否存在且可读
  3. 以表格形式展示:
| 名称 | URL/路径 | 类型 | 状态 | skills 数量 |
|------|----------|------|------|-------------|
| official | https://... | 远程 | 可用 | 15 |
| local-team | $HOME/team-skills.yaml | 本地 | 可用 | 8 |
| team | https://... | 远程 | 不可用 | - |

删除订阅

当用户触发 "删除订阅" 或 "取消订阅 xxx" 时:

  1. 读取当前 subscriptions 列表
  2. 找到匹配的订阅(按名称匹配)
  3. 使用 AskUserQuestion 确认删除
  4. 从 registry.yaml 中移除该订阅
  5. 报告删除结果

注册表格式

订阅注册表采用统一的 YAML 格式,可以是远程 URL 或本地文件:

# 可选:嵌套订阅(支持递归加载,本地和远程可混用)
subscriptions:
  - name: upstream
    url: https://another-registry.yaml
  - name: local-shared
    url: $HOME/shared-skills/registry.yaml
  - name: team
    url: ~/team/skills-registry.yaml

# skills 列表
skills:
  - name: example-skill
    description: 示例 skill
    source: npx
    install: "npx skills add owner/repo@skill-name -y -g"
    repo: https://github.com/owner/repo/tree/main/skills/skill-name  # 可选

  - name: local-skill
    description: 本地 skill(相对路径,基于本注册表文件所在目录)
    source: local
    install: ./local-skill

本地路径说明

url(订阅)和 install(local source)字段支持以下路径格式:

  • $HOME/path/to/file.yaml — 使用 $HOME 环境变量
  • ~/path/to/file.yaml — 使用 ~ 简写
  • /absolute/path/to/file.yaml — 绝对路径
  • ./relative/path../sibling/path — 相对路径,基于当前注册表文件所在目录解析
  • 路径中可包含任意环境变量,如 $HOSTNAME$USER

路径展开规则:

  1. ~ 展开为用户主目录,将 $VAR 格式的环境变量通过 shell echo 展开为实际值
  2. 展开后若为相对路径(不以 / 开头),则以当前注册表文件所在目录为基准拼接为绝对路径
  3. registry.yaml 中保留用户原始输入的路径格式

Comments

Loading comments...