プラグインはベータ版です。動作や設定は今後のリリースで変更される場合があります。
/<plugin>:<skill> スラッシュコマンドとして利用でき、依存する他のプラグインも自動的に取り込まれます。
プラグインとは、次の内容を含むソースのことです:
skills/ ディレクトリには通常のスキルが格納されます。プラグインによって新しいスキルの
形式が追加されることはありません。SKILL.md の形式については、Creating Skills を参照してください。
プラグインのインストール
owner/repo、git URL、またはローカルパスを指定できます。
-y / --yes を指定します。
プラグインは ユーザー レベルでインストールされ、すべての
プロジェクトで利用できます。
プラグインの管理
devin plugins install ./my-plugin → skills/<name>/SKILL.md を編集 → 変更内容は
次のセッションで反映されるため、update は不要です。
マニフェスト
.devin-plugin/plugin.json はプラグインを定義します。必須なのは name のみで、
インストール済みプラグイン内で一意である必要があります (/<name>:… 名前空間になります) 。
name、version、description、author
({ name, email }) 、homepage、repository、license、keywords です。
依存関係のエントリは source で、文字列の省略記法またはオブジェクトで指定します。
"owner/repo"→ GitHub"https://…","git@…","ssh://…"→ git URL{ "source": "github", "repo": "owner/repo" }{ "source": "url", "url": "https://gitlab.com/team/plugin.git" }
owner/repo、HTTPS URL、.git
URL、SSH 形式) は、同じプラグイン ID を参照します。
依存関係とガバナンス
requiredPlugins
optionalPlugins
forbiddenPlugins
owner/repo、git URL、またはローカルパスで記述した、完全一致のプラグイン ID。- glob パターン —
*を含む任意のエントリ。*は/を含む任意の文字列にマッチします。パターンはまず正規の ID 空間に正規化されるため、acme/*はhttps://github.com/acme/*(acmeのすべての GitHub リポジトリ) になり、*/secretsは任意の owner 配下にあるsecretsという名前のリポジトリにマッチし、https://gitlab.com/acme/*はそのパス配下の任意のリポジトリにマッチします。 - 単独の
"*"。これは他のすべてのプラグインにマッチします (無効化不能な完全ロックダウン) 。
- 拒否が優先されます。 インストール済みのいずれかのプラグインが、完全一致の ID、マッチする glob、または
"*"によって禁止している場合、そのプラグインはブロックされます。 - 自身によるオーバーライド。 プラグイン自身の
requiredPlugins、optionalPlugins、およびそのプラグイン自体は、その自身の禁止リストの対象外です。したがって、forbiddenPlugins: ["*"]とoptionalPlugins: [B, C]を組み合わせると、「自分自身と B、C は許可し、それ以外はすべて禁止する」という意味になります。 - プラグイン間での再許可は不可。 あるプラグインの許可リストによって、別のプラグインが禁止しているものを再度許可することはできません。
forbiddenPlugins: ["*"]を持つインストール済みプラグインは、無効化不能な完全ロックダウンです。 - デフォルトではオープン。 インストール済みのどのプラグインも何も禁止していない場合、ブロックされるものはありません。
- インストール時 — ブロックされているプラグイン (または required plugins を満たせないプラグイン、あるいは名前がインストール済みプラグインと衝突するプラグイン) のインストールは拒否されます。
- 読み込み時 — インストール後にプラグインがブロックされるようになった場合 (たとえば、後からそのプラグインを禁止するプラグインがインストールされた場合) 、そのプラグイン自体はディスク上に残りますが、そのスキルはセッション開始時にスキップされ、どのプラグインがそれを禁止しているかを示す警告が表示されます。
