← 返回 Skills 市场
qvshuo

custom-skills-updater

作者 An Jing · GitHub ↗ · v1.0.2 · MIT-0
cross-platform ⚠ suspicious
328
总下载
0
收藏
2
当前安装
3
版本数
在 OpenClaw 中安装
/install custom-skills-updater
功能描述
Manage manually installed skills (non-ClawHub). Supports checking updates, updating, and listing custom skills from GitHub or local sources.
使用说明 (SKILL.md)

custom-skills-updater

Manages manually installed skills not installed from ClawHub.

Supported types: github-dir, github-file, github-readme, local

This skill checks and updates existing skills only. It does NOT create new skills.


Prerequisites

All GitHub operations require an authenticated gh CLI session. Before any GitHub request, run gh auth status. If it fails, prompt: "Run gh auth login first." and stop.


Operations

Check for updates

Scan REGISTRY.yaml, detect remote versions, compare with stored versions, report:

skill-name ........ up-to-date
skill-name ........ update available

Update skills

Target all outdated skills or a specific skill by name.

  1. Run update check
  2. For each outdated skill, notify the user before updating:
    • Skill name and type
    • Summary of what changed (e.g. diff highlights, new commit description, or content delta)
    • How the update will be applied (overwrite, merge, delegate to skill-creator, etc.)
    • Wait for explicit user approval before proceeding
  3. Update approved skill(s)
  4. Update REGISTRY.yaml

If the user cannot respond immediately (e.g. scheduled/automated run, no active session), do not execute updates. Instead, write a summary of pending updates (skill name, change description, proposed action) and leave it for the user to review and approve later.

List installed skills

Read and list all entries in REGISTRY.yaml.


Registry

Location: REGISTRY.yaml in the same directory as this SKILL.md.

If it does not exist:

  1. If REGISTRY.example.yaml exists, copy it to REGISTRY.yaml
  2. Otherwise create with:
skills: {}

Do not rename the skills root key.

Format

Map structure keyed by skill name:

skills:
  example-dir-skill:
    type: github-dir
    source: example-owner/example-repo@main:skills/example-dir-skill
    version: abc123
    updated: 2026-01-01
  example-readme-skill:
    type: github-readme
    source: example-owner/example-project@main
    version: def456
    updated: 2026-01-02
Field Meaning
key skill name
type github-dir / github-file / github-readme / local
source source location
version commit SHA (github-dir) or SHA256 (file-based types)
updated last update date

Automatic Skill Discovery

