エージェント スキル
SKILL.md 定義を使用して再利用可能な動作を定義する
エージェント スキルを使用すると、Dropstone はリポジトリまたはホーム ディレクトリから再利用可能な指示を検出できます。
スキルは組み込みの skill ツールを使用してオンデマンドで読み込まれます。エージェントは利用可能なスキルを確認でき、タスクに一致するスキルがある場合は完全なコンテンツを読み込むことができます。
ファイルを配置する
スキル名ごとに 1 つのフォルダを作成し、その中に SKILL.md を配置します。
Dropstone は以下の場所を検索します。
- プロジェクト設定:
.dropstone/skills/<name>/SKILL.md - グローバル設定:
~/.config/dropstone/skills/<name>/SKILL.md - プロジェクト Claude 互換:
.claude/skills/<name>/SKILL.md - グローバル Claude 互換:
~/.claude/skills/<name>/SKILL.md - プロジェクト エージェント互換:
.agents/skills/<name>/SKILL.md - グローバル エージェント互換:
~/.agents/skills/<name>/SKILL.md
検出を理解する
プロジェクトローカル パスの場合、Dropstone は現在の作業ディレクトリから git ワークツリーに到達するまで上へ移動します。
途中で .dropstone/ 内の一致する skills/*/SKILL.md と、一致する .claude/skills/*/SKILL.md または .agents/skills/*/SKILL.md を読み込みます。
グローバル定義は ~/.config/dropstone/skills/*/SKILL.md、~/.claude/skills/*/SKILL.md、および ~/.agents/skills/*/SKILL.md からも読み込まれます。
フロントマターを記述する
各 SKILL.md は YAML フロントマターで始まる必要があります。
以下のフィールドのみが認識されます。
name(必須)description(必須)license(オプション)compatibility(オプション)metadata(オプション、文字列から文字列へのマップ)
不明なフロントマター フィールドは無視されます。
名前を検証する
name は以下を満たす必要があります。
- 1~64 文字
- 単一のハイフン区切り文字を持つ小文字英数字
-で始まったり終わったりしない- 連続した
--を含まない SKILL.mdを含むディレクトリ名と一致する
同等の正規表現:
^[a-z0-9]+(-[a-z0-9]+)*$
長さルールに従う
description は 1~1024 文字である必要があります。
エージェントが正しく選択できるように、十分に具体的に保ちます。
例を使用する
.dropstone/skills/git-release/SKILL.md を次のように作成します。
---
name: git-release
description: 一貫性のあるリリースとチェンジログを作成する
license: MIT
compatibility: dropstone
metadata:
audience: maintainers
workflow: github
---
## 私がすること
- マージされた PR からリリース ノートを作成する
- バージョン バンプを提案する
- コピー可能な `gh release create` コマンドを提供する
## 私を使用する場合
タグ付きリリースを準備するときに使用します。
ターゲット バージョン管理スキームが不明な場合は、明確にする質問をしてください。
ツール説明を認識する
Dropstone は skill ツール説明で利用可能なスキルをリストします。
各エントリにはスキル名と説明が含まれます。
<available_skills>
<skill>
<name>git-release</name>
<description>一貫性のあるリリースとチェンジログを作成する</description>
</skill>
</available_skills>
エージェントはツールを呼び出してスキルを読み込みます。
skill({ name: "git-release" })
権限を設定する
dropstone.json でパターンベースの権限を使用して、エージェントがアクセスできるスキルを制御します。
{
"permission": {
"skill": {
"*": "allow",
"pr-review": "allow",
"internal-*": "deny",
"experimental-*": "ask"
}
}
}
| 権限 | 動作 |
|---|---|
allow | スキルが即座に読み込まれる |
deny | スキルがエージェントから非表示、アクセス拒否 |
ask | 読み込み前にユーザーに承認を求める |
パターンはワイルドカードをサポートします。internal-* は internal-docs、internal-tools などと一致します。
エージェントごとにオーバーライドする
グローバル デフォルトとは異なる権限を特定のエージェントに付与します。
カスタム エージェント用 (エージェント フロントマター内):
---
permission:
skill:
"documents-*": "allow"
---
組み込みエージェント用 (dropstone.json 内):
{
"agent": {
"plan": {
"permission": {
"skill": {
"internal-*": "allow"
}
}
}
}
}
スキル ツールを無効にする
スキルを使用すべきではないエージェントのスキル ツールを完全に無効にします。
カスタム エージェント用:
---
tools:
skill: false
---
組み込みエージェント用:
{
"agent": {
"plan": {
"tools": {
"skill": false
}
}
}
}
無効にすると、<available_skills> セクションは完全に省略されます。
読み込みのトラブルシューティング
スキルが表示されない場合:
SKILL.mdがすべて大文字であることを確認します- フロントマターに
nameとdescriptionが含まれていることを確認します - スキル名がすべての場所で一意であることを確認します
- 権限を確認します。
denyのスキルはエージェントから非表示になります