mcpField
S
skills-updater

skills-updater

github.com/yizhiyanhua-aiエージェントワークフロー175463 回インストール40 週間前に更新
リポジトリ

skills-updater について

Skills Updater は、プラグインマーケットプレイスや npx skills のインストール元にある Claude Code スキルを管理・発見するコマンドラインツールです。バージョン確認、マーケットプレイス更新、ローカル変更の処理、スキル推薦に対応します。

主な機能

  1. 01インストール済みスキルの更新確認
  2. 02マーケットプレイスリポジトリの更新
  3. 03対象スキルの自動再インストール
  4. 04ローカル変更のバックアップとマージ
  5. 05人気スキルの推薦

活用シーン

  1. 01インストール済みスキルの更新有無を確認
  2. 02マーケットプレイスを更新してスキルを再導入
  3. 03更新時にローカル編集を保持
  4. 04対応する推薦元からスキルを探す

インストール

コマンドをコピーしてターミナルで実行します。

$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 スキルを管理、更新、検索します。

国際化(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 - インストール済みスキルとそのバージョンを記録します
  • known_marketplaces.json - 登録済みのマーケットプレイスソース
  • cache/ - インストール済みスキルのファイル

npx skills(存在する場合は ~/.skills/):

  • npx skills add <owner/repo> でインストールされたスキル
  • skills.sh のインフラストラクチャで管理されます

更新確認のワークフロー

ステップ 1:インストール済みスキルをスキャンする
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. すべて更新 - 更新可能なすべてのスキルを更新します
  2. 個別に選択 - 更新するスキルをユーザーが選択します
  3. スキップ - 更新処理をキャンセルします
ステップ 3:ローカルの変更に対処する

更新前に、ローカルの変更を確認します:

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

ローカルの変更が検出された場合:

  1. 変更されたファイルのバックアップを作成します
  2. リモートの更新を取得します
  3. 3-way マージを試みます
  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 スクリプトは、マーケットプレイスのリポジトリを更新した後、影響を受けるスキルを自動的に再インストールできます。

使用方法
# 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. 影響を受けるスキルを一覧表示 - このマーケットプレイスからインストールされたスキルを探します
  4. 更新を取得 - ローカルのマーケットプレイスを更新するために Git pull を実行します
  5. 自動再インストール - (--auto-install を指定した場合)影響を受ける各スキルを再インストールします

スキルのおすすめ

トレンドのスキルを取得する
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
おすすめのスキルをインストールする

おすすめを表示した後、インストールを提案します:

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 の比較

コミットで追跡されているスキルの場合(例: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 更新」 / 「スキルの更新を確認」 / 「スキルを更新して」

→ scripts/check_updates.py を実行して結果を表示します

特定のスキルを更新する

ユーザーの発言:「skill-creator を更新」 / 「skill-creator を更新して」

→ 指定されたスキルのみを確認して更新します

新しいスキルを見つける

ユーザーの発言:「おすすめの便利な skills を教えて」 / 「スキルをおすすめして」 / 「人気のスキル」

→ scripts/recommend_skills.py を実行し、厳選されたリストを表示します

更新の全工程

ユーザーの発言:「すべての skills を更新」 / 「すべてのスキルを更新して」

→ スキャン → 確認 → マージへの対処 → 更新 → 結果の報告

エラー処理

ネットワークエラー:指数バックオフで再試行し、最後に確認された状態をキャッシュします

権限エラー:適切な権限で実行するよう提案します

マージの競合:競合マーカーを表示し、解決方法を提示します:

  • ローカルを採用(変更を保持)
  • リモートを採用(上流を使用)
  • 手動でマージ(差分を表示)

マーケットプレイスが見つからない場合:ソースが利用できなくなったことをユーザーに伝えます

リソース

scripts/
  • check_updates.py - インストール済みのバージョンとリモートのバージョンをスキャンして比較します
  • recommend_skills.py - マーケットプレイスから人気のスキルを取得します
  • update_marketplace.py - マーケットプレイスのリポジトリを更新し、スキルを自動で再インストールします
  • i18n.py - 国際化モジュール(ロケールの検出、翻訳)
references/
  • marketplaces.md - 対応するマーケットプレイスのドキュメント

言語の追加

新しい言語を追加するには、scripts/i18n.pyを編集します:

  1. TRANSLATIONS dictに翻訳を追加します:
TRANSLATIONS["ja"] = {
    "checking_updates": "スキルの更新を確認中...",
    # ... other translations
}
  1. detect_locale()を更新して、新しいロケールを認識させます:
if lang_lower.startswith('ja'):
    return 'ja'

コメント