Skills Anywhere について
Skills Anywhereは、設定したローカルディレクトリやGitソースのAgent Skillsをカタログにまとめ、DeepSeek HarnessやMCPクライアントから利用できるようにします。読み込み前の内容確認と、レビュー済みデータの検証機能も備えています。
主な機能
- 01ローカルとGitソースのスキルを発見
- 02スキルの検索とオンデマンド読み込み
- 03スキル内のリソースリンクを検査
- 04ディレクトリのマニフェストとハッシュを比較
- 05MCPのスキル読み込みレシートを記録
活用シーン
- 01複数のエージェントツールでスキルを再利用
- 02読み込み前にスキルの変更をレビュー
- 03CIでスキルリンクの検査を実施
- 04エージェントに渡された指示を監査
MCP 対応
ローカルstdio MCPサーバーは、ツールと`skill://`リソースを通じてスキルの発見と読み込みを提供します。`open_skill`ではファイル、バンドル、ソースコミットの期待ハッシュを検証できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | 返すスキルの最大数(デフォルトは 200)。 |
| offset | integer | いいえ | スキルをこの数だけスキップします(ページ送り用)。 |
詳細
dsh-skills-anywhere
製品の方向性と受け入れマイルストーン:ロードマップ。
お使いのツール間でスキルを見つけて読み込みます。 ローカルディレクトリと設定済みの Git ソースから
Agent Skills を集め、ライブの DeepSeek Harness
(dsh)プロバイダー、またはローカルの stdio MCP サーバーから利用できる単一のカタログにまとめます。
English | 中文
移動する前にスキルを確認する
インストール済みフォルダー内の不足している補助ファイルを見つけ、MCP 経由で読み込む前にバンドルの変更を確認します。 ブラウザでフォルダーを確認 · 固定された 3 つの公開例。
npx [email protected] check path/to/SKILL.md --resources --json
CI のゲートとして --fail-on-resource-issues を追加します。これはローカルの Markdown リンク先を確認しますが、
説明文中の依存関係は調べず、スキルも実行しません。対象範囲とチュートリアル。
クローン不要の最初の確認 — 不足しているスキル参照を 1 つ見つけて復元し、CI ゲートを確認します。
ワークフローに合わせて始める
| 目的 | ワークフロー |
|---|---|
| エージェントツール間でスキルを再利用する | ローカルソースと Git ソースを集め、dsh またはローカル MCP 経由で必要に応じて読み込む |
| 読み込み前に変更を確認する | 指示とディレクトリマニフェストを比較し、確認済みのコンテンツハッシュを必須にする |
| エージェントに届いた指示を確認する | MCP の読み込みレシートをツール呼び出しやタスク評価とともに保存する |
クイックスタート
Node.js 22.19+ または 24+ が必要です。CLI とローカル MCP サーバーはそれぞれ独立して動作します。 Git ソースを使う場合は Git も必要です。
検出されたスキルを調べます。
npx dsh-skills-anywhere list
MCP クライアントでは、ローカルサーバーの設定を使用します。 DeepSeek Harness の場合は、選択したプロファイルにインストールします。
dsh plugin --profile web add dsh-skills-anywhere
dsh を起動し、その skill ツールまたは /skill-name で読み込みます。Git ソースを追加するには、
npx dsh-skills-anywhere add anthropics/skills を実行します。
インストールの詳細では、リリースアーカイブ、
ソースチェックアウト、および dsh のバージョン要件について説明しています。
CI でスキルを確認します。 SKILL.md ファイルを保持するリポジトリであれば、GitHub Action(0.14.0 以降)を追加できます。
拒否されたファイル、修復、不可視文字は、プルリクエストの注釈、ジョブの概要、JSON レポートに表示されます。
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: noteflowai/[email protected]
with:
fail-on-repair: true
fail-on-hidden-characters: true
入力、出力、対象範囲。モデルのキーや DeepSeek Harness のインストールは不要です。
ブラウザーで試す
ホームページを開くと、作成者によるリソースチェックが始まります。スキルフォルダーを選択して独自のリンクをチェックし、結果画像を保存すると、件数と対象範囲を共有可能な形でまとめられます。画像にはファイル名は含まれませんが、JSON レポートにはレビューに必要なパスが保持されます。
インタラクティブな Hugging Face プレイグラウンドを試す — サンプルのワークスペースを確認し、名前の衝突を解決して、カタログの予算を超えて検索できます。インストールもモデル API も不要です。仕組み。
スキルの手順を確認し、ディレクトリのマニフェストを比較して、カタログのビューを共有できます。 キーボード操作では、選択した行とカタログ設定が保持されます。ローカルでのレビューのために開いたファイルは、ブラウザー内にとどまります。
独自の SKILL.md を持ち込む。 プロバイダーの厳密な解析と寛容な解析をローカルで比較できます。修正内容、呼び出し設定、ダウンロード可能なチェックレポートを確認できます。
ファイルはブラウザー内にとどまります。同じチェックはコマンドラインと CIでも利用でき、ファイルハッシュと実行可能な終了コードが提供されます。
レポートには、認識されたソース URL、フルコミットを指定するアドレス形式、作成者が宣言したツールが列挙されます。参照先のコンテンツ、スクリプトの動作、クライアントとの互換性は別途確認が必要です。
カタログの仕組み
クライアントは、SKILL.md ファイルに対して異なるプロジェクト、ユーザー、プラグインのディレクトリを使用できます。Skills Anywhere は、設定されたソースをその場で検出し、結果のカタログを dsh、またはローカルサーバーへの接続が設定された MCP クライアントから利用できるようにします。ディレクトリ定義は検出パスを記述し、互換性マトリクスにはテスト済みのプロトコル接続が別途記録されています。