Scan skills/*/SKILL.md. Only direct subdirectories of skills/, no recursion.

If a skill exists but is not in REGISTRY.yaml:

  1. Notify the user and ask for source type and location
  2. Add to registry

If unable to prompt, register as local and notify the user to configure later.


Version Detection

Compare remote version against version in REGISTRY.yaml.

github-dir

gh api "repos/{owner}/{repo}/commits?path={path}&per_page=1" --jq '.[0].sha // empty'

github-file

gh api "repos/{owner}/{repo}/contents/{path}?ref={branch}" -H "Accept: application/vnd.github.raw+json" | shasum -a 256

github-readme

Find README filename:

gh api "repos/{owner}/{repo}/contents/?ref={branch}" --jq '.[].name' | grep -i '^readme' | head -n 1

Take first match, download and hash:

gh api "repos/{owner}/{repo}/contents/{readme_filename}?ref={branch}" -H "Accept: application/vnd.github.raw+json" | shasum -a 256

local

Skip entirely.


Update Procedure

Only update when remote version differs from stored version.

github-dir

gh api "repos/{owner}/{repo}/tarball/{branch}" > archive.tar.gz

Verify the file is valid gzip before extracting. Copy target path to skills/{name}/.

github-file

gh api "repos/{owner}/{repo}/contents/{path}?ref={branch}" -H "Accept: application/vnd.github.raw+json" > skills/{name}/SKILL.md

github-readme

  1. Download the new README using the same method as version detection
  2. Compare the new README against the existing local README to identify changes
  3. Assess change scope:
    • Major changes (structural changes, new/removed sections, significant content rewrites): check if the skill-creator skill is installed. If yes, delegate the SKILL.md update to skill-creator with the new README as input. If skill-creator is not installed, fall through to step 4.
    • Minor changes (wording tweaks, small additions): proceed to step 4 directly.
  4. Evaluate whether the changes contradict any statements in the current SKILL.md, or introduce important new information that should be reflected in SKILL.md
  5. Update the skill only for the relevant parts based on the evaluation above.

Error Handling and Safety

Handle gh api failures by HTTP status:

Status Action
401 "Authentication expired. Run gh auth login." Stop all operations.
403 "Permission denied or rate limit for {skill-name}." Skip.
404 "Source not found for {skill-name}." Skip.
Other "Check failed for {skill-name}." Skip.

On any failure: do NOT overwrite local files, do NOT modify registry.

Registry updates: modify only the target entry, do not reorder or remove others, update version and updated only after success.

This skill manages manually installed skills only. ClawHub-installed skills are out of scope.

安全使用建议
This skill appears to do what it says, but take these precautions before installing or running it: - Install and authenticate GitHub CLI (gh auth login). The SKILL.md requires gh, but the registry metadata does not list it—ensure gh is present and you understand which GitHub account/token it uses. - Understand that updates involve downloading tarballs/files and writing into skills/{name}/ and updating REGISTRY.yaml. Keep backups of REGISTRY.yaml and any skills you care about before running updates. - The skill promises to wait for interactive approval. If you run it unattended, it will defer updates but may register discovered skills as 'local' automatically—check REGISTRY.yaml for unexpected entries after discovery runs. - Review the gh auth token's scope (least privilege) because gh operations use your credentials implicitly; a compromised token could allow remote repo access. - If you require stricter guarantees, request the author add gh as a declared required binary in registry metadata and consider a dry-run mode where downloads are shown but not extracted. Given the metadata omission (missing gh dependency) and the file-write/extract behavior, treat this as suspicious until you confirm the environment and backup state.
功能分析
Type: OpenClaw Skill Name: custom-skills-updater Version: 1.0.2 The custom-skills-updater skill (logic in SKILL.md) manages updates for manually installed skills by fetching content from GitHub via the gh CLI and overwriting local files. While it incorporates safety measures like mandatory user approval and authentication verification, it performs high-risk operations including file system modification and remote code retrieval. A notable risk is the github-readme update logic, which directs the agent to interpret untrusted remote content to modify skill instructions (SKILL.md), creating a significant surface for indirect prompt injection attacks.
能力评估
Purpose & Capability
SKILL.md and README describe a GitHub-backed updater that uses the GitHub CLI (gh) to detect and apply updates; that capability matches the name/description. However, the registry metadata lists no required binaries even though the skill explicitly requires an authenticated gh CLI session for all remote operations. The missing declared dependency is an incoherence the user should know about.
Instruction Scope
Instructions stay within the stated scope: scanning REGISTRY.yaml, checking remote versions, downloading archives or files, and writing into skills/{name}/ plus updating REGISTRY.yaml. The SKILL.md enforces user approval before updates and defers updates when unattended. One behavior to note: when discovery cannot prompt the user it will register discovered skills as 'local' automatically—this could add entries to REGISTRY.yaml without full remote metadata.
Install Mechanism
This is an instruction-only skill with no install spec or code to download/execute. That minimizes install-time risk.
Credentials
No env vars or credentials are declared, which is consistent with an instruction-only skill. However, the skill relies on the user's gh CLI session (which may use stored GitHub tokens/credentials). Access to GitHub via gh is proportionate to the updater's purpose, but users should be aware gh's credentials are used implicitly.
Persistence & Privilege
The skill writes to REGISTRY.yaml and overwrites or updates files under skills/{name}/ as part of normal operation. It does not request 'always: true' or system-wide privileges. Still, extracting tarballs and copying remote content into the local skills directory is powerful—the SKILL.md requires explicit user approval for updates, which mitigates risk if followed.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install custom-skills-updater
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /custom-skills-updater 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.2
custom-skills-updater 1.0.2 - Adds interactive update approval: users now see details of each pending update and must explicitly approve before any update is applied. - For non-interactive sessions, proposed changes are summarized and left for later review—no updates occur automatically. - The update workflow for GitHub-readme type skills is enhanced: major README changes are delegated to the `skill-creator` skill if present, or handled with extra care if not. - No code or file changes—documentation and process improvements only.
v1.0.1
- README update logic for github-readme skills is now more selective: SKILL.md is only updated when the new README introduces contradictions or important new information, rather than wholesale replacement. - No other file or operational changes; registry, update, and error handling workflows remain unchanged.
v1.0.0
- Initial release of custom-skills-updater. - Provides checking, updating, and listing of manually installed (non-ClawHub) skills from GitHub or local sources. - Supports `github-dir`, `github-file`, `github-readme`, and `local` skill types. - Uses `REGISTRY.yaml` to track installed skills and can discover unregistered local skills. - Requires an authenticated GitHub CLI (`gh`) session for remote operations. - Includes structured error handling for authentication failures, permission issues, and missing resources.
元数据
Slug custom-skills-updater
版本 1.0.2
许可证 MIT-0
累计安装 2
当前安装数 2
历史版本数 3
常见问题

custom-skills-updater 是什么?

Manage manually installed skills (non-ClawHub). Supports checking updates, updating, and listing custom skills from GitHub or local sources. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 328 次。

如何安装 custom-skills-updater?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install custom-skills-updater」即可一键安装,无需额外配置。

custom-skills-updater 是免费的吗?

是的,custom-skills-updater 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

custom-skills-updater 支持哪些平台?

custom-skills-updater 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 custom-skills-updater?

由 An Jing(@qvshuo)开发并维护,当前版本 v1.0.2。

💬 留言讨论