> ## Documentation Index
> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# プラグインを作成する

> スキル、エージェント、フック、MCP サーバーで Claude Code を拡張するカスタムプラグインを作成します。

プラグインを使用すると、Claude Code をカスタム機能で拡張でき、プロジェクトとチーム全体で共有できます。このガイドでは、スキル、エージェント、フック、MCP サーバーを使用して独自のプラグインを作成する方法について説明します。

既存のプラグインをインストールしたいですか？[プラグインを検出してインストールする](/ja/discover-plugins)を参照してください。完全な技術仕様については、[プラグインリファレンス](/ja/plugins-reference)を参照してください。

<h2 id="when-to-use-plugins-vs-standalone-configuration">
  プラグインとスタンドアロン設定を使い分ける
</h2>

Claude Code では、カスタムスキル、エージェント、フックを追加する 2 つの方法をサポートしています。

| アプローチ                                                                           | スキル名                 | 最適な用途                                                |
| :------------------------------------------------------------------------------ | :------------------- | :--------------------------------------------------- |
| **スタンドアロン**（`.claude/` ディレクトリ）                                                  | `/hello`             | 個人的なワークフロー、プロジェクト固有のカスタマイズ、クイック実験                    |
| **プラグイン**（スキル、エージェント、フック、または `.claude-plugin/plugin.json` マニフェストを含む自己完結型ディレクトリ） | `/plugin-name:hello` | チームメンバーとの共有、コミュニティへの配布、バージョン管理されたリリース、プロジェクト全体で再利用可能 |

**スタンドアロン設定を使用する場合**：

* 単一のプロジェクト用に Claude Code をカスタマイズしている
* 設定が個人的で共有する必要がない
* スキルやフックをパッケージ化する前に実験している
* `/hello` や `/deploy` のような短いスキル名が必要

**プラグインを使用する場合**：

* 機能をチームまたはコミュニティと共有したい
* 複数のプロジェクト全体で同じスキル/エージェントが必要
* 拡張機能のバージョン管理と簡単な更新が必要
* マーケットプレイスを通じて配布している
* `/my-plugin:hello` のような名前空間付きスキルで問題ない（名前空間はプラグイン間の競合を防ぎます）

