Skip to content

スキル更新:スキルをソースリポジトリと同期させる

このレッスンでできること

このレッスンでは、OpenSkills スキルを常に最新バージョンに保つ方法を学びます。OpenSkills update コマンドを使用して、以下のことができるようになります:

  • ワンクリックで全インストール済みスキルを更新
  • 指定した複数のスキルのみを更新
  • 異なるインストール元による更新の違いを理解
  • 更新失敗の原因をトラブルシューティング

現在直面している問題

スキルリポジトリは絶えず更新されています——作成者がバグを修正し、新機能を追加し、ドキュメントを改善しています。しかし、あなたがインストールしたスキルは古いバージョンのままです。

既にこのような状況に遭遇したことがあるかもしれません:

  • スキルドキュメントには「ある機能をサポート」と書かれているが、AIエージェントは「わからない」と言う
  • スキルでより良いエラーメッセージが更新されたが、あなたが見ているのはまだ古いもの
  • インストール時のバグは修正されたが、まだ影響を受けている

毎回削除して再インストールするのは面倒です——効率的な更新方法が必要です。

いつこの機能を使うか

update コマンドを使用する典型的なシーン:

シーン操作
スキルに更新があると気づくopenskills update を実行
数個のスキルのみ更新したいopenskills update skill1,skill2
ローカル開発スキルのテストローカルパスから更新
GitHubリポジトリから更新自動で最新コードをgit clone

更新頻度の推奨

  • コミュニティスキル:毎月1回更新し、最新の改善を取得
  • 自分で開発したスキル:修正のたびに手動で更新
  • ローカルパススキル:コードを修正するたびに更新

🎒 開始前の準備

始める前に、以下が完了していることを確認してください:

核心アイデア

OpenSkills の更新メカニズムは非常にシンプルです:

インストール時にソース情報を記録 → 更新時に元のソースから再コピー

再インストールが必要な理由

古いバージョンのスキル(インストール時にソースが記録されていない)は更新できません。この場合、一度再インストールする必要があります。OpenSkills がソースを記憶し、その後は自動的に更新できるようになります。

3種類のインストール元の更新方法

ソースタイプ更新方法適用シーン
ローカルパスローカルパスから直接コピー自分のスキルを開発中
gitリポジトリ最新コードを一時ディレクトリにクローンGitHub/GitLabからインストール
GitHub shorthand完全URLに変換してクローンGitHub公式リポジトリからインストール

更新時、ソースメタデータがないスキルはスキップされ、再インストールが必要なスキル名がリスト表示されます。

実践してみよう

ステップ1:インストール済みスキルを確認

まず、どのスキルを更新できるか確認しましょう:

bash
npx openskills list

表示されるもの:インストール済みスキルのリスト(名前、説明、インストール場所のタグ(project/global)を含む)

ステップ2:全スキルを更新

最もシンプルな方法は、インストール済みの全スキルを更新することです:

bash
npx openskills update

表示されるもの:スキルを1つずつ更新し、各スキルの更新結果を表示

✅ Updated: git-workflow
✅ Updated: check-branch-first
Skipped: my-old-skill (no source metadata; re-install once to enable updates)
Summary: 2 updated, 1 skipped (3 total)
スキップされたスキルの意味

Skipped: xxx (no source metadata) と表示された場合、このスキルは更新機能が追加される前にインストールされたことを意味します。自動更新を有効にするには、一度再インストールする必要があります。

ステップ3:指定したスキルを更新

特定の数個のスキルのみを更新したい場合、スキル名を(カンマ区切りで)指定します:

bash
npx openskills update git-workflow,check-branch-first

表示されるもの:指定された2つのスキルのみが更新される

✅ Updated: git-workflow
✅ Updated: check-branch-first
Summary: 2 updated, 0 skipped (2 total)

ステップ4:ローカル開発中のスキルを更新

ローカルでスキルを開発中の場合、ローカルパスから更新できます:

bash
npx openskills update my-skill

表示されるもの:スキルがインストール時のローカルパスから再コピーされる

✅ Updated: my-skill
Summary: 1 updated, 0 skipped (1 total)

ローカル開発ワークフロー

開発プロセス:

  1. スキルをインストール:openskills install ./my-skill
  2. コードを修正
  3. スキルを更新:openskills update my-skill
  4. AGENTS.mdに同期:openskills sync

ステップ5:更新失敗を処理

一部のスキルの更新が失敗した場合、OpenSkills は詳細な理由を表示します:

bash
npx openskills update

表示される可能性のある状況

Skipped: git-workflow (git clone failed)
Skipped: my-skill (local source missing)
Missing source metadata (1): old-skill
Clone failed (1): git-workflow

