メインコンテンツへスキップ

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.

このガイドでは、Droidのプラグイン作成方法を説明します。プラグインは、スキル、コマンド、ツールを共有可能なパッケージにまとめ、プロジェクトやチーム間で利用できるものです。

クイックスタート

1

プラグインディレクトリを作成

mkdir -p my-plugin/.factory-plugin
2

マニフェストを作成

my-plugin/.factory-plugin/plugin.jsonを作成します:
{
  "name": "my-plugin",
  "description": "A helpful plugin description",
  "version": "1.0.0"
}
3

コマンドを追加

my-plugin/commands/hello.mdを作成します:
---
description: Greet the user with a friendly message
---

Greet the user warmly and ask how you can help them today.
4

プラグインをテスト

テストのためローカルディレクトリからインストールします:
droid plugin marketplace add ./my-plugin
droid plugin install my-plugin@my-plugin
次に/helloを実行してテストします。

プラグインマニフェスト

.factory-plugin/plugin.jsonにあるマニフェストファイルは、プラグインのメタデータを定義します:
{
  "name": "my-plugin",
  "description": "What this plugin does",
  "version": "1.0.0",
  "author": {
    "name": "Your Name",
    "email": "you@example.com"
  },
  "homepage": "https://github.com/you/my-plugin",
  "repository": "https://github.com/you/my-plugin",
  "license": "MIT"
}

必須フィールド

フィールド説明
name一意の識別子。小文字、数字、ハイフンを使用。
descriptionプラグインマネージャーに表示される短い説明。
versionセマンティックバージョン(例:1.0.0)。

オプションフィールド

フィールド説明
authornameと任意のemailを含むオブジェクト。
homepageプラグインドキュメントのURL。
repositoryGitリポジトリのURL。
licenseライセンス識別子(例:MITApache-2.0)。

スキルの追加

スキルはモデルによって呼び出される機能です。skills/ディレクトリに作成してください:
my-plugin/
└── skills/
    └── code-review/
        └── SKILL.md

スキル形式

---
name: code-review
description: ベストプラクティスと潜在的な問題についてコードをレビューする。コードレビュー、PR確認、コード品質分析で使用します。
---

コードをレビューするときは、以下を確認します:
1. コードの整理と構造
2. エラーハンドリング
3. セキュリティ上の懸念
4. テストカバレッジ

行参照付きで具体的かつ実行可能なフィードバックを提供します。

スキルのフロントマター

フィールド必須説明
nameはいスキルの一意識別子
descriptionはいこのスキルをいつ使用するか(モデルがいつ呼び出すかを判断するのに役立つ)
disable-model-invocationいいえユーザー専用にするにはtrueを設定
allowed-toolsいいえスキルが使用できるツールを制限

コマンドの追加

コマンドはスラッシュ記法でユーザーによって呼び出されます。commands/ディレクトリに作成してください:
my-plugin/
└── commands/
    └── review-pr.md

コマンド形式

---
description: 現在のPRに問題がないかレビューする
disable-model-invocation: true
---

# PRレビューコマンド

現在のプルリクエストをレビューします。以下を確認します:
1. コードの正確性とロジックエラー
2. テストカバレッジ
3. ドキュメント更新
4. 破壊的変更

ユーザーが引数を指定した場合: $ARGUMENTS

引数を使用してレビュー対象を特定の領域に絞ります。
commands/review-pr.mdにあるコマンドは/review-prになります。

コマンド引数

ユーザー入力を取得するには$ARGUMENTSを使用します:
---
description: Greet a user by name
---

Greet the user named "$ARGUMENTS" warmly.
使用方法:/greet Alice

エージェントの追加

droids/ディレクトリに特殊化されたサブエージェントを定義します:
my-plugin/
└── droids/
    └── security-reviewer.md

エージェント形式

---
name: security-reviewer
description: Reviews code for security vulnerabilities
model: inherit
tools: ["Read", "Grep", "Glob"]
---

You are a security expert. Review the code for:

1. Injection vulnerabilities (SQL, command, XSS)
2. Authentication/authorization issues
3. Sensitive data exposure
4. Insecure cryptography
5. Security misconfigurations

Report findings with severity levels and remediation steps.
完全なエージェント設定オプションについてはCustom Droidsを参照してください。

フックの追加

hooks/hooks.jsonでライフサイクルフックを定義します:
my-plugin/
└── hooks/
    ├── hooks.json
    └── format-check.sh

フック設定

{
  "PostToolUse": [
    {
      "matcher": "Create|Edit|ApplyPatch",
      "hooks": [
        {
          "type": "command",
          "command": "${DROID_PLUGIN_ROOT}/hooks/format-check.sh",
          "timeout": 30
        }
      ]
    }
  ]
}

環境変数

変数説明
${DROID_PLUGIN_ROOT}プラグインディレクトリへの絶対パス
${CLAUDE_PLUGIN_ROOT}${DROID_PLUGIN_ROOT}のエイリアス(Claude Code互換性)
プラグインフックは/hooks importではインポートできません。プラグインのルートパスを解決できるインストール済みプラグイン内でのみ機能します。

MCPサーバーの追加

プラグインルートのmcp.jsonでMCPサーバーを設定します:
{
  "mcpServers": {
    "my-api": {
      "command": "npx",
      "args": ["-y", "@example/mcp-server"],
      "env": {
        "API_KEY": "${MY_API_KEY}"
      }
    }
  }
}

プラグインのテスト

ローカルテスト

開発中のテストには、ローカルディレクトリからインストールします:
droid plugin marketplace add ./my-plugin
droid plugin install my-plugin@my-plugin

検証チェックリスト

プラグインを共有する前に:
  • マニフェストに必須フィールドがある(namedescriptionversion
  • すべてのスキルのフロントマターにnamedescriptionがある
  • コマンドが引数ありでもなしでも動作する
  • ハードコードされたパスや機械固有の設定がない
  • READMEですべてのコマンドと機能が文書化されている

プラグインの配布

マーケットプレースの作成

マーケットプレースは、利用可能なプラグインをリストするマニフェストを含むGitリポジトリです:
my-marketplace/
├── .factory-plugin/
│   └── marketplace.json
├── plugin-one/
│   └── .factory-plugin/
│       └── plugin.json
└── plugin-two/
    └── .factory-plugin/
        └── plugin.json

マーケットプレースマニフェスト

.factory-plugin/marketplace.jsonを作成します:
{
  "name": "my-marketplace",
  "description": "A collection of useful plugins",
  "owner": {
    "name": "Your Name"
  },
  "plugins": [
    {
      "name": "plugin-one",
      "description": "Description of plugin one",
      "source": "./plugin-one"
    },
    {
      "name": "plugin-two",
      "description": "Description of plugin two",
      "source": "./plugin-two"
    }
  ]
}
フィールド必須説明
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で動作することを確認します。移植性のあるシェルコマンドを使用し、プラットフォーム固有のパスを避けます。
スクリプトはユーザーをブロックせず、適切に失敗するべきです。エラーはログに記録し、セッションをクラッシュさせないでください。
明示的な同意なしにテレメトリを収集したりデータを送信したりしないでください。プラグインが行うネットワークリクエストは文書化してください。

例:完全なプラグイン

コードレビュープラグインの完全な例です:
code-review-plugin/
├── .factory-plugin/
│   └── plugin.json
├── commands/
│   └── review.md
├── skills/
│   └── review-patterns/
│       └── SKILL.md
├── droids/
│   └── reviewer.md
└── README.md
.factory-plugin/plugin.json:
{
  "name": "code-review",
  "description": "Automated code review with multiple specialized reviewers",
  "version": "1.0.0",
  "author": { "name": "Your Team" }
}
commands/review.md:
---
description: Run comprehensive code review on staged changes
---

Review the staged git changes using the review-patterns skill.
Focus on: $ARGUMENTS

If no focus area specified, perform a general review.
skills/review-patterns/SKILL.md:
---
name: review-patterns
description: Use when reviewing code to check for common issues and best practices.
---

以下についてコードを確認します:
- ロジックエラーとエッジケース
- エラーハンドリングの完全性
- セキュリティ脆弱性
- パフォーマンス上の懸念
- テストカバレッジの不足
droids/reviewer.md:
---
name: reviewer
description: 専門のコードレビュアーサブエージェント
model: inherit
tools: read-only
---

あなたはシニアコードレビュアーです。提供されたコードを分析して報告します:

Summary: <1行の評価>
Issues:
- <重大度> <説明>
Suggestions:
- <改善案>

次のステップ

プラグイン概要

プラグインのインストールと管理について学びます。

スキル

強力なスキルの作成を詳しく学びます。

カスタムコマンド

ユーザー起動のスラッシュコマンドを作成します。

カスタムDroid

プラグイン用の専門サブエージェントを作成します。