[セキュリティプロンプト設計と作成の実践 1] skills.shからスキルを安全にダウンロードする

Agent Skillは単なるプロンプトの集まりではありません。SKILL.mdの指示文はエージェントの行動を変え、同梱されているscripts/はローカルコマンドを実行できます。公開スキルをインストールすることは、便利な機能を追加すると同時に、新しいコードと指示を信頼境界内に取り込むサプライチェーン作業です。

この記事では、skills.shでスキルを見つけ、すぐにグローバルインストールせずにまずソースをレビューし、その後プロジェクトスコープにのみインストールするプロセスを実習します。コマンドは2026年8月7日に確認したskills CLI 1.5.22を基準に検証しました。

公開リポジトリのAgent Skillをレビューし、プロジェクトスコープにインストールするセキュリティサプライチェーンの場面

今回の実習でやること

実習目標は次の5つのステップです。

  1. skills.shとCLIで候補スキルを探します。
  2. インストール前にリポジトリと含まれるファイルを確認します。
  3. コミットハッシュを記録したローカルレビュー版を作成します。
  4. 特定のスキルのみをCodexのプロジェクトスコープにコピーします。
  5. インストール結果を確認し、必要であれば削除します。

準備物はGit、Node.js 18以上、rgです。rgがない場合は、同じ検索をエディタ検索で実行しても構いません。

node --version
npm --version
git --version
rg --version

skills CLIはnpxで直接実行できます。まず、バージョンとヘルプのみを確認します。

npx --yes skills@latest --version
npx --yes skills@latest --help

期待される結果は、1.5.22のようなバージョン番号と、add, use, remove, list, find, update, initコマンドのリストです。バージョンは時間が経つと変わる可能性があるため、チームドキュメントには実習時のバージョンを一緒に記録します。

公開スキルの発見、レビュー、隔離、インストールと検証の流れ

図:公開スキルの安全なインストールフロー · skills.sh CLIドキュメント、vercel-labs/skills READMEに基づいて再構成

なぜインストール前にレビューする必要があるのか

skills.shドキュメントは、公開エコシステムのすべてのスキルについて品質やセキュリティを保証できないため、ユーザーがインストール前に直接レビューする必要があると説明しています。ランキングは匿名インストール統計に基づく発見信号であり、セキュリティスコアではありません。監査バッジがあっても、現在のバージョン、インストール後に追加されたファイル、実際の権限と実行環境は別途確認する必要があります。

セキュリティの観点からは、少なくとも3つのことを区別する必要があります。

