mcpField
S
skills-updater

skills-updater

github.com/yizhiyanhua-aiAgent 工作流175463 次安装40 周前更新
代码仓库

关于 skills-updater

Skills Updater 是用于管理和发现 Claude Code skill 的命令行工具集,支持插件市场与 npx skills 安装来源。它可检查版本、更新市场仓库、处理本地修改并推荐热门 skill。

主要功能

  1. 01扫描已安装 skill 的更新
  2. 02更新市场仓库
  3. 03自动重新安装受影响的 skill
  4. 04备份并合并本地修改
  5. 05推荐热门 skill

适用场景

  1. 01检查已安装 skill 是否有可用更新
  2. 02刷新市场并重新安装其中的 skill
  3. 03更新时保留本地编辑
  4. 04从支持的来源发现推荐 skill

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/yizhiyanhua-ai/skills-updater --skill skills-updater

安装后在 Claude Code 中输入/skills-updater确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.en.md
README.md
.gitignore
references/
marketplaces.md
scripts/
check_updates.py
update_marketplace.py
recommend_skills.py
recommendations.json
i18n.py

详细介绍

Skills Updater

管理、更新和发现来自多个安装来源的 Claude Code skills。

国际化(i18n)

所有脚本都会自动检测用户的区域设置,并以相应语言显示输出。

支持的语言:

  • 英语(en)— 默认
  • 中文(zh)— 中文

自动检测顺序:

  1. LANG 环境变量
  2. LC_ALL 环境变量
  3. LANGUAGE 环境变量
  4. 系统区域设置

手动覆盖:

python scripts/check_updates.py --lang zh  # Force Chinese
python scripts/check_updates.py --lang en  # Force English

支持的来源

Claude Code 插件(~/.claude/plugins/):

  • installed_plugins.json — 跟踪已安装 skills 及其版本
  • known_marketplaces.json — 已注册的市场来源
  • cache/ — 已安装的 skill 文件

npx skills(如果存在,则为 ~/.skills/):

  • 通过 npx skills add <owner/repo> 安装的 skills
  • 由 skills.sh 基础设施管理

更新检查工作流

第 1 步:扫描已安装的 Skills
python scripts/check_updates.py

输出格式:

📦 Installed Skills Status
━━━━━━━━━━━━━━━━━━━━━━━━━━

✅ Up-to-date (12):
   • skill-creator@daymade-skills (1.2.2)
   • github-ops@daymade-skills (1.0.0)
   ...

⬆️ Updates Available (3):
   • planning-with-files@planning-with-files
     Local: 2.5.0 → Remote: 2.6.1
   • superpowers@superpowers-marketplace
     Local: 4.0.3 → Remote: 4.1.0
   ...

⚠️ Unknown Version (2):
   • document-skills@anthropic-agent-skills (unknown)
   ...
第 2 步:确认更新策略

向用户提供以下选项:

  1. 全部更新 — 更新所有有可用更新的 skills
  2. 选择单个项目 — 让用户选择要更新的特定 skills
  3. 跳过 — 取消更新流程
第 3 步:处理本地修改

更新前,检查是否存在本地修改:

# Check if local skill has uncommitted changes
cd ~/.claude/plugins/cache/<marketplace>/<skill>/<version>
git status --porcelain

如果检测到本地更改:

  1. 备份已修改的文件
  2. 拉取远程更新
  3. 尝试进行三方合并
  4. 如果存在冲突:
    • 向用户显示冲突文件
    • 提供手动解决或保留本地版本的选项
第 4 步:执行更新

对于 Claude Code 插件:

# Trigger marketplace refresh and skill reinstall
# This uses Claude Code's built-in update mechanism
claude /install <skill-name>@<marketplace>

对于 npx skills:

npx skills add <owner/repo> --force

市场更新后自动安装

update_marketplace.py 脚本可以在更新市场仓库后,自动重新安装受影响的 skills。

用法
# Update marketplace only (show affected skills)
python scripts/update_marketplace.py anthropic-agent-skills

# Update marketplace AND auto-reinstall affected skills
python scripts/update_marketplace.py anthropic-agent-skills --auto-install

# Output as JSON
python scripts/update_marketplace.py anthropic-agent-skills --json

# Force language
python scripts/update_marketplace.py anthropic-agent-skills --lang zh
输出(中文区域设置)
📡 正在获取远程更新...

当前提交: e5c60158df67
远程提交: 69c0b1a06741
状态: 落后 6 个提交

📝 更新内容:
   • 69c0b1a Add link to Agent Skills specification website
   • be229a5 Fix links in agent skills specification
   ...

📦 受影响的技能: document-skills

📥 正在更新市场: anthropic-agent-skills
✅ 市场更新成功

🔄 正在重新安装受影响的技能...
   正在安装: document-skills
   ✅ 已安装: document-skills

