このガイドでは、Droidのプラグイン作成方法を説明します。プラグインは、スキル、コマンド、ツールを共有可能なパッケージにまとめ、プロジェクトやチーム間で利用できるものです。Documentation Index
Fetch the complete documentation index at: https://factory-docs-auto-sync-jp-docs.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
クイックスタート
プラグインマニフェスト
.factory-plugin/plugin.jsonにあるマニフェストファイルは、プラグインのメタデータを定義します:
必須フィールド
| フィールド | 説明 |
|---|---|
name | 一意の識別子。小文字、数字、ハイフンを使用。 |
description | プラグインマネージャーに表示される短い説明。 |
version | セマンティックバージョン(例:1.0.0)。 |
オプションフィールド
| フィールド | 説明 |
|---|---|
author | nameと任意のemailを含むオブジェクト。 |
homepage | プラグインドキュメントのURL。 |
repository | GitリポジトリのURL。 |
license | ライセンス識別子(例:MIT、Apache-2.0)。 |
スキルの追加
スキルはモデルによって呼び出される機能です。skills/ディレクトリに作成してください:
スキル形式
スキルのフロントマター
| フィールド | 必須 | 説明 |
|---|---|---|
name | はい | スキルの一意識別子 |
description | はい | このスキルをいつ使用するか(モデルがいつ呼び出すかを判断するのに役立つ) |
disable-model-invocation | いいえ | ユーザー専用にするにはtrueを設定 |
allowed-tools | いいえ | スキルが使用できるツールを制限 |
コマンドの追加
コマンドはスラッシュ記法でユーザーによって呼び出されます。commands/ディレクトリに作成してください:
コマンド形式
commands/review-pr.mdにあるコマンドは/review-prになります。
コマンド引数
ユーザー入力を取得するには$ARGUMENTSを使用します:
/greet Alice
エージェントの追加
droids/ディレクトリに特殊化されたサブエージェントを定義します:
エージェント形式
フックの追加
hooks/hooks.jsonでライフサイクルフックを定義します:
フック設定
環境変数
| 変数 | 説明 |
|---|---|
${DROID_PLUGIN_ROOT} | プラグインディレクトリへの絶対パス |
${CLAUDE_PLUGIN_ROOT} | ${DROID_PLUGIN_ROOT}のエイリアス(Claude Code互換性) |
プラグインフックは
/hooks importではインポートできません。プラグインのルートパスを解決できるインストール済みプラグイン内でのみ機能します。MCPサーバーの追加
プラグインルートのmcp.jsonでMCPサーバーを設定します:
プラグインのテスト
ローカルテスト
開発中のテストには、ローカルディレクトリからインストールします:検証チェックリスト
プラグインを共有する前に:- マニフェストに必須フィールドがある(
name、description、version) - すべてのスキルのフロントマターに
nameとdescriptionがある - コマンドが引数ありでもなしでも動作する
- ハードコードされたパスや機械固有の設定がない
- READMEですべてのコマンドと機能が文書化されている
プラグインの配布
マーケットプレースの作成
マーケットプレースは、利用可能なプラグインをリストするマニフェストを含むGitリポジトリです:マーケットプレースマニフェスト
.factory-plugin/marketplace.jsonを作成します:
| フィールド | 必須 | 説明 |
|---|---|---|
name | はい | マーケットプレース識別子 |
description | いいえ | マーケットプレースを閲覧時に表示 |
owner | いいえ | 連絡先情報 |
plugins[].name | はい | プラグイン識別子 |
plugins[].source | はい | プラグインディレクトリへの相対パス |
plugins[].description | いいえ | プラグインブラウザに表示 |
plugins[].category | いいえ | プラグインを整理するため |
バージョン管理
ドキュメント目的でプラグインマニフェストではセマンティックバージョニングを使用します:- メジャー(1.0.0 → 2.0.0):破壊的変更
- マイナー(1.0.0 → 1.1.0):新機能、後方互換性あり
- パッチ(1.0.0 → 1.0.1):バグ修正
DroidはプラグインバージョンをセマンティックバージョンではなくGitコミットハッシュで追跡します。ユーザーがプラグインを更新すると、常にマーケットプレイスの最新コミットを取得します。バージョン固定は現在サポートされていません。
Claude Code互換性
DroidはClaude Codeプラグインと完全に互換性があります。Claude Codeプラグインを見つけた場合、直接インストールでき、Droidが自動的に形式を変換します。ベストプラクティス
プラグインの焦点を絞る
プラグインの焦点を絞る
プラグインは単一の目的またはワークフローを中心に設計します。すべてを行う巨大なプラグインより、複数の小さなプラグインを優先してください。
徹底的に文書化する
徹底的に文書化する
READMEには以下を含めます:
- プラグインの内容
- インストール手順
- 利用可能なすべてのコマンドと使い方
- 設定オプション
- 例
セマンティックバージョニングを使用
セマンティックバージョニングを使用
更新がワークフローを壊す可能性があるタイミングをユーザーが把握できるよう、semver規約に従います。
複数環境でテスト
複数環境でテスト
該当する場合は、プラグインがmacOS、Linux、Windowsで動作することを確認します。移植性のあるシェルコマンドを使用し、プラットフォーム固有のパスを避けます。
エラーを適切に処理する
エラーを適切に処理する
スクリプトはユーザーをブロックせず、適切に失敗するべきです。エラーはログに記録し、セッションをクラッシュさせないでください。
ユーザーのプライバシーを尊重する
ユーザーのプライバシーを尊重する
明示的な同意なしにテレメトリを収集したりデータを送信したりしないでください。プラグインが行うネットワークリクエストは文書化してください。
例:完全なプラグイン
コードレビュープラグインの完全な例です:.factory-plugin/plugin.json:
commands/review.md:
skills/review-patterns/SKILL.md:
droids/reviewer.md:
次のステップ
プラグイン概要
プラグインのインストールと管理について学びます。
スキル
強力なスキルの作成を詳しく学びます。
カスタムコマンド
ユーザー起動のスラッシュコマンドを作成します。
カスタムDroid
プラグイン用の専門サブエージェントを作成します。