対応する解決方法

エラーメッセージ原因解決方法
no source metadata古いバージョンのインストール再インストール:openskills install <source>
local source missingローカルパスが削除されたローカルパスを復元または再インストール
SKILL.md missing at local sourceローカルファイルが削除されたSKILL.mdファイルを復元
git clone failedネットワーク問題またはリポジトリが存在しないネットワークまたはリポジトリアドレスを確認
SKILL.md not found in repoリポジトリ構造が変更されたスキル作成者に連絡するかsubpathを更新

チェックポイント ✅

以下ができるようになったことを確認してください:

  • [ ] openskills update を使用して全スキルを更新できる
  • [ ] カンマ区切りで指定したスキルを更新できる
  • [ ] 「スキップ」されたスキルの意味と解決方法を理解している
  • [ ] ローカル開発スキルの更新プロセスを理解している

注意すべき点

❌ よくある間違い

間違い正しいアプローチ
スキップされたまま放置するプロンプトに従って再インストールまたは問題を修正する
毎回削除して再インストールするupdate コマンドを使用する方が効率的
どこからインストールしたか知らないopenskills list でソースを確認

⚠️ 注意事項

更新はローカル修正を上書きします

インストールディレクトリ内のスキルファイルを直接修正した場合、更新時にこれらの修正は上書きされます。正しいアプローチは以下の通りです:

  1. ソースファイル(ローカルパスまたはリポジトリ)を修正する
  2. その後 openskills update を実行

シンボリックリンクスキルは特別な処理が必要

スキルがシンボリックリンクを通じてインストールされている場合(シンボリックリンクサポートを参照)、更新はリンクを再作成し、シンボリックリンク関係は破壊されません。

グローバルとプロジェクトスキルはそれぞれ更新が必要

bash
# プロジェクトスキルのみ更新(デフォルト)
openskills update

# グローバルスキルは別途処理が必要
# または --universal モードで統一管理

レッスンのまとめ

このレッスンでは、OpenSkills の更新機能を学びました:

  • 一括更新openskills update で全スキルをワンクリック更新
  • 指定更新openskills update skill1,skill2 で特定のスキルを更新
  • ソース認識:ローカルパスとgitリポジトリを自動認識
  • エラーメッセージ:スキップの理由と解決方法を詳細に説明

更新機能によりスキルを最新バージョンに保ち、使用しているスキルが常に最新の改善と修正を含んでいることを保証します。

次のレッスン预告

次のレッスンでは、スキルの削除 を学びます。

学べること:

  • インタラクティブな manage コマンドを使用してスキルを削除する方法
  • remove コマンドを使用してスクリプト化された削除を行う方法
  • スキル削除後の注意点

付録:ソースコード参照

クリックしてソースコードの場所を展開

更新日時:2026-01-24

機能ファイルパス行番号
スキル更新メインロジックsrc/commands/update.ts14-150
ローカルパス更新src/commands/update.ts64-82
Gitリポジトリ更新src/commands/update.ts85-125
ディレクトリからスキルをコピーsrc/commands/update.ts152-163
パスセキュリティ検証src/commands/update.ts165-172
メタデータ構造定義src/utils/skill-metadata.ts8-15
スキルメタデータの読み取りsrc/utils/skill-metadata.ts17-27
スキルメタデータの書き込みsrc/utils/skill-metadata.ts29-36
CLIコマンド定義src/cli.ts58-62

重要な定数

  • SKILL_METADATA_FILE = '.openskills.json':メタデータファイル名、スキルのインストール元を記録

重要な関数

  • updateSkills(skillNames):指定または全スキルを更新するメイン関数
  • updateSkillFromDir(targetPath, sourceDir):ソースディレクトリからスキルをターゲットディレクトリにコピー
  • isPathInside(targetPath, targetDir):インストールパスのセキュリティを検証(パストラバーサルを防止)
  • readSkillMetadata(skillDir):スキルのメタデータを読み取る
  • writeSkillMetadata(skillDir, metadata):スキルのメタデータを書き込み/更新

ビジネスルール

  • BR-5-1:デフォルトで全インストール済みスキルを更新(update.ts:37-38)
  • BR-5-2:カンマ区切りのスキル名リストをサポート(update.ts:15)
  • BR-5-3:ソースメタデータがないスキルをスキップ(update.ts:56-62)
  • BR-5-4:ローカルパスからの更新をサポート(update.ts:64-82)
  • BR-5-5:gitリポジトリからの更新をサポート(update.ts:85-125)
  • BR-5-6:パスセキュリティを検証(update.ts:156-162)