1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

社内向けClaude Code Plugin Marketplaceを作りました

1
Last updated at Posted at 2026-03-05

はじめに

トラストバンク SREグループの @kio-ku です

弊社ではSREチームがGitHub Actionsの使用ルールやワークフローのコード規約を定めています。

Notionのページにまとめていて、それを社内に発信しているのですが、
ルールを呼びかけるだけだとなかなか浸透しづらいのかなと。

何か仕組み化できないかと考えたときに、Claude CodeのPlugin機能が使えるかもと思い、
Marketplaceを作成してPluginとして社内公開できるようにしました!

Claude Code Pluginとは

  • Claude Code の機能を拡張するためのパッケージ
    • Skills・Agents・Hooks・MCP Servers・LSP Servers といったコンポーネントを一つのプラグインとしてまとめて配布可能
    • ユーザは必要なPluginをインストールするだけでそこに含まれるSkillsやAgentsなどを使える
  • インストール先
    • User: 自分の全プロジェクトで有効(デフォルト)
    • Project: リポジトリに含まれ、チーム全員に適用
    • Local: 自分だけ・このプロジェクトだけ(gitignore対象)
  • ユースケース例
    • 社内で機能を共有したい
      • 複数のリポジトリをまたいで同じスキル/エージェントが必要
    • 一元管理しておきたい
  • 例えば
    • 社内規約に沿ってGitHub Actions のワークフローを作成する Skill として定義した Pluginを公開
    • 開発者が Plugin をインストールするだけで、ワークフロー関連のタスク時に Claude が自動的に規約に沿った動作をする

サードパーティのプラグインもインストールできてしまいますが、
悪意のあるものもあるので使用する際には十分にご注意ください。

Claude Code Plugin Marketplaceとは

  • Plugin を公開・検索・インストールするためのカタログ
  • Anthropic公式のMarketplace(claude-plugins-official)はデフォルトで登録済み
  • GitHub リポジトリとしてホストでき、社内向けのプライベート Marketplace も登録可能
  • 開発者は Marketplace を登録して、そこから必要な Plugin をインストールするだけで使い始められる

社内向けMarketplaceにPluginを公開

前提

  • Gitリポジトリがあること
    • Pluginを使いたい人に最低でもRead権限があればOK

フォルダ構成例

  • 必須ファイルは marketplace.jsonplugin.json の2つだけ
  • 任意のコンポーネント(commands, skills, agents, hooks等)は必要なものだけ追加すればOK
my-marketplace/
├── .claude-plugin/
│   └── marketplace.json        # 必須: Marketplaceカタログ
├── plugins/
│   └── gha-standards/          # フォルダ名=Plugin名
│       ├── .claude-plugin/
│       │   └── plugin.json     # 必須: Pluginマニフェスト
│       ├── skills/             # 任意: スキル定義
│       │   └── gha-check/
│       │       └── SKILL.md
│       ├── agents/             # 任意: サブエージェント
│       │   └── gha-reviewer.md
│       ├── hooks/              # 任意: イベントフック
│       │   └── hooks.json
│       ├── .mcp.json           # 任意: MCP Server
│       └── .lsp.json           # 任意: LSP Server
└── README.md

Pluginを作成

pluginsディレクトリ配下にPlugin名のフォルダを作成したら、その中に必要なAgentやSkillを追加します。

また、.claude-plugin/plugin.json を作成してPluginを定義しておきます。

plugins/gha-standards/.claude-plugin/plugin.json
{
  "name": "gha-standards",
  "version": "0.1.0",
  "description": "GitHub Actions の規約に沿った開発をサポートするプラグイン",
  "author": {
    "name": "sre"
  },
  "keywords": ["github-actions", "ci", "standards"]
}

Marketplaceを定義

.claude-plugin/marketplace.json にMarketplaceを定義して、作ったPluginを登録します。

.claude-plugin/marketplace.json
{
  "name": "claude-marketplace",
  "owner": {
    "name": "sre"
  },
  "metadata": {
    "description": "社内向け Claude Code プラグインマーケットプレイス",
    "version": "0.1.0",
    "pluginRoot": "./plugins"
  },
  "plugins": [
    {
      "name": "gha-standards",
      "source": "./plugins/gha-standards",
      "description": "GitHub Actions の規約に沿った開発をサポートするプラグイン",
      "version": "0.1.0",
      "keywords": ["github-actions", "ci", "standards"],
      "category": "standards"
    }
  ]
}