✅ 所有受影响的技能已更新
工作流
  1. 获取远程内容 — 通过 Git fetch 检查更新
  2. 比较提交 — 显示落后多少个提交
  3. 列出受影响的 skills — 查找来自此市场的已安装 skills
  4. 拉取更新 — 通过 Git pull 更新本地市场
  5. 自动重新安装 — (使用 --auto-install 时)重新安装每个受影响的 skill

Skill 推荐

获取热门 Skills
python scripts/recommend_skills.py --source all

来源:

  • skills.sh — 按安装量排名的排行榜
  • skillsmp.com — 精选市场(如果可访问)
输出格式
🔥 Trending Skills
━━━━━━━━━━━━━━━━━━

From skills.sh:
1. vercel-react-best-practices (25.5K installs)
   npx skills add vercel/react-best-practices

2. web-design-guidelines (19.2K installs)
   npx skills add webdesign/guidelines

3. remotion-best-practices (2.2K installs)
   npx skills add remotion/best-practices

💡 Personalized Recommendations:
Based on your installed skills (developer-tools, productivity):
- playwright-skill - Browser automation testing
- github-ops - GitHub CLI operations
安装推荐的 Skill

显示推荐内容后,提供安装选项:

Would you like to install any of these skills?
1. Install by number (e.g., "1" or "1,3,5")
2. Install by name
3. Skip

版本检测方法

主要方法:marketplace.json

从远程 marketplace.json 读取版本:

curl -s "https://raw.githubusercontent.com/<owner>/<repo>/main/.claude-plugin/marketplace.json" | jq '.plugins[] | select(.name == "<skill>") | .version'
备用方法:GitHub API

如果 marketplace.json 不可用或未指定版本:

# Get latest release tag
curl -s "https://api.github.com/repos/<owner>/<repo>/releases/latest" | jq -r '.tag_name'

# Or latest commit on main
curl -s "https://api.github.com/repos/<owner>/<repo>/commits/main" | jq -r '.sha[:7]'
提交 SHA 比较

对于按提交跟踪的 skills(例如 e30768372b41):

# Compare local gitCommitSha with remote HEAD
local_sha=$(jq -r '.plugins["<key>"][0].gitCommitSha' ~/.claude/plugins/installed_plugins.json)
remote_sha=$(curl -s "https://api.github.com/repos/<owner>/<repo>/commits/main" | jq -r '.sha')

if [ "$local_sha" != "$remote_sha" ]; then
  echo "Update available"
fi

智能合并策略

存在本地修改时:

  1. 识别已修改的文件:

    git diff --name-only HEAD
    
  2. 对更改分类:

    • SKILL.md 自定义内容 → 保留用户部分
    • scripts/ 修改 → 保留本地版本,并注明以供审核
    • references/ 新增内容 → 合并两者
    • assets/ → 如果版本不同,则保留两个版本
  3. 合并方法:

    # Pseudo-code for smart merge
    for file in modified_files:
        if file == 'SKILL.md':
            merge_skill_md(local, remote)  # Preserve user customizations
        elif file.startswith('scripts/'):
            backup_and_warn(local)  # User scripts need review
        else:
            three_way_merge(base, local, remote)
    

用户交互模式

检查更新

用户说:“检查 skills 更新” / “check skill updates” / “update my skills”

→ 运行 scripts/check_updates.py 并显示结果

更新特定 Skill

用户说:“更新 skill-creator” / “update skill-creator”

→ 仅检查并更新指定的 skill

发现新 Skills

用户说:“推荐一些好用的 skills” / “recommend skills” / “popular skills”

→ 运行 scripts/recommend_skills.py 并显示精选列表

完整更新工作流

用户说:“更新所有 skills” / “update all skills”

→ 扫描 → 确认 → 处理合并 → 更新 → 报告结果

错误处理

网络错误:使用指数退避重试,并缓存最近一次已知状态

权限错误:建议使用适当的权限运行

合并冲突:显示冲突标记,并提供解决选项:

  • 接受本地版本(保留你的更改)
  • 接受远程版本(使用上游版本)
  • 手动合并(显示差异)

缺少市场:如果源已不可用,则告知用户

资源

scripts/
  • check_updates.py - 扫描并比较已安装版本与远程版本
  • recommend_skills.py - 从市场获取热门技能
  • update_marketplace.py - 更新市场代码仓库并自动重新安装技能
  • i18n.py - 国际化模块(区域设置检测、翻译)
references/
  • marketplaces.md - 支持的市场文档

添加新语言

要添加新语言,请编辑 scripts/i18n.py:

  1. 在 TRANSLATIONS 字典中添加翻译:
TRANSLATIONS["ja"] = {
    "checking_updates": "スキルの更新を確認中...",
    # ... other translations
}
  1. 更新 detect_locale(),以识别新的区域设置:
if lang_lower.startswith('ja'):
    return 'ja'

评论

支持 Markdown