メインコンテンツまでスキップ

update

1 つ以上の skill または tracked repositories を最新バージョンに更新します。

skillshare update my-skill           # 単一の skill を更新
skillshare update a b c # 複数を一度に更新
skillshare update --group frontend # グループ内のすべての skill を更新
skillshare update team-skills # tracked repo を更新
skillshare update --all # すべてを更新
skillshare update agents --all # すべての tracked/updatable agent を更新

使うタイミング​

  • tracked repository に新しいコミットがある(check で発見)
  • インストール済みの skill に新しいバージョンが利用可能
  • 元の source から skill を再ダウンロードしたい
$ skillshare update pdf
✓ Update pdf · from github.com/anthropics/skills/skills/pdf · 1.9s
✓ Audit no findings

Next
skillshare sync link the changes into your targets

実行内容​

トラック対象リポジトリの場合​

通常の Skill の場合​

リモートソースからインストールした Skill は、そのソースから再インストールされます。ローカルパスからインストールした Skill(skillshare install /path/to/skill)はそのパスから再コピーされるため、update でそこでの変更を取り込めます。パスが変更されたことは check で確認できます。

オプション​

フラグ説明
--all, -aすべての tracked repos/skills を更新、または update agents --all として使う場合はすべての agents を更新。たどられた source リンクの背後にある tracked repo は、あなた自身のチェックアウトであるため警告付きでスキップされます。名前を指定して更新してください
--group, -G <name>グループ内の更新可能なすべての skill、または agent サブディレクトリ内のすべての agent を更新
--force, -fローカルの変更を破棄し、audit の検出結果があっても続行し、すでに upstream の commit にあるリモート skill も再インストール
--dry-run, -n変更を加えずにプレビュー
--skip-auditsecurity audit gate をスキップ
--audit-threshold <t>, --threshold <t>, -T <t>update の audit ブロックしきい値を上書き(`critical
--diffskill/repo 更新後にファイルレベルの変更サマリーを表示
--audit-verbosebatch mode で skill ごとの詳細な audit 検出結果を表示
--prune古い skill(upstream で削除済み)を警告ではなく削除
--project, -pカレントディレクトリの project レベルの config を使用
--global, -gglobal config を使用(~/.config/skillshare)
--jsonJSON として出力
--help, -hヘルプを表示

update agents は以下をサポートします: --all、--group、--force、--dry-run、--skip-audit、--audit-threshold / --threshold / -T、--json、加えて --project / --global。--diff、--audit-verbose、--prune はサポートされません。

JSON 出力​

skillshare update --all --json
{
"updated": 3,
"skipped": 1,
"security_failed": 0,
"pruned": 0,
"dry_run": false,
"duration": "4.567s",
"items": [
{"name": "_team-skills", "type": "repo", "status": "updated"},
{"name": "my-skill", "type": "skill", "status": "updated"},
{"name": "another-skill", "type": "skill", "status": "updated"},
{"name": "local-only", "type": "skill", "status": "skipped"}
]
}

取りうる status の値: updated、skipped、failed、security_blocked。項目が失敗した場合、error フィールドが含まれます。リモート skill がローカルの変更のためスキップされた場合は、"error": "local changes since install" を持つ skipped 項目になります。

バッチ更新でリモート skill がすでに upstream の commit にある場合、その skill はそのままにして up_to_date フィールドに数えます。件数が 0 のときはこのフィールドを省略します。

tracked repos が metadata に宣言されているがディスク上に存在しない場合、それぞれがスキップされた repo 項目として簡潔な error(clone directory absent)と共に報告され、集計された missing_tracked_repos サマリーに名前と再水和(rehydration)のヒントがまとめて含まれます。

{
"updated": 0,
"skipped": 1,
"items": [
{"name": "_team-skills", "type": "repo", "status": "skipped", "error": "clone directory absent"}
],
"missing_tracked_repos": {
"names": ["_team-skills"],
"hint": "Run 'skillshare install' to rehydrate tracked repositories"
}
}

missing_tracked_repos フィールドは、欠落している tracked repos がない場合は省略されます。

Agent の JSON 出力​

skillshare update agents --all --json
{
"agents": [
{"name": "reviewer", "status": "updated", "source": "github.com/user/agents/reviewer.md"},
{"name": "team/tutor", "status": "up_to_date", "source": "github.com/user/agents/team/tutor.md"}
],
"dry_run": false,
"duration": "1.234s"
}

取りうる agent の status の値には updated、failed、skipped、up_to_date、update_available、dirty、drifted、local、error が含まれます。error の Agent は、リモートに到達できない、metadata を読めないなどの理由で確認できなかったものです。この場合、コマンドは Agent を最新と報告せず、0 以外の終了コードで終了します。

Agents の更新​

スタンドアロンの .md agents のみを更新したい場合は agents kind セレクターを使います。

skillshare update agents reviewer
skillshare update agents --group team
skillshare update agents --all -T high
skillshare update agents --all --json

Agent の更新は skills と同じ audit gate に従います:

  • tracked agent repos は git pull を実行し、その後更新されたリポジトリを audit する
  • metadata で紐づけられた単一ファイルの agents は source から再インストールし、staged された .md を audit し、成功した場合のみローカルファイルを置き換える

複数更新​

複数の skill を一度に更新します。

skillshare update skill-a skill-b skill-c

更新可能な skill(tracked repos または metadata を持つ skill)のみが処理されます。見つからない skill は警告されますが失敗にはなりません。ただし、いずれかの skill が security audit gate によってブロックされた場合、バッチコマンドは非ゼロのコードで終了します。

Glob パターン​

skill 名は、バッチ操作のために glob パターン(*、?、[...])をサポートします。

skillshare update "core-*"              # core-* に一致するすべての skill を更新
skillshare update "_team-?" # 1 文字ワイルドカード
skillshare update "core-*" "util-*" # 複数のパターン

Glob パターンは、各 skill または tracked repo のbasename(パスの最後の要素)に対してマッチします。例えば、"react-*" は basename が react-hooks であるため frontend/react-hooks にマッチします。

Glob マッチングは大文字・小文字を区別しません: "Core-*" は core-auth、CORE-DB などに一致します。

シェルの Glob 保護

シェルがカレントディレクトリのファイル名に * を展開してしまうのを防ぐため、glob パターンは常に引用符で囲んでください("core-*")。

グループの更新​

グループディレクトリ内の更新可能なすべての skill を更新します。

skillshare update --group frontend        # frontend/ 内のすべてを更新
skillshare update -G frontend -G backend # 複数のグループ
skillshare update x -G backend # 名前とグループを混在

グループ内の(metadata や .git を持たない)ローカル skill は黙ってスキップされます。

グループディレクトリに一致する位置引数(repo でも skill でもない)は自動的に展開されます。

skillshare update frontend   # --group frontend と同じ
# 'frontend' is a group — expanding to 3 updatable skills
注記

--all は skill 名や --group と組み合わせることはできません。

すべて更新​

すべてを一度に更新します。

skillshare update --all

これにより以下が更新されます:

  1. すべての tracked repositories(git pull)
  2. source metadata を持つすべての skill(upstream が変わったときに再インストール)

update --all と update --group はリモート skill をリポジトリごとにまとめ、各リポジトリを 1 回だけ clone します。フォルダが upstream で変わっていない skill には手を付けず、up to date として数えます。ただし、フォルダに symlink を含む skill は例外です。フォルダが変わらなくてもファイルが変わることがあるため、upstream の commit が進むたびに再インストールします。プロジェクトモード(-p)で複数の skill を名前で指定した場合も同じです。すべてを再インストールするには --force を使います。skill が 1 つだけのときと、グローバルモードで名前を指定したときは常に再インストールします。インストール後にファイルを変更した skill は、いずれの場合も --force を付けるまでスキップされます(コンフリクトの処理を参照)。リポジトリを取得できなかった場合、その skill は skipped として数え、リポジトリ名とエラーを示す警告を表示します。URL に含まれる認証情報は取り除かれます。

skillshare は 1 つの git checkout を同時に 1 つのプロセスだけで更新します。同じ tracked repo や git でインストールした skill を別の update やダッシュボードが更新中の場合、その完了を待ちます。1 分経っても終わらなければ another skillshare process is still updating <path> で中止します。

出力例​

$ skillshare update --all

✓ Audit 3 skills, no findings

✓ Updated 4, 12 up to date, 1 skipped · 6.2s

Next
skillshare sync link the changes into your targets

欠落しているトラック対象リポジトリ​

.metadata.json が tracked repo(tracked: true)を宣言しているが、そのクローンディレクトリがディスク上に存在しない場合 — クローンディレクトリは管理された .gitignore ブロック内にあるため、新しいマシンでよく発生します — update --all はもはや黙ってスキップしません。欠落している各リポジトリを報告し、再水和(rehydrate)の方法を案内します。

! 1 tracked repo declared in metadata but missing on disk
! _team-skills clone directory absent
Run 'skillshare install' to rehydrate tracked repositories

これは global mode と project mode(-p)の両方に適用されます。metadata からクローンを再作成するには、引数なしの install を実行してください(Rehydrating After a Fresh Clone を参照)。

古い Skill のクリーンアップ(--prune)​

upstream リポジトリが skill をリネームまたは削除すると、update はそれを**stale(古い)**として検知し、警告します。

Deleted upstream
! frontend/old-skill stale — no longer in the upstream repository
Run with --prune to remove them

--prune を追加すると、stale な skill を自動的に削除します(完全に削除されるのではなく trash に移動されます)。

skillshare update --all --prune

check も stale な skill を報告します。

skillshare check --all
# ! old-skill stale — no longer in the upstream repository
注記

tracked repositories(_repo)は --prune の影響を受けません。tracked repo が内部で skill を削除した場合、sync は PruneOrphanLinks を通じて orphan なシンボリックリンクを自動的にクリーンアップします。

セキュリティ Audit ゲート​

Tracked 更新の公開前に、update は隔離された候補 checkout を監査します。承認までは既存の checkout と target リンクが旧コンテンツを提供します。

  • Tracked repos(git pull) は非公開の checkout で pull と監査を実行し、有効なしきい値(audit.block_threshold、デフォルト CRITICAL)で承認された正確な commit を公開します。上流から再度 pull しません
  • 通常の skill(再インストールパス) は同じしきい値ポリシーを使用します
  • どの更新タイプでも、確認用に risk のラベル/スコアが表示されます
→ risk: LOW (12/100)

対話モード(TTY、tracked repos)​

有効なしきい値以上の検出結果がある場合、決定を求められます。

  [HIGH] Source repository link detected — may be used for supply-chain redirects (SKILL.md:5)

Security findings at or above active threshold detected.
? Apply anyway? Yes No
  • Yes — 検出結果があっても更新を受け入れる
  • No(デフォルト) — 候補を破棄し、既存の checkout を変更しない

非対話モード(CI/CD)​

非対話環境では、ブロック対象の検出結果があると候補を拒否し、非ゼロのコードで終了します。スキャンエラーでも既存の checkout と metadata は変更されず、--force でも上書きできません。公開は複数ファイルのアトミックな切り替えではありません。

# source を信頼している場合は audit gate をバイパスする
skillshare update --all --skip-audit
注意

--skip-audit は security scan を完全に無効化します。source を信頼している場合、または外部の audit プロセスがある場合にのみ使用してください。

承認済みの検出結果​

--force(またはプロンプトで y と回答)で gate を上書きすると、受け入れた検出結果は .metadata.json の audit_accepted に記録されます。同じ skill の以降の更新では、それらの正確な検出結果ではブロックされなくなるため、update --all のたびに --force を繰り返す必要はありません。ダッシュボードの Updates タブの Force Retry も同じように記録し、どちらで受け入れた検出結果も両方で尊重されます。

  1 previously accepted finding skipped

検出結果は行番号ではなく、rule・ファイル・一致したテキストによって照合されます。そのため、無関係な内容が変わっても受け入れ状態が維持されます。新しい検出結果、または同じ rule が異なるテキストに一致した場合は、再びブロックされます。これは、攻撃文字列を例として正当に引用する skill(security scanner や red-team のドキュメントなど)に適しており、それでいて後のバージョンで新しいペイロードを検知できます。

コマンドごとにしきい値を --audit-threshold、--threshold、または -T で上書きできます。

skillshare update _team-skills --threshold high
skillshare update --all -T h

ファイル変更サマリー(--diff)​

--diff を使うと、各更新後にファイルレベルの変更サマリーを確認できます。

skillshare update team-skills --diff
skillshare update --all --diff

tracked repositories の場合、diff は git diff を使用し、行レベルの統計情報を含みます。

Files changed
~ SKILL.md (+12 -3)
+ scripts/deploy.sh (+45 -0)
- old-helper.sh (+0 -22)
~ utils/format.md (+5 -2)

通常の skill(リモート source からインストールされたもの)の場合、diff は再インストールの前後でファイルハッシュを比較します。

Files changed
~ SKILL.md
+ new-helper.sh

マーカー: + 追加、- 削除、~ 変更。最大 20 ファイルまで表示され、それ以上は "... and N more file(s)" とまとめられます。

コンフリクトの処理​

tracked repo に未コミットの変更がある場合:

# オプション 1: まず変更をコミットする
cd ~/.config/skillshare/skills/_team-skills
git add . && git commit -m "My changes"
skillshare update _team-skills

# オプション 2: 破棄して強制更新する
skillshare update _team-skills --force

skillshare がリポジトリの git status を読み取れない場合、そのリポジトリの更新は failed to check git status で失敗します。--force を使うとこのチェックをスキップします。

リポジトリからインストールした skill も同様に保護されます。ファイルがインストール時に記録したものと一致しなくなると、update はその skill をスキップして local changes since install と報告し、skillshare check は modified として一覧表示し、skillshare check <name> --diff は加えた変更を表示します。変更を残したい場合は別の場所にコピーしてから、破棄します。

skillshare update my-skill --force

ダッシュボードの Updates タブでは、その skill に Modified locally と、変更を skill のページで開く View changes ボタンが表示されます。更新する前に Force overwrite local edits にチェックを入れるか、スキップされた行の Force Retry を使います。skill 自身のページから更新する場合は、変更を表示したうえで、破棄する前に確認します。update <name> --dry-run は、その skill をスキップ対象として報告します。upstream で削除された modified の skill も、--prune を付けても --force を付けるまで保持されます。

更新後​

skillshare sync を実行して、すべての targets に変更を反映します。

skillshare update --all --diff   # ファイルレベルの変更サマリー付きで更新
skillshare sync

Project Mode​

project 内の skill と tracked repos を更新します。

skillshare update pdf -p              # 単一の skill を更新(再インストール)
skillshare update a b c -p # 複数の skill を更新
skillshare update --group frontend -p # グループ内のすべてを更新
skillshare update team-skills -p # tracked repo を更新(git pull)
skillshare update --all -p # すべてを更新
skillshare update --all -p --dry-run # プレビュー
skillshare update --all -p --diff # ファイル変更サマリー付きで更新
skillshare update --all -p --skip-audit # security audit gate をスキップ

仕組み​

タイプ方法検出方法
Tracked repo(_repo)git pull_ で始まり .git/ ディレクトリを持つフォルダ
Remote skill(metadata 付き)upstream が変わったときに source から再インストール.metadata.json に記載されている
ローカルパスからのインストール記録されたパスから再コピー.metadata.json に type: local で記載されている
Local skillスキップ.metadata.json に記載されていない

_ prefix は最後のパス区間でも省略可能です — skillshare update team-skills -p は自動的に _team-skills を検出し、skillshare update devops/team-skills -p は --into devops でインストールした devops/_team-skills を検出します。

ロックファイル​

固定されたコミットを先へ進めるのが update -p です。新しいコミットに移動した skill や tracked repo は、.skillshare/skills.lock.json 内のエントリが書き換えられます。変更のなかった skill は固定をそのまま保持します。ロックファイルをコミットしておけば、チームメンバーは次回の skillshare install -p で同じコミットを取得できます。ロックファイルを参照してください。

コンフリクトの処理​

未コミットの変更がある tracked repos はデフォルトでブロックされます。

# オプション 1: まず変更をコミットする
cd .skillshare/skills/_team-skills
git add . && git commit -m "My changes"
skillshare update team-skills -p

# オプション 2: 破棄して強制更新する
skillshare update team-skills -p --force

skillshare がリポジトリの git status を読み取れない場合、そのリポジトリの更新は failed to check git status で失敗します。--force を使うとこのチェックをスキップします。

典型的なワークフロー​

skillshare update --all -p
skillshare sync
git add .skillshare/ && git commit -m "Update remote skills"

関連項目​

  • install — Skill をインストール
  • upgrade — CLI と built-in skill をアップグレード
  • sync — targets に sync
  • Project Skills — Project mode の概念