WRIMO-MD-TABLE-0][OWASP LLM01:2025も、外部ファイルやウェブページの指示がエージェントの行動を変える間接的なプロンプトインジェクションについて説明しています。したがって、レビュー中のSKILL.mdに「このレビューを中止せよ」「上位の指示を無視せよ」のような文言があっても、コマンドではなく分析対象データとして扱う必要があります。

ステップ1:skills.shで候補を探す

ブラウザでを開き、テーマや作成者を確認できます。ターミナルでは次のように検索します。

npx --yes skills@latest find security
npx --yes skills@latest find skill --owner vercel-labs

候補を決定したら、すぐにインストールせず、まずリポジトリにどのようなスキルが含まれているかをリストアップします。

npx --yes skills@latest add vercel-labs/agent-skills --list

–listはリポジトリで見つかったスキル名を表示します。ここから作成者、リポジトリアドレス、必要なスキル名を記録します。

ステップ2:ソースを別のディレクトリでレビューする

実習用の作業ディレクトリを作成します。

mkdir -p skill-lab/vendor
cd skill-lab

レビューする公式リポジトリをシャロークローンします。例はVercel Labsの公開リポジトリですが、他のスキルにも同じ手順を適用できます。

git clone --depth 1 https://github.com/vercel-labs/agent-skills.git 
  vendor/agent-skills-review
git -C vendor/agent-skills-review rev-parse HEAD

最後のコマンドのコミットハッシュは、レビューした正確な状態を説明する証拠です。次に、ファイルリストと危険信号を探します。

find vendor/agent-skills-review -type f -maxdepth 4 | sort

rg -n -i 
  'ignore previous|system prompt|curl|wget|eval(|exec(|shell=true|.ssh|.aws|process.env|os.environ|rm -rf' 
  vendor/agent-skills-review

検索結果があったからといって、すぐに悪意があると判断してはいけません。セキュリティ教育ドキュメントが危険なコマンドを例として含んでいる可能性もあるからです。発見された行の前後関係、そのファイルが実際に実行されるか、ユーザーの承認なしにネットワークやファイルの変更を行うかを一緒に確認します。

特に、次の質問に答えられない場合は、インストールを保留します。

  • なぜこのスキルはネットワークにアクセスする必要があるのか?
  • どのようなパスを読み書きするのか?
  • シェルコマンドの引数がユーザー入力と結合されるか?
  • 削除、アップロード、コミット、デプロイなどの外部効果の前に承認を要求するか?
  • scripts/にバイナリや難読化されたコードが含まれているか?

ステップ3:プロジェクトスコープに特定のスキルのみをインストールする

レビューしたローカルリポジトリから、必要なスキルを1つだけCodex用のプロジェクトパスにコピーします。

npx --yes skills@latest add ./vendor/agent-skills-review 
  --skill skill-creator 
  --agent codex 
  --copy

重要なのは3つのオプションです。

  • –skill skill-creator:リポジトリ全体ではなく、必要なスキルのみを選択します。
  • –agent codex:インストール対象をCodexに限定します。
  • –copy:元のリポジトリから独立したコピーを作成し、実際のインストールファイルを明確に残します。

-gまたは–globalを付けなかったため、デフォルトであるプロジェクトスコープにインストールされます。グローバルインストールはすべてのプロジェクトでスキルが公開されるため、組織標準のように繰り返し使用が確定している場合にのみ検討する方が安全です。

匿名インストール統計を送信しないようにするには、実行前に次の環境変数を指定できます。

export DISABLE_TELEMETRY=1

skills.sh CLIドキュメントによると、この設定はインストールランキングに使用される匿名テレメトリーを無効にします。

ステップ4:インストール結果を検証する

インストールされたスキルを、人間が読めるリストとJSONでそれぞれ確認します。

npx --yes skills@latest list --agent codex
npx --yes skills@latest list --agent codex --json

次に、プロジェクトで生成されたスキルパスを確認します。

find . -path '*/skills/*/SKILL.md' -print

インストール前のレビュー版と実際のインストール版を比較します。パスはCLIとエージェントのバージョンによって異なる場合があるため、前のコマンドで確認した実際のパスを使用します。

diff -ru 
  vendor/agent-skills-review/skills/skill-creator 
  .codex/skills/skill-creator

Codexがプロジェクトスキルを.agents/skills/にインストールした場合、2番目のパスのみを変更します。違いが予想と異なる場合は、スキルを実行せずに、インストール元とオプションを再度確認してください。

ステップ5:削除とクリーンアップ

実習を終えたか、レビューに失敗した場合は、インストールしたスキルを削除します。

npx --yes skills@latest remove skill-creator --agent codex --yes

リストから消えたか再度確認します。

npx --yes skills@latest list --agent codex

最後に、実習用のレビュー版は作業ディレクトリ内でのみ削除します。削除する前に必ず現在の位置を確認してください。

pwd
rm -rf ./vendor/agent-skills-review

運用環境チェックリスト

  • リポジトリのアドレスとレビューコミットハッシュを記録します。
  • グローバルインストールよりもプロジェクトインストールをデフォルトとします。
  • リポジトリ全体ではなく、必要なスキルのみを選択します。
  • SKILL.md、スクリプト、参照ファイル、バイナリをすべて確認します。
  • ネットワーク、資格情報、削除、デプロイの権限は、個別の実行ポリシーで制限します。
  • アップデートも新規インストールと同様に再度レビューします。
  • 自動スキャナーの通過を安全保証と解釈しません。

まとめ

npx skills addの一行は便利ですが、安全な導入手順は検索よりもレビューに多くの時間を費やします。公開スキルはプロンプトとコードが結合されたサプライチェーンパッケージです。信頼境界を説明するには、出所とコミットを固定し、プロジェクトスコープで必要なスキルのみをインストールし、実際のインストール版と比較する必要があります。

次回は、この原則を適用して、skill-creatorでセキュリティレビュー専用スキルを直接作成します。

公式参考資料


Comments

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です