dsh 内では、組み込みの ctx.skills レジストリに追加のプロバイダーを 1 つ登録するため、モデルの通常の skill ツールと /name による呼び出しから、単により多くのスキルを利用できます。
- 定義済みのエージェントディレクトリ。 Claude Code、Codex、Cursor、Gemini CLI、GitHub Copilot、Windsurf、Kiro、Goose、Cline、Kimi CLI、Letta Code、およびディレクトリレジストリにあるその他の項目のプロジェクト用およびユーザー用パスです。MCP 経由では、共通の
.agents/skills規約も対象となるため、たとえば Claude Code のようにこの規約を独自には読み取らないクライアントでも、そこにインストールされたスキルを利用できます。 - Claude Code のプラグインマーケットプレイス。 公式 Anthropic マーケットプレイスを含む、
~/.claude/plugins/marketplaces/*/plugins/*/skills/*にネストされたスキルです。 - 設定済みの Git ソース。 スキルのリポジトリ、サブディレクトリ、ブランチ、タグ、またはコミットを選択します。プロバイダーはローカルチェックアウトを管理し、解決されたコミットをロックファイルに記録します。
- その場で読み取るローカルファイル。 既存のスキルは読み込む際に再読み込みされ、各クライアントのディレクトリにコピーされることはありません。Git ソースは、以下で説明する管理対象キャッシュを使用します。
カタログの上限は、モデルのセッションカタログに含めるスキルの概要数を制御します。デフォルトでは最大 50 件です。対象となるその他のスキルも find_skills で検索でき、必要に応じて読み込めます。/name による呼び出しに変更はありません。
同じスキル群は、dsh-skills-anywhere mcp を使ってdsh の外部からも利用できます。MCP クライアントを設定すると、ツールと skill:// リソースを通じてスキルを検出し、開くことができます。利用できるワークフローは、ツール呼び出し、リソース、およびスキル独自の手順に対するクライアントのサポートによって決まります。
プロバイダーは、シンボリックリンクやバイト単位で同一のエントリを重複排除し、ドキュメントに記載されたフロントマターの修復に対応し、discord/configure や telegram/configure など、名前が競合するエントリを改名します。CLI は公開されたカタログ、スキップされたエントリ、および各変更の理由を報告します。
スキルの提供内容を確認する
MCP の open_skill 呼び出しが成功すると、配信された指示本文、元の SKILL.md、および任意のバンドルを示すレシートが返されます。これをツールのスパンに添付すると、タスクの結果と合わせて配信されたバージョンを確認できます。レシートが記録するのは配信内容です。指示への準拠と権限の適用は、別途確認する必要があります。
レシートの仕様 ·
EvalArc Trace Workbench。
例:ロボットの証拠をレビューする
MCP 経由で Microduck のフレームレビュー用スキルを読み込み、レビューを書く前に、エージェントに Robot Reel を使って記録された関節の事実を検証させます。 対話型スキルの例(04 Review robot evidenceを選択) · ローカルでの手順 · 再利用可能なスキル。 ブラウザーには手順が表示され、読み取り専用の検証ツールはエージェント自身の実行ツールで実行されます。新たなシミュレーションや GPU は必要ありません。
一度レビューしたら、同じファイルを読み込む
MCP の open_skill は、元のファイルの SHA-256 を返します。変更された
SKILL.md の指示が返される前に変更を拒否するには、check --json または以前の
open から expected_sha256 を指定します。最新の作成者によるオプトアウトは、
検出結果がキャッシュされている間でも直ちに適用されます。ファイル単位の正確な読み込みワークフロー。
Git ソースのスキルでは、以前のレシートの source_commit を
expected_source_commit として渡します。チェックアウトが移動した場合、または
未追跡、無視対象、assume-unchanged/skip-worktree ファイルを含め、スキルディレクトリ以下に
ローカル変更がある場合、読み込みは拒否されます。
レビュー済みのソースコミットを必須にする。
MCP プロトコルのサポート: ローカルの stdio コマンドは、従来の初期化方式と 2026-07-28 のプロトコル開始方式をネゴシエートします。4 種類の SDK 構成とインストール済みの npm アーカイブは、実際のサブプロセス接続を通じて検証されます。 互換性マトリックスと埋め込みの移行。
スキルディレクトリ全体をレビューします。 bundle /path/to/skill --json を使って
ファイルマニフェストを生成し、追加/削除/変更されたリソースを比較してから、MCP 経由で開く際に
expected_bundle_sha256 を必須にします。
インタラクティブなバンドル比較ツールでは、
指示は変わっていないのにスクリプトが変更されていることを確認でき、独自のマニフェストをローカルで比較できます。
ディレクトリのレビューと制限事項。
ダイジェストは、そのディレクトリ内で記録されたパスとファイルの内容を対象とします。
外部依存関係と実行権限は別途レビューが必要です。また、読み込み後にファイルが変更されることもあります。
インストールの詳細と検出例
ビルドの来歴情報とともに npm で公開されており、 各 GitHub リリースにも同じ tarball が含まれています。
検出結果の例を以下に示します。パスと件数はローカルの インストール環境と設定済みのソースによって異なります。
$ npx dsh-skills-anywhere list
NAME FROM PATH
discord-access claude plugin discord @ claude-plugins-official ~/.claude/plugins/marketplaces/.../discord/skills/access/SKILL.md
frontend-design claude plugin frontend-design @ claude-plugins-official ~/.claude/plugins/marketplaces/.../frontend-design/skills/frontend-design/SKILL.md
skill-creator claude plugin skill-creator @ claude-plugins-official ~/.claude/plugins/marketplaces/.../skill-creator/skills/skill-creator/SKILL.md
...
31 skills, 6 renamed — run `dsh-skills-anywhere doctor` for details
npm ではなく、git チェックアウトまたはリリース tarball からインストールする
各 GitHub リリースにはビルド済み tarball が含まれており、dsh plugin add と npx はどちらもその URL を直接受け付けます(https://github.com/noteflowai/dsh-skills-anywhere/releases/download/v0.19.0/dsh-skills-anywhere-0.19.0.tgz)。未リリースのコミットを使用する場合は、次のようにします。
dsh plugin --profile web add github:noteflowai/dsh-skills-anywhere
git インストールにはソースが含まれるため、pnpm はこのパッケージの prepare ビルドを実行する必要があります。pnpm 10 以降では、許可するまで実行が拒否されます。最初の add は失敗し、許可すべき正確なキーが表示されます。そのキー(コミットを含みます)をプロファイルの pnpm-workspace.yaml にコピーして、add をもう一度実行します。
# $DSH_HOME/profiles/web/pnpm-workspace.yaml
allowBuilds:
'dsh-skills-anywhere@https://codeload.github.com/noteflowai/dsh-skills-anywhere/tar.gz/<sha>': true
インストールを再現可能にするには、コミットを固定します(github:noteflowai/dsh-skills-anywhere#<sha>)。
要件
- DeepSeek Harness
0.1.5-rc.1以降(このスイートは0.1.5-rc.1と0.1.5-rc.2に対して実行されます)。@deepseek-ai/dsh-skillをマウントする任意のプロファイル(付属のweb、acp、headless、sdkプロファイルはいずれもマウントします) - Node.js 22.19+ または 24+
- git ソースの場合は
PATH上にgitが必要です(それ以外はgitなしで動作します)
| 場所 | 例 | dsh のソースラベル | デフォルトのランク |
|---|---|---|---|
| 別のエージェントのプロジェクトスキル | <project>/.claude/skills/*、<project>/.cursor/skills/* | anywhere-project | 250 |
| 別のエージェントのユーザースキル | ~/.codex/skills/*、~/.cursor/skills/* | anywhere-user | 550 |
| Claude Code プラグインマーケットプレイスとインストール済みプラグインのキャッシュ | ~/.claude/plugins/marketplaces/*/plugins/*/skills/* | anywhere-claude-plugins | 580 |
| Git ソース | anthropics/skills、vercel-labs/agent-skills/skills | anywhere-source | 700 |
ランクの数値が小さいほど、dsh レジストリ内で同名のスキルが優先されます。dsh の組み込みルートのランクはそのままです(.dsh/skills は 100、.agents/skills は 200、~/.dsh/skills は 400、~/.agents/skills は 500)。ソース間の優先順位はこれらの値に従います。たとえば、エージェントのプロジェクトエントリはランク 250 のため、ランク 400 の dsh ユーザーエントリより優先されます。dsh 内では、組み込みの .agents/skills と .dsh/skills のルートは再スキャンされません。
スタンドアロン MCP サーバーには組み込みのプロバイダーがないため、同じランク 200 と 500 で、共有の .agents/skills と ~/.agents/skills(Codex、Amp、Goose、Zed、Letta Code のデフォルトの場所)も提供します。createSkillsAnywhereServer を埋め込む側は、sharedDirs: false を渡すか、agents ID を除外できます。
npx dsh-skills-anywhere agents を実行すると、エージェントの一覧と、お使いのマシンに存在するディレクトリを確認できます。
スキルの形式
このプロバイダーは、Agent Skills format に従い、SKILL.md を含むディレクトリ形式と、dsh のフラットな <name>.md 形式を読み込みます。name、description、disable-model-invocation、user-invocable を解析し、license、compatibility、allowed-tools、metadata を保持します。
compatibility と allowed-tools は作成者による宣言であり、実行時の要件とツールの権限はクライアントが管理します。argument-hint や context を含む未知のフィールドは、metadata.frontmatter の下に保持されます。これらを保持しても、元のクライアントの動作が実装されるわけではありません。scripts/、references/、assets/ は、利用するクライアントが使用できるようにスキルのリソースディレクトリ経由で公開されます。
デフォルトの寛容モードでは、name がない場合はディレクトリ名を代わりに使用し、無効な名前はケバブケースに正規化し、description がない場合は最初の段落から生成します。各修正は記録され、doctor で表示されます。組み込みプロバイダーと同じ厳格な動作にするには、lenient: false を設定してください。
Git ソース
npx dsh-skills-anywhere add anthropics/skills # default branch
npx dsh-skills-anywhere add anthropics/[email protected] # tag or branch
npx dsh-skills-anywhere add vercel-labs/agent-skills/skills # sub-directory
npx dsh-skills-anywhere add https://github.com/o/r/tree/main/dir # GitHub tree URL
npx dsh-skills-anywhere add [email protected]:group/skills.git # any git URL
npx dsh-skills-anywhere add ./local/skills-repo --project # local repo, project-scoped
npx dsh-skills-anywhere add o/r --ref 3f2a9c1 --rank 300 # pin a commit, set precedence
ソースは 3 か所から取得され、次の順序で統合されます。プラグインの config.sources、ユーザーファイル ~/.dsh/skills-anywhere/sources.json、プロジェクトファイル <project>/.dsh/skills-anywhere.json(チームでスキルを共有するには、これをコミットしてください)。CLI では後者 2 つを編集できます。
各リポジトリは、ローカルチェックアウト ~/.dsh/skills-anywhere/cache/<host>/<owner>/<repo>(ブランチ、タグ、またはコミットが設定されている場合は <repo>@<ref>)を使用します。バックグラウンド同期は、起動時、syncIntervalMs ごと(デフォルトは 6 時間)、およびソース設定の変更時に実行されます。解決されたコミットは ~/.dsh/skills-anywhere/lock.json に記録されます。
検出処理は利用可能なキャッシュを読み取ります。更新に失敗しても既存のチェックアウトは保持され、同期が一度も成功していないソースからはキャッシュ済みのスキルは提供されません。同期に成功して変更があった場合は、ネットワーク同期を待たずにカタログが無効化されます。
リポジトリから一部のスキルだけを取得するには、各スキルフォルダーについて、同じ repo と完全なコミット SHA を ref として指定したエントリを追加します。これらのエントリは 1 つのチェックアウトを共有します。
examples/isaaclab-v3.0.0 では、IsaacLab のユーザースキル 5 つを(オプトインで)取得する方法を示しています。ファイルハッシュとライセンスのカタログを含み、こうした許可リストを回避する方法を列挙しています。
カタログの予算とfind_skills/open_skillツール
dshは、モデルから呼び出し可能なすべてのスキルの名前と説明を、リクエストのたびにセッションに公開します。マーケットプレイスやいくつかのGitソースを利用すると、コンテキストが数百行に及びます。そのため、プロバイダーはスキルに順位を付け、先頭のcatalog.limit(デフォルトは50)のみをモデルから呼び出し可能としてマークします。残りはモデルからの呼び出しをオフにして公開されるため、カタログには含まれませんが、/nameを使えば引き続き読み込めます。
dsh-skills-anywhere/toolsの行に登録された2つのツールを使うと、モデルから非表示のスキルにもアクセスできます。
- **
find_skills(query, limit?)**は、カタログに含まれているかどうかを問わず、キーワード(名前、説明、whenToUse、提供元)であらゆるスキルを検索し、一致したスキルが一覧に掲載されているかどうかを示します。 - **
open_skill(name)**は、予算の制限によって非表示になったものも含め、正確な名前を指定して任意のスキルを読み込みます。スキル自身のフロントマターでdisable-model-invocation: trueと指定されている場合は、組み込みのskillツールと同様に、引き続き拒否されます。
- id: skills-anywhere
config:
catalog:
limit: 30 # 0 = unlimited (old behaviour)
pin: [frontend-design] # always listed
hide: [example-skill] # never listed, still searchable and /name-invocable
- id: skills-anywhere-tools
config:
findLimit: 10
作成者によって無効化されたスキルは、予算の対象になりません。一覧に残るスキルは以下の優先順位に従うため、プロジェクトレベルのスキルがユーザーレベルのスキルより優先され、ユーザーレベルのスキルはマーケットプレイスやGitソースより優先されます。ツールの行にはツールランタイム(ctx.tools)が必要です。ランタイムのないプロファイルでは保留状態となり、プロバイダーのみで動作します。
CLI
コミットする前にチェックしてください。 npx -y [email protected] check skills/example/SKILL.md --fail-on-repairを実行します。プレイグラウンドと同じパーサーを使用して、複数ファイルのチェック、ファイルハッシュ付きのJSONレポート、CI終了コードを利用できます。チェック対象は、指定されたファイルのみです。GitHub Actionsでは、uses: noteflowai/dsh-skills-anywhereを指定すると、追跡対象のすべてのSKILL.mdを選択し、結果に注釈を付けます。
コマンド、GitHub Action、対象範囲。
dsh-skills-anywhere list [--all] [--json] Skills the provider publishes (--all shows hidden duplicates)
dsh-skills-anywhere agents [--json] Agent directory definitions and paths found here
dsh-skills-anywhere sources [--json] Configured git sources and their synced commits
dsh-skills-anywhere add <source> [--ref] [--path] [--rank] [--project]
dsh-skills-anywhere remove <source> [--project]
dsh-skills-anywhere sync [--force] [--json] Clone or refresh every source now
dsh-skills-anywhere doctor [--json] Repaired, skipped, renamed and duplicate skills, with reasons
dsh-skills-anywhere check <files...> [--json] Explicit local files; strict parser gate by default
dsh-skills-anywhere mcp Serve skills to configured clients over stdio MCP
dsh-skills-anywhere route prepare <task> [--json] Typed choice request over installed, openable skills
dsh-skills-anywhere route apply --request <file> --response <file> [--min-confidence <x>] [--json]
記録されたスキル選択を検証する
分類器、LLM、または人がタスクに使うスキルを選択すると、route はその選択をここにインストールされているスキルと照合します。route prepare は、find_skills と同じキーワード検索で検出されたすべてのスキルをランク付けし、open_skill が拒否するスキルを除外してから、先頭の 8 件だけを型付き選択リクエスト(skills-anywhere-route-request-1)として残します。予約済みの _none オプションは「該当するスキルが一覧にない」という意味で、スキル名として使うことはできません。各候補には、出所、SKILL.md のパス、コンテンツハッシュが記録されます。判定者がレスポンスを書き込み、route apply はそれを信頼できないデータとして読み込み、結果を 1 つだけ報告します。何かが読み込まれたり、実行されたり、ネットワーク経由で送信されたりすることはありません。
dsh-skills-anywhere route prepare "fill pdf forms" --json > req.json
# Your decider writes resp.json, for example:
# {"choice": "pdf-forms", "confidence": 0.86, "model": "example"}
dsh-skills-anywhere route apply --request req.json --response resp.json --min-confidence 0.7
| 結果 | 終了コード | 意味 |
|---|---|---|
selected | 0 | 信頼度がしきい値を満たしています。開くスキルの名前、出所、SKILL.md のパスを出力します |
no_match | 0 | 判定者がしきい値以上の信頼度で _none を選択しました |
abstain | 0 | 信頼度が報告されていないか、--min-confidence を下回っています |
stale | 1 | prepare の実行後、選択したスキルが削除された、開けなくなった、または SKILL.md のパスやコンテンツハッシュが変更された(編集された、または別の出所がその名前を引き継いだ)状態です。prepare を再実行してください |
invalid_input | 2 | ファイルを読み取れない、または JSON ではない、リクエストスキーマが間違っている、選択肢にない項目が選ばれている、あるいは信頼度が 0~1 の数値ではありません |
無効な --min-confidence を指定した場合や、別のコマンドで --request/--response/--min-confidence を指定した場合も、終了コード 2 で終了します。デフォルトの 0.7 は未調整の仮の値なので、判定者のホールドアウト結果に基づいてしきい値を選んでください。--json は、結果、選択、信頼度、しきい値、model(出所の記録のみ)を含む skills-anywhere-route-result-1 を出力します。それ以外のレスポンスキーは無視されます。リクエストファイルには、このマシン上の絶対パスが含まれます。
すべてのコマンドで --cwd <dir> を使用できます。check では指定されたファイルの解決に使い、その他のコマンドでは対象プロジェクトの選択に使います。check --lenient はプロバイダーによる修復を受け入れます。--fail-on-repair は、選択したモードで修復が報告された場合に拒否します。
--fail-on-hidden-characters は、不可視文字や方向を変える文字を含むファイルを拒否します。これらの文字は、すべてのレポートで hiddenCharacters として列挙されます。
CLI はプラグインと同じ解析コードを使用し、dsh の起動を必要としません。
MCP サーバーとして使用する
dsh-skills-anywhere mcp は、stdio 経由でローカルの
Model Context Protocol サーバーを起動します。
以下のツールを通じて、設定済みのソース、重複排除、命名規則をそのまま利用できます。MCP 設定を使用して、対応するクライアントを接続してください。
| ツール | 機能 |
|---|---|
list_skills | モデルから呼び出し可能なすべてのスキルを、説明と出所とともに表示します(limit、offset) |
find_skills | 名前、説明、出所を対象にキーワード検索します |
open_skill | 1 つのスキルの指示と、そのスクリプトや参照資料が置かれているディレクトリを読み込みます |
リソース参照に対応するクライアントでは、スキルは補完機能付きの skill://<name> リソースとしても公開されます。MCP ツールとリソースには、フロントマターで disable-model-invocation: true が設定されたスキルは含まれません。サーバーは dsh とは独立して実行されます。
以下の例はクライアントの設定を示しています。自動接続チェックでは、互換性マトリックスに記載されている 4 つの SDK 設定とインストール済みパッケージが対象です。アプリケーション固有の動作は、クライアントのバージョンとツールやリソースへの対応状況によって異なります。
Claude Code(プラグインとして使用。このリポジトリはプラグインマーケットプレイスも兼ねています)
claude plugin marketplace add noteflowai/dsh-skills-anywhere
claude plugin install dsh-skills-anywhere@noteflowai
代わりにサーバーを直接登録することもできます:claude mcp add skills-anywhere -- npx -y dsh-skills-anywhere mcp。どちらの場合も、接続できるように Claude Code を一度再起動してください。
Cursor(.cursor/mcp.json または ~/.cursor/mcp.json)
{ "mcpServers": { "skills-anywhere": { "command": "npx", "args": ["-y", "dsh-skills-anywhere", "mcp"] } } }
Codex(~/.codex/config.toml)
[mcp_servers.skills-anywhere]
command = "npx"
args = ["-y", "dsh-skills-anywhere", "mcp"]
MCP レジストリの識別子は
io.github.noteflowai/dsh-skills-anywhere です。このリポジトリには、その形式に対応するクライアント向けの
Agent Plugin マニフェスト(plugin.json と mcp.json)も含まれています。クライアントのインストール手順に従ってください。
クライアントがプロジェクト外でサーバーを起動する場合は、--cwd <dir> を追加してください。
設定された Git ソースは、起動時にバックグラウンドで同期されます。サーバーを埋め込むには、
import { createSkillsAnywhereServer } from 'dsh-skills-anywhere/mcp' を実行すると
McpServer とプロバイダーが返されます。詳しくは
トランスポートと移行ガイドを参照してください。
dsh のウェブ UI でスキルを閲覧・切り替える
dsh web で、設定 → プラグイン → プラグイン設定を開きます。Skills Anywhere カードには、プロバイダーが検出したすべてのスキルが、配置場所(エージェントのディレクトリ、Claude Code プラグイン、Git ソース)ごとにまとめて表示されます。また、カタログ内の状態(モデルに掲載、予算またはユーザー操作により非掲載、または作成者による無効化)や、名前が重複した場合の変更後の名前も表示されます。各行には、ピン留め(常に掲載)、非表示(モデルカタログには表示しませんが、/name と find_skills から引き続き利用可能)、除外(プロバイダーから削除)の操作があります。カタログの予算はその場で編集でき、フィルターボックスでは名前、説明、出所を検索できます。

編集内容は、プロファイルの dsh 設定ドキュメントに skills-anywhere 名前空間として書き込まれ、cordis.patch.yml の catalog と excludeSkills に重ねて適用されます。モデルカタログにはすぐに反映されるため、再起動やファイル編集は不要です。このカードが表示されるのは、dsh の設定サービスとウェブサーバーをマウントするプロファイル(標準の web プロファイルなど)に限られます。それ以外の環境では、プロバイダーは構成どおりに動作します。
設定
プロフィールの cordis.patch.yml でこの行を上書きします。パッチでは config ブロック全体が置き換えられるため、必要なキーをすべて再記述してください。
- id: skills-anywhere
config:
agents: true
excludeAgents: [openclaw]
claudePlugins: true
sources:
- anthropics/skills
- { repo: vercel-labs/agent-skills, path: skills, ref: main, rank: 650 }
excludeSkills: [example-skill]
| フィールド | デフォルト | 意味 |
|---|---|---|
providerName | skills-anywhere | ctx.skills 上のプロバイダー名 |
agents | true | 他のエージェントのスキルディレクトリをスキャンします |
excludeAgents | [] | スキップするエージェント ID(agents コマンドを参照) |
sharedDirs | dsh では false、MCP サーバーでは true | dsh の組み込みプロバイダーがすでに読み込む .agents/skills と ~/.agents/skills もスキャンします |
extraProjectDirs | [] | 追加のプロジェクト相対スキルディレクトリ |
extraUserDirs | [] | 追加の絶対パスまたは ~/ スキルディレクトリ |
claudePlugins | true | Claude Code のプラグインマーケットプレイスとキャッシュをスキャンします |
sources | [] | Git ソース:文字列、または { repo, ref?, path?, rank? } |
sourcesFiles | true | ユーザーおよびプロジェクトの sources.json ファイルも読み込みます |
cacheDir | ~/.dsh/skills-anywhere/cache | ソースのチェックアウト先 |
sync | true | Git ソースをすべてクローンし、更新します |
syncOnStart | true | プラグインの起動時、およびプロジェクトの初回使用時に更新します |
syncIntervalMs | 21600000 | バックグラウンドでの更新間隔。0 で無効になります |
syncTimeoutMs | 120000 | Git コマンドごとのタイムアウト |
maxDepth | 5 | ソースおよびマーケットプレイス内を走査するディレクトリ階層の深さ |
dedupe | true | シンボリックリンクおよびバイト単位で同一の重複をまとめます |
lenient | true | 修復可能なフロントマターをスキップせずに修復します |
watch | true | ローカルのルートを監視し、変更時にカタログを更新します |
excludeSkills | [] | 非表示にするスキル名(フロントマターの生の名前、または list に表示される公開名)。ウェブカードから実行時に編集できます |
ranks | { project: 250, user: 550, claudePlugins: 580, sources: 700 } | グループごとの優先順位 |
catalog.limit | 50 | モデルカタログに表示する、このプロバイダーのスキル数。0 = 無制限 |
catalog.pin | [] | 常に表示する名前 |
catalog.hide | [] | 表示しない名前(引き続き /name で呼び出し可能で、検索対象になります) |
dshHome, home | $DSH_HOME / ~ | パスのルート。主にテスト用 |
dsh-skills-anywhere/tools の行では、findLimit(デフォルトは 10)、findMaxLimit(50)、および find / open のブール値を指定して、どちらか一方のツールのみを登録できます。
優先順位と重複の仕組み
- ルートは優先順位の順にスキャンされます。同じ優先順位内では、エージェントのテーブル順、その後にパス順になります。
- 同じファイル(シンボリックリンク)を指すエントリは、最初のものにまとめられます。同じ名前で本文がバイト単位で同一のエントリも、最初のものにまとめられます。どちらも
doctorでは非表示の重複として表示されます。 - 同じ名前を共有するエントリが残っていても内容が異なる場合は、すべて保持されます。そのうち1つがあなたのもの(エージェントディレクトリ)であれば、それは元の名前のままになり、他のエントリにはプラグイン、リポジトリ、またはエージェントの名前が接頭辞として付けられます(
telegram-configure)。すべてのエントリがマーケットプレイスまたは Git ソース由来の場合は、すべてに接頭辞が付き、意味のないaccessではなく、discord-accessとtelegram-accessのようになります。doctorに名前の変更が一覧表示されます。 - その後、dsh レジストリがこのプロバイダーの候補を組み込み候補と優先順位に基づいて統合します。
統合例と測定結果
これらの例を使って、配信確認と個別に算出したタスクチェックを関連付けてください。レポートには、指示、ツールの結果、配信されたすべてのプログラムが保持されています。
| ワークフロー | 例と証拠 | 記録された結果 |
|---|---|---|
| スキル配信を比較する | 27件のQwen3-8B試行を、3つのエンジニアリングプロファイルで、スキルなし、直接配信、MCPの各条件について比較 | 直接配信とMCPの試行では、タスクを完全に解決できたものはありません。スキルなしの条件では、最終プロファイルの試行3件中2件でタスクを解決しました。 |
| 選択したセッションから続行する | Funes MCPのソース例と6件の続行試行。各条件で3件 | 取得呼び出しは6件すべて成功しました。プログラムは6件すべて変更されず、各条件でタスクを解決できたのは0/3件でした。 |
独立したソースコード上のSWEタスクを確認する: 別の固定コホートでは、4つのワークフロー条件でAstropy、pytest、SymPyに対する36件の試行を記録しています。直接読み込みとMCP読み込みでは同一のガイダンスを配信し、無関係なMCPコントロールではプロンプトの長さを一致させています。ネイティブの受け入れ判定を得た試行はありません。上流インフラのフラグにより、31件のレポートは評価可能で、5件は不確定のままです。8件の試行で空でないパッチが作成されています。 手法とオフライン記録では、ツールの失敗、ネイティブ判定、未完了の使用状況を確認できます。
レビュー済みのスキルを新しいセッションに引き継ぐ: 別の6件の試行コホートでは、ワークフローのMCP読み込みを通じて、前のセッションのスキルのバイト列をそのまま再利用しています。読み込みは6件すべて成功し、メモリーグループは6件の結果を取得しています。プログラムは6件すべて変更されず、完全な受け入れ基準に合格したタスクはありません。レポートでは、元のピン、配信確認、取得した履歴、タスクチェックを関連付けています。
ランタイムの動作を確認するには、分離されたスキル構成のフィクスチャを使用してください。 レポートでは、作成された32件のコントロールと12件のモデル試行について、ファイルの受け入れ、サービスの完了、認可を分けて扱っています。サービスのタスクを完了したモデル試行はありません。
公開タスクを対象としたこれらの小規模な調査では、特定のワークフローを評価しています。スキルやメモリーの一般的な効果を確認するには、別途評価が必要です。調査ガイドでは、手法、構成コントロール、個別のコホートをまとめており、再現に利用できます。
セキュリティに関する注意事項
- このプラグインはスキルファイルを読み取ります。エージェントのディレクトリに書き込むことはありません。
- Gitソースは、プラグインの起動時と更新間隔ごとに、マシン上で
gitを実行します。完全には信頼できないものにはコミットを固定し、lock.jsonを確認してください。 - 読み込まれたスキルは、エージェントのコンテキストに指示を追加します。使用前に指示と参照されているスクリプトを確認してください。実行権限はクライアントが制御し、読み込んでもモデルが指示に従うとは限りません。
- スキルの読み取りにはNodeのファイルシステムAPIを使用しており、dshのサンドボックス化された
ctx.fsは使用しません。組み込みプロバイダーも、バンドルされたルートに対して同じ方法を使用します。
開発
pnpm install
pnpm run check # typecheck + lint + tests + build
pnpm pack # tarball for `dsh plugin --profile <name> add ./dsh-skills-anywhere-*.tgz`
テストは、実際の@deepseek-ai/dsh-skillレジストリと、一時ディレクトリ内の実際のgitリポジトリを対象に実行されます。
コントリビューション
Issueやプルリクエストを歓迎します。src/agents.tsに検出パスを追加し、そのソースを明記して、ディレクトリ検出をテストしてください。クライアント統合には、個別のプロトコルチェックとワークフローチェックが必要です。
CONTRIBUTING.mdを参照してください。
コミュニティのリスト:Awesome DeepSeek Harness · Awesome Gemini CLI。 公開履歴と検証。
ライセンス
MIT © Note Flow AI
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。