テスト

まずは、構文エラーがないかvalidationします。

# CLIから実行する場合
claude plugin validate ./plugins/gha-standards/

# Claude Code内から実行する場合
/plugin validate ./plugins/gha-standards/

✔ Validation passed が表示されたら、実際に使えるかテストしてみます。

# Marketplaceの追加
/plugin marketplace add ./

# Pluginをインストール
/plugin install gha-standards@sre-claude-code-plugin

Pluginを使ってみたいので、何かGitHub Actionsのワークフローを作ってみます。

(例): claude plugin validateするワークフローを作成して。

Skillが自動で呼ばれれば成功です。

● Skill(gha-standards:gha-check)
 ⎿  Successfully loaded skill

GitHubにpush

これで一通りファイルが揃ったのでGitHubにpushします。

社内向けMarketplaceからPluginをインストール

公開したPluginを使えるようにしてみましょう。

Marketplaceを追加

まずは、先ほどのMarketplaceをローカルのClaude Codeに追加します。

/plugin marketplace add <owner>/<repo>

# 特定のブランチやタグを指定したい場合は
/plugin marketplace add <owner>/<repo>#<branch or tag>

Pluginをインストール

作ったPluginをインストールします。

/plugin install gha-standards@<marketplace>

Claude Codeを再起動すると、PluginにあるSkillが使えるようになります。

# /<skill> という形式で呼べる
/gha-check

Tips

CIでPluginのvalidationを自動化する

PRでPlugin関連のファイルが変更されたときに、自動で claude plugin validate を実行するワークフローを作っておくと安心です。
Pluginの構文エラーがmainにマージされる前に検知できます。

extraKnownMarketplacesでチームに自動配布する

リポジトリの .claude/settings.jsonextraKnownMarketplaces を設定しておくと、チームメンバーがそのリポジトリをクローンしてClaude Codeを起動したとき、Marketplaceが自動的に認識されます。

.claude/settings.json
{
  "extraKnownMarketplaces": {
    "my-marketplace": {
      "source": {
        "source": "github",
        "repo": "<owner>/<repo>"
      }
    }
  },
  "enabledPlugins": {
    "gha-standards@my-marketplace": true
  }
}

enabledPlugins も併せて設定しておけば、メンバーは特に何もしなくてもPluginが有効な状態で使い始められます。
Marketplace追加 → Plugin installの手順を各メンバーに案内する必要がなくなるので、展開がかなり楽になります。

Pluginのenable/disable

Pluginをアンインストールせずに一時的に無効化できます。

# 無効にする
/plugin disable gha-standards

# 有効に戻す
/plugin enable gha-standards

「試しに入れたけど一旦オフにしたい」「特定のプロジェクトだけ無効にしたい」ときに便利です。
--scope オプションで user / project / local を指定すれば、スコープ単位で制御できます。

Marketplace・Pluginを更新する

Marketplace側でPluginを更新したら、利用者は以下のコマンドで最新版を取得できます。

# Marketplaceのカタログ情報を更新
/plugin marketplace update

# 特定のPluginを更新
/plugin update gha-standards

Marketplaceリポジトリにpushするだけで配布側の作業は完了です。
利用者が update を実行すれば最新のSkillやAgentが反映されます。

さいごに

Pluginで「ルールの浸透」問題を解決する

Pluginをインストールすれば、
SkillとしてClaude Codeの動作そのものに組み込めるので、
開発者が意識しなくてもよくうまく仕組み化できると思います。

各リポジトリの .claude/ にSkillやルールファイルを個別に置いて回るのは大変ですが、
Marketplaceに集約してPluginとして配布すれば、一箇所の更新でチーム全体に反映できるのでとても便利ですね!

運用面

  • インストール元の制限: 特にサードパーティ製は注意が必要です
  • CI: validationのワークフローをMarketplaceリポジトリに導入し、PRレビュー時に構文エラーを自動チェック
  • レビュー: Skill や Agent の内容が規約と合っているか、PRベースでレビュー

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?