4
2

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 拡張機能 marketplace 開発サイクルの具体例

Posted at

問題

Claude Codeの拡張機能を再利用・配布できる形にまとめるには marketplace としてパッケージ化する必要があります。その際、どのように拡張機能そのものを開発し、どのようにパッケージ化するかでいくつかの問題が起こりえると考えました。

  • 拡張機能(例:Skills)がローカルで利用可能な状態だとしても、それをそのまま marketplace として配布は出来ません
  • marketplace の構造は、逆にローカルで実行できる状態ではありません
  • LLMの性質上、拡張機能が正しく動作しない場合、LLMがその問題を回避してしまうことがある。その場合、単にLLMが拡張機能を使わずに目的を達してしまう

このように混乱が生じやすくなる。

解決の提案

混乱と、それが原因で起こりそうな問題(更新後のバグ)を回避するために開発フローを3つのフェーズに分割し、それぞれのフェーズに専用のレポジトリ(プロジェクト)を使う。

複数のレポジトリにまたがるのでフローの速度はやや落ちる(例: 検証プロジェクトに到達するまでに2回の git clone が必要になる)が、それは理解しやすさとのトレードオフとして許容する。

開発フロー

image.png

使用レポジトリ

以下のレポジトリを使う(なお、著者は続けて拡張デモを追加する予定です。著者自身もClaude Code拡張界隈は初心者なので😊)

開発のフロー実例

シナリオ: Commandsの開発(更新、バグ修正含む)

フェーズ 1. Claude 拡張機能の開発

使用プロジェクト marketplace-development

この例では Claude Code を用いてバイブコーディングでCommandsを作成してもらった。TESTING.mdを作成してもらい、それに従いローカルでの動作確認をする。

Claude Codeにはあらかじめ marketplace パッケージとしての構造を持つ別のプロジェクトに物理的にコピーする旨を伝えている。その結果 MIGRATION.md が作成されている。これを使って次のフェーズを完了させる。

image.png

フェーズ 2. marketplace に機能追加

使用プロジェクト marketplace-demo

拡張機能は plugin を直近のパッケージとし、さらにその plugin を marketoplace プロジェクトに追加する。Commandsのコピー操作やメタデータの内容は前述のMIGRATION.mdに従う。

具体的には:

  • plugins ディレクトリ化に新規 plugin のためのディレクトリを作成し plugin.json と拡張機能本体を格納
  • .claude-pluginディレクトリ内のmarketplace.jsonに新規 Plugin のメタ情報を追加する

image.png

フェーズ 3. marketplace に機能検証

使用プロジェクト marketplace-testclient

フェーズ1でローカルでの動作確認は出来ているが、そこから marketplace として配布するための Commands の配置、plugin メタデータ等の検証が必要なので、別のプロジェクトで検証します。

/plugin のUIを使って marketplace を更新すると、新たに加えたdemo-commands pluginが選択可能になります。

image.png

ホームの.claude ディレクトリで marketplace と 新規plugin が正しくインストールされているか確認します。

image.png

最後に、機能そのものを使って動作確認を完了します。

image.png

以上

4
2
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
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?