<Tip>
  `.claude/` でスタンドアロン設定を使用してクイック反復を行い、共有する準備ができたら[既存の設定をプラグインに変換](#convert-existing-configurations-to-plugins)してください。
</Tip>

<h2 id="quickstart">
  クイックスタート
</h2>

このクイックスタートでは、カスタムスキルを使用してプラグインを作成する手順を説明します。マニフェスト（プラグインを定義する設定ファイル）を作成し、スキルを追加して、`--plugin-dir` フラグを使用してローカルでテストします。

<h3 id="prerequisites">
  前提条件
</h3>

* Claude Code [インストール済みで認証済み](/ja/quickstart#step-1-install-claude-code)

<Note>
  `/plugin` コマンドが表示されない場合は、Claude Code を最新バージョンに更新してください。アップグレード手順については、[トラブルシューティング](/ja/troubleshooting)を参照してください。
</Note>

<h3 id="create-your-first-plugin">
  最初のプラグインを作成する
</h3>

<Steps>
  <Step title="プラグインディレクトリを作成する">
    すべてのプラグインは、スキル、エージェント、またはフックを含む独自のディレクトリに存在し、オプションで `.claude-plugin/plugin.json` マニフェストと一緒に配置されます。このクイックスタートではテストステップで `--plugin-dir` を使用して Claude Code をディレクトリに指すため、場所は重要ではありません。スクラッチフォルダやプロジェクトディレクトリなど、便利な場所に作成してください。

    ```bash theme={null}
    mkdir my-first-plugin
    ```

    残りのステップは親ディレクトリから実行され、`my-first-plugin/...` のようなパスを相対的に参照します。
  </Step>

  <Step title="プラグインマニフェストを作成する">
    `.claude-plugin/plugin.json` のマニフェストファイルは、プラグインの ID（名前、説明、バージョン）を定義します。Claude Code はこのメタデータを使用して、プラグインマネージャーにプラグインを表示します。

    プラグインフォルダ内に `.claude-plugin` ディレクトリを作成します。

    ```bash theme={null}
    mkdir my-first-plugin/.claude-plugin
    ```

    次に、このコンテンツで `my-first-plugin/.claude-plugin/plugin.json` を作成します。

    ```json my-first-plugin/.claude-plugin/plugin.json theme={null}
    {
      "name": "my-first-plugin",
      "description": "A greeting plugin to learn the basics",
      "version": "1.0.0",
      "author": {
        "name": "Your Name"
      }
    }
    ```

    | フィールド         | 目的                                                                                                                                                                                    |
    | :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
    | `name`        | 一意の識別子とスキル名前空間。スキルにはこれが接頭辞として付きます（例：`/my-first-plugin:hello`）。                                                                                                                        |
    | `description` | プラグインマネージャーでプラグインを参照またはインストールするときに表示されます。                                                                                                                                             |
    | `version`     | オプション。設定されている場合、ユーザーはこのフィールドをバンプしたときにのみ更新を受け取ります。省略され、プラグインが git 経由で配布される場合、コミット SHA が使用され、すべてのコミットが新しいバージョンとしてカウントされます。[バージョン管理](/ja/plugins-reference#version-management)を参照してください。 |
    | `author`      | オプション。属性に役立ちます。                                                                                                                                                                       |

    `homepage`、`repository`、`license` などの追加フィールドについては、[完全なマニフェストスキーマ](/ja/plugins-reference#plugin-manifest-schema)を参照してください。
  </Step>

  <Step title="スキルを追加する">
    スキルは `skills/` ディレクトリに存在します。各スキルは `SKILL.md` ファイルを含むフォルダです。フォルダ名がスキル名になり、プラグインの名前空間が接頭辞として付きます（`my-first-plugin` という名前のプラグイン内の `hello/` は `/my-first-plugin:hello` を作成します）。

    プラグインフォルダ内にスキルディレクトリを作成します。

    ```bash theme={null}
    mkdir -p my-first-plugin/skills/hello
    ```

    次に、このコンテンツで `my-first-plugin/skills/hello/SKILL.md` を作成します。

    ```markdown my-first-plugin/skills/hello/SKILL.md theme={null}
    ---
    description: Greet the user with a friendly message
    disable-model-invocation: true
    ---

    Greet the user warmly and ask how you can help them today.
    ```
  </Step>

  <Step title="プラグインをテストする">
    `--plugin-dir` フラグを使用して Claude Code を実行し、プラグインを読み込みます。

    ```bash theme={null}
    claude --plugin-dir ./my-first-plugin
    ```

    Claude Code が起動したら、新しいスキルを試してください。

    ```shell theme={null}
    /my-first-plugin:hello
    ```

    Claude がグリーティングで応答します。`/help` を実行して、プラグイン名前空間の下にリストされたスキルを確認してください。

    <Note>
      **名前空間を使う理由は？** プラグインスキルは常に名前空間が付きます（`/my-first-plugin:hello` など）。複数のプラグインが同じ名前のスキルを持つ場合の競合を防ぐためです。

      名前空間プレフィックスを変更するには、`plugin.json` の `name` フィールドを更新してください。
    </Note>
  </Step>

  <Step title="スキル引数を追加する">
    `$ARGUMENTS` プレースホルダーを使用してユーザー入力をキャプチャすることで、スキルを動的にします。

    `SKILL.md` ファイルを更新します。

    ```markdown my-first-plugin/skills/hello/SKILL.md theme={null}
    ---
    description: Greet the user with a personalized message
    ---

    # Hello Skill

    Greet the user named "$ARGUMENTS" warmly and ask how you can help them today. Make the greeting personal and encouraging.
    ```

    `/reload-plugins` を実行して変更を反映させ、スキルを名前で試してください。

    ```shell theme={null}
    /my-first-plugin:hello Alex
    ```

    Claude があなたを名前で挨拶します。スキルに引数を渡す方法の詳細については、[スキル](/ja/skills#pass-arguments-to-skills)を参照してください。
  </Step>
</Steps>

これらの主要なコンポーネントを使用してプラグインを正常に作成およびテストしました。

* **プラグインマニフェスト**（`.claude-plugin/plugin.json`）：プラグインのメタデータを説明します
* **スキルディレクトリ**（`skills/`）：カスタムスキルを含みます
* **スキル引数**（`$ARGUMENTS`）：動的な動作のためにユーザー入力をキャプチャします

<Tip>
  `--plugin-dir` フラグは開発とテストに役立ちます。プラグインを他のユーザーと共有する準備ができたら、[プラグインマーケットプレイスを作成して配布する](/ja/plugin-marketplaces)を参照してください。
</Tip>

<h2 id="develop-a-plugin-in-your-skills-directory">
  スキルディレクトリでプラグインを開発する
</h2>

毎回起動時に `--plugin-dir` を渡す代わりに、スキルディレクトリにプラグインを保持して、Claude Code に自動的に読み込ませることができます。`claude plugin init` がスキャフォルドします。

```bash theme={null}
claude plugin init my-tool
```

これにより、`.claude-plugin/plugin.json` マニフェストとスターター `SKILL.md` を含む `~/.claude/skills/my-tool/` が作成されます。次のセッションでは、マーケットプレイスやインストール手順なしで `my-tool@skills-dir` として読み込まれます。

自動読み込みルール、個人スコープ対プロジェクトスコープ、ワークスペース信頼要件、および更新または削除方法については、[スキルディレクトリプラグイン](/ja/plugins-reference#skills-directory-plugins)を参照してください。

<h2 id="plugin-structure-overview">
  プラグイン構造の概要
</h2>

スキルを使用してプラグインを作成しましたが、プラグインにはさらに多くの機能を含めることができます。カスタムエージェント、フック、MCP サーバー、LSP サーバー、バックグラウンドモニターです。

<Warning>
  **よくある間違い**：`commands/`、`agents/`、`skills/`、`hooks/` を `.claude-plugin/` ディレクトリ内に配置しないでください。`plugin.json` のみが `.claude-plugin/` 内に入ります。他のすべてのディレクトリはプラグインルートレベルにある必要があります。

  プラグインルートは個別プラグイン自体のディレクトリです。`.claude-plugin/plugin.json` を含むディレクトリです。`~/.claude/` ではありません。例えば、Claude Code は `~/.claude/.mcp.json` に配置された `.mcp.json` を読み込みません。
</Warning>

| ディレクトリ            | 場所       | 目的                                                        |
| :---------------- | :------- | :-------------------------------------------------------- |
| `.claude-plugin/` | プラグインルート | `plugin.json` マニフェストを含みます（コンポーネントがデフォルトの場所を使用する場合はオプション）  |
| `skills/`         | プラグインルート | `<name>/SKILL.md` ディレクトリとしてのスキル                           |
| `commands/`       | プラグインルート | フラットな Markdown ファイルとしてのスキル。新しいプラグインには `skills/` を使用してください |
| `agents/`         | プラグインルート | カスタムエージェント定義                                              |
| `hooks/`          | プラグインルート | `hooks.json` のイベントハンドラー                                   |
| `.mcp.json`       | プラグインルート | MCP サーバー設定                                                |
| `.lsp.json`       | プラグインルート | コード インテリジェンス用の LSP サーバー設定                                 |
| `monitors/`       | プラグインルート | `monitors.json` のバックグラウンドモニター設定                           |
| `bin/`            | プラグインルート | プラグインが有効になっている間に Bash ツールの `PATH` に追加される実行可能ファイル          |
| `settings.json`   | プラグインルート | プラグインが有効になったときに適用されるデフォルト[設定](/ja/settings)               |

正確に 1 つのスキルを含むプラグインは、`skills/` ディレクトリを作成する代わりに、`SKILL.md` をプラグインルートに直接配置できます。Claude Code はそれを単一のスキルとして読み込み、フロントマター `name` フィールドを呼び出し名として使用します。複数のスキルに成長する可能性があるプラグインには、`skills/` レイアウトを使用してください。

<Note>
  **次のステップ**：さらに多くの機能を追加する準備ができましたか？[より複雑なプラグインを開発する](#develop-more-complex-plugins)にジャンプして、エージェント、フック、MCP サーバー、LSP サーバーを追加してください。すべてのプラグインコンポーネントの完全な技術仕様については、[プラグインリファレンス](/ja/plugins-reference)を参照してください。
</Note>

<h2 id="develop-more-complex-plugins">
  より複雑なプラグインを開発する
</h2>

基本的なプラグインに慣れたら、より高度な拡張機能を作成できます。

<h3 id="add-skills-to-your-plugin">
  プラグインにスキルを追加する
</h3>

プラグインには、Claude の機能を拡張する[エージェントスキル](/ja/skills)を含めることができます。スキルはモデル呼び出し型です。Claude はタスクコンテキストに基づいて自動的にそれらを使用します。

プラグインルートに `skills/` ディレクトリを追加し、`SKILL.md` ファイルを含むスキルフォルダを追加します。

```text theme={null}
my-plugin/
├── .claude-plugin/
│   └── plugin.json
└── skills/
    └── code-review/
        └── SKILL.md
```

各 `SKILL.md` には YAML フロントマターと指示が含まれます。Claude がスキルをいつ使用するかを知るように `description` を含めてください。

```yaml theme={null}
---
description: Reviews code for best practices and potential issues. Use when reviewing code, checking PRs, or analyzing code quality.
---

When reviewing code, check for:
1. Code organization and structure
2. Error handling
3. Security concerns
4. Test coverage
```

プラグインをインストールした後、`/reload-plugins` を実行してスキルを読み込みます。段階的な開示とツール制限を含む完全なスキル作成ガイダンスについては、[エージェントスキル](/ja/skills)を参照してください。

<h3 id="add-lsp-servers-to-your-plugin">
  プラグインに LSP サーバーを追加する
</h3>

<Tip>
  TypeScript、Python、Rust などの一般的な言語については、公式マーケットプレイスから事前構築された LSP プラグインをインストールしてください。既に対応されていない言語のサポートが必要な場合にのみ、カスタム LSP プラグインを作成してください。
</Tip>

LSP（Language Server Protocol）プラグインは Claude にリアルタイムコード インテリジェンスを提供します。公式 LSP プラグインがない言語をサポートする必要がある場合は、プラグインに `.lsp.json` ファイルを追加することで、独自のプラグインを作成できます。

```json .lsp.json theme={null}
{
  "go": {
    "command": "gopls",
    "args": ["serve"],
    "extensionToLanguage": {
      ".go": "go"
    }
  }
}
```

プラグインをインストールするユーザーは、言語サーバーバイナリをマシンにインストールしておく必要があります。

完全な LSP 設定オプションについては、[LSP サーバー](/ja/plugins-reference#lsp-servers)を参照してください。

<h3 id="add-background-monitors-to-your-plugin">
  プラグインにバックグラウンドモニターを追加する
</h3>

バックグラウンドモニターを使用すると、プラグインはログ、ファイル、または外部ステータスをバックグラウンドで監視し、イベントが到着したときに Claude に通知できます。Claude Code はプラグインがアクティブな場合、各モニターを自動的に開始するため、Claude にモニターの開始を指示する必要はありません。

プラグインルートに `monitors/monitors.json` ファイルを追加し、モニターエントリの配列を含めます。

```json monitors/monitors.json theme={null}
[
  {
    "name": "error-log",
    "command": "tail -F ./logs/error.log",
    "description": "Application error log"
  }
]
```

`command` からの各 stdout 行は、セッション中に Claude への通知として配信されます。`when` トリガーと変数置換を含む完全なスキーマについては、[モニター](/ja/plugins-reference#monitors)を参照してください。

<h3 id="ship-default-settings-with-your-plugin">
  プラグインでデフォルト設定を配布する
</h3>

プラグインは、プラグインルートに `settings.json` ファイルを含めて、プラグインが有効になったときにデフォルト設定を適用できます。現在、`agent` と `subagentStatusLine` キーのみがサポートされています。

`agent` を設定すると、プラグインの[カスタムエージェント](/ja/sub-agents)の 1 つがメインスレッドとしてアクティブになり、そのシステムプロンプト、ツール制限、モデルが適用されます。これにより、プラグインは有効になったときに Claude Code の動作方法をデフォルトで変更できます。

```json settings.json theme={null}
{
  "agent": "security-reviewer"
}
```

この例は、プラグインの `agents/` ディレクトリで定義された `security-reviewer` エージェントをアクティブにします。`settings.json` の設定は、`plugin.json` で宣言された `settings` よりも優先されます。不明なキーは無視されます。

<h3 id="organize-complex-plugins">
  複雑なプラグインを整理する
</h3>

多くのコンポーネントを持つプラグインの場合、ディレクトリ構造を機能別に整理してください。完全なディレクトリレイアウトと整理パターンについては、[プラグインディレクトリ構造](/ja/plugins-reference#plugin-directory-structure)を参照してください。

<h3 id="test-your-plugins-locally">
  プラグインをローカルでテストする
</h3>

開発中にプラグインをテストするには、`--plugin-dir` フラグを使用してください。これにより、インストールを必要とせずにプラグインが直接読み込まれます。

```bash theme={null}
claude --plugin-dir ./my-plugin
```

このフラグはプラグインディレクトリの `.zip` アーカイブも受け入れます。これには Claude Code v2.1.128 以降が必要です。

```bash theme={null}
claude --plugin-dir ./my-plugin.zip
```

`--plugin-dir` プラグインがインストール済みのマーケットプレイスプラグインと同じ名前を持つ場合、そのセッション中はローカルコピーが優先されます。これにより、最初にアンインストールしなくても、既にインストール済みのプラグインへの変更をテストできます。マネージド設定によって強制的に有効にされたマーケットプレイスプラグインは唯一の例外であり、オーバーライドできません。

プラグインに変更を加えると、`/reload-plugins` を実行して再起動せずに更新を反映させます。これにより、プラグイン、スキル、エージェント、フック、プラグイン MCP サーバー、プラグイン LSP サーバーが再読み込みされます。プラグインコンポーネントをテストします。

* `/plugin-name:skill-name` でスキルを試す
* `/context` でエージェントがカスタムエージェントの下に表示されることを確認するか、スコープ付き名でエージェントを @-mention する
* フックが期待どおりに機能することを確認する

<Tip>
  フラグを複数回指定することで、複数のプラグインを一度に読み込むことができます。

  ```bash theme={null}
  claude --plugin-dir ./plugin-one --plugin-dir ./plugin-two
  ```
</Tip>

URL でホストされている `.zip` アーカイブとしてパッケージ化されているプラグイン（CI ビルドアーティファクトなど）をテストするには、代わりに `--plugin-url` を使用してください。Claude Code はスタートアップ時にアーカイブをフェッチし、そのセッションのみ読み込みます。フェッチが失敗するか、アーカイブが無効な場合、Claude Code はプラグイン読み込みエラーを報告し、それなしで開始します。[信頼に関する考慮事項](/ja/discover-plugins#security)と同じものが、プラグインソースに適用されます。このフラグは、制御または信頼するアーカイブのみを指してください。

複数のプラグインを読み込むには、各 URL に対してフラグを繰り返します。

```bash theme={null}
claude --plugin-url https://example.com/my-plugin.zip --plugin-url https://example.com/other.zip
```

または、スペース区切りの URL を 1 つの引用符付き引数として渡します。

```bash theme={null}
claude --plugin-url "https://example.com/my-plugin.zip https://example.com/other.zip"
```

<h3 id="debug-plugin-issues">
  プラグインの問題をデバッグする
</h3>

プラグインが期待どおりに機能しない場合：

1. **構造を確認する**：ディレクトリが `.claude-plugin/` 内ではなく、プラグインルートにあることを確認してください
2. **コンポーネントを個別にテストする**：各スキル、エージェント、フックを個別に確認してください
3. **検証とデバッグツールを使用する**：CLI コマンドとトラブルシューティング技術については、[デバッグと開発ツール](/ja/plugins-reference#debugging-and-development-tools)を参照してください

<h3 id="share-your-plugins">
  プラグインを共有する
</h3>

プラグインを共有する準備ができたら：

1. **ドキュメントを追加する**：インストールと使用方法の指示を含む `README.md` を含めます
2. **バージョン管理戦略を選択する**：明示的な `version` を設定するか、git コミット SHA に依存するかを決定してください。[バージョン管理](/ja/plugins-reference#version-management)を参照してください
3. **マーケットプレイスを作成または使用する**：[プラグインマーケットプレイス](/ja/plugin-marketplaces)を通じて配布してインストールします
4. **他のユーザーでテストする**：より広い配布の前に、チームメンバーにプラグインをテストしてもらいます

プラグインがマーケットプレイスに登録されたら、他のユーザーは[プラグインを検出してインストールする](/ja/discover-plugins)の指示を使用してインストールできます。プラグインをチーム内に保つには、[プライベートリポジトリ](/ja/plugin-marketplaces#private-repositories)でマーケットプレイスをホストしてください。

<h3 id="submit-your-plugin-to-the-community-marketplace">
  プラグインをコミュニティマーケットプレイスに送信する
</h3>

Anthropic は Claude Code プラグイン用に 2 つの公開マーケットプレイスを管理しています。

* **`claude-plugins-official`**：Anthropic によって管理されているキュレーションされたプラグインセット。初めて Claude Code をインタラクティブに起動したときに自動的に登録されます。最初の起動前に実行される非インタラクティブスクリプトは、`claude plugin marketplace add anthropics/claude-plugins-official` で明示的に追加する必要があります。
* **`claude-community`**：レビュー後にサードパーティの送信が登録される公開コミュニティマーケットプレイス。ユーザーは `/plugin marketplace add anthropics/claude-plugins-community` で追加し、`@claude-community` としてインストールします。

プラグインをコミュニティマーケットプレイスレビュー用に送信するには、アプリ内フォームの 1 つを使用してください。

* **claude.ai**：[claude.ai/admin-settings/directory/submissions/plugins/new](https://claude.ai/admin-settings/directory/submissions/plugins/new)
* **Console**：[platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)

claude.ai フォームには Team または Enterprise 組織とディレクトリ管理アクセスが必要です。組織の所有者はデフォルトでこのアクセス権を持っています。Team または Enterprise 組織に属していない個別の作成者は、代わりに Console フォームを使用できます。

送信する前に、ローカルで `claude plugin validate` を実行してください。レビューパイプラインはすべての送信に対して同じチェックを実行し、自動化されたセーフティスクリーニングも行います。

承認されたプラグインは、[`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community) カタログ内の特定のコミット SHA にピン留めされ、CI はリポジトリに新しいコミットをプッシュするたびに自動的にピンをバンプします。公開カタログはレビューパイプラインから毎晩同期されるため、承認と `marketplace.json` にプラグインが表示されるまでの間に遅延が生じる可能性があります。プラグインがインストール可能かどうかを確認するには、[コミュニティカタログ](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json)でその名前を検索してください。

公式マーケットプレイス `claude-plugins-official` は別途キュレーションされています。Anthropic はどのプラグインを含めるかを裁量で決定します。申請プロセスはなく、送信フォームは公式マーケットプレイスにプラグインを追加しません。

Anthropic がプラグインを公式マーケットプレイスにリストしている場合、CLI は Claude Code ユーザーにインストールを促すことができます。[CLI からプラグインを推奨する](/ja/plugin-hints)を参照してください。

<Note>
  完全な技術仕様、デバッグ技術、配布戦略については、[プラグインリファレンス](/ja/plugins-reference)を参照してください。
</Note>

<h2 id="convert-existing-configurations-to-plugins">
  既存の設定をプラグインに変換する
</h2>

`.claude/` ディレクトリにスキルまたはフックが既にある場合は、それらをプラグインに変換して、より簡単に共有および配布できます。

<h3 id="migration-steps">
  移行手順
</h3>

<Steps>
  <Step title="プラグイン構造を作成する">
    プロジェクトルートに新しいプラグインディレクトリを作成します。既存の `.claude/` フォルダの隣に配置することで、次のステップの相対 `cp` パスが解決されます。

    ```bash theme={null}
    mkdir -p my-plugin/.claude-plugin
    ```

    `my-plugin/.claude-plugin/plugin.json` にマニフェストファイルを作成します。

    ```json my-plugin/.claude-plugin/plugin.json theme={null}
    {
      "name": "my-plugin",
      "description": "Migrated from standalone configuration",
      "version": "1.0.0"
    }
    ```
  </Step>

  <Step title="既存のファイルをコピーする">
    既存の設定をプラグインディレクトリにコピーします。

    ```bash theme={null}
    # Copy commands
    cp -r .claude/commands my-plugin/

    # Copy agents (if any)
    cp -r .claude/agents my-plugin/

    # Copy skills (if any)
    cp -r .claude/skills my-plugin/
    ```
  </Step>

  <Step title="フックを移行する">
    設定にフックがある場合は、フックディレクトリを作成します。

    ```bash theme={null}
    mkdir my-plugin/hooks
    ```

    `my-plugin/hooks/hooks.json` をフック設定で作成します。`.claude/settings.json` または `settings.local.json` から `hooks` オブジェクトをコピーします。形式は同じです。コマンドはフック入力を stdin で JSON として受け取るため、`jq` を使用してファイルパスを抽出します。

    ```json my-plugin/hooks/hooks.json theme={null}
    {
      "hooks": {
        "PostToolUse": [
          {
            "matcher": "Write|Edit",
            "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npm run lint:fix" }]
          }
        ]
      }
    }
    ```
  </Step>

  <Step title="移行したプラグインをテストする">
    プラグインを読み込んで、すべてが機能することを確認します。

    ```bash theme={null}
    claude --plugin-dir ./my-plugin
    ```

    各コンポーネントをテストします。コマンドを実行し、`/context` にエージェントが表示されることを確認し、フックが正しくトリガーされることを確認します。
  </Step>
</Steps>

<h3 id="what-changes-when-migrating">
  移行時の変更点
</h3>

| スタンドアロン（`.claude/`）        | プラグイン                          |
| :------------------------- | :----------------------------- |
| 1 つのプロジェクトでのみ利用可能          | マーケットプレイス経由で共有可能               |
| `.claude/commands/` 内のファイル | `plugin-name/commands/` 内のファイル |
| `settings.json` のフック       | `hooks/hooks.json` のフック        |
| 共有するには手動でコピーする必要がある        | `/plugin install` でインストール      |

<Note>
  移行後、重複を避けるために `.claude/` から元のファイルを削除してください。プロジェクトおよびユーザーの `.claude/agents/` 定義は、同じ名前のプラグインエージェントをオーバーライドするため、元のファイルを削除した後にのみプラグインバージョンが有効になります。プラグインスキルは `/plugin-name:skill-name` として名前空間化されるため、元の `/skill-name` とプラグインコピーの両方が利用可能なままになり、一方が他方をオーバーライドするのではなく両方が共存します。
</Note>

<h2 id="next-steps">
  次のステップ
</h2>

Claude Code のプラグインシステムを理解したので、異なる目標のための推奨パスを以下に示します。

<h3 id="for-plugin-users">
  プラグインユーザー向け
</h3>

* [プラグインを検出してインストールする](/ja/discover-plugins)：マーケットプレイスを参照してプラグインをインストール
* [チームマーケットプレイスを設定する](/ja/discover-plugins#configure-team-marketplaces)：チーム用のリポジトリレベルプラグインを設定

<h3 id="for-plugin-developers">
  プラグイン開発者向け
</h3>

* [マーケットプレイスを作成して配布する](/ja/plugin-marketplaces)：プラグインをパッケージ化して共有
* [プラグインリファレンス](/ja/plugins-reference)：完全な技術仕様
* 特定のプラグインコンポーネントをさらに詳しく調べる：
  * [スキル](/ja/skills)：スキル開発の詳細
  * [サブエージェント](/ja/sub-agents)：エージェント設定と機能
  * [フック](/ja/hooks)：イベント処理と自動化
  * [MCP](/ja/mcp)：外部ツール統合
