mcpField
A
asc-plugin-release

asc-plugin-release

github.com/tddworks開発573 回インストール6 週間前に更新
リポジトリ

asc-plugin-release について

プラグインのメンテナー向けに、`.plugin` のビルドから tddworks/asc-registry の更新、公開結果の確認までを案内するスキルです。

主な機能

  1. 01プラグインマニフェストの読み取りと検証
  2. 02`.plugin` のビルドとパッケージ化
  3. 03レジストリエントリーの作成と更新
  4. 04GitHub リリースへのアップロード
  5. 05レジストリとダウンロード URL の確認

活用シーン

  1. 01新しいプラグインのレジストリ公開
  2. 02プラグインの新バージョンのリリース

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tddworks/asc-cli-skills --skill asc-plugin-release

インストール後、Claude Code で/asc-plugin-releaseを入力して読み込まれたか確認します。

詳細

ASC レジストリへのプラグインのリリース

.plugin バンドルを tddworks/asc-registry に公開すると、ユーザーは asc plugins install --name <id> でインストールできます。

前提条件

  • gh CLI で認証済み(gh auth status)
  • tddworks/asc-registry への書き込みアクセス権(またはフォークして PR を作成するワークフロー)
  • プラグインに、少なくとも name、version、server を含む manifest.json がある
  • make build または同等の方法でプラグインをビルドできる

ワークフロー

ステップ 1:マニフェストを見つけて読み込む

プラグインの manifest.json を見つけ(plugin/manifest.json またはビルド済みの .plugin/manifest.json)、次のフィールドを抽出します。

フィールド必須用途
nameはいレジストリの name フィールド
versionはいレジストリの version とリリースタグ
descriptionはいレジストリの description
authorいいえレジストリの author
repositoryURLいいえレジストリの repositoryURL
categoriesいいえレジストリの categories
serverはいプラグインに dylib があることを検証

description、author、categories がマニフェストにない場合は、先に進む前にユーザーに情報を提供してもらいます。これらの情報は、マーケットプレイスでプラグインを見つけやすくするために必要です。

ステップ 2:プラグインをビルドする
make build

.plugin ディレクトリが存在し、manifest.json で指定された dylib が含まれていることを確認します。

ls -la .build/<Name>.plugin/
# Should contain: manifest.json, <Name>.dylib, and optionally ui/
ステップ 3:zip を作成する
cd .build && zip -r /tmp/<Name>.plugin.zip <Name>.plugin/

zip のサイズが適切で、想定されるファイルが含まれていることを確認します。

unzip -l /tmp/<Name>.plugin.zip
ステップ 4:レジストリエントリーを導出する

プラグイン名からレジストリ ID を作成します。小文字にし、スペースをハイフンに置き換えます。

"ASC Pro" → "asc-pro"
"Hello Plugin" → "hello-plugin"

レジストリエントリーの JSON を作成します。

{
  "id": "<derived-id>",
  "name": "<from manifest.name>",
  "version": "<from manifest.version>",
  "description": "<from manifest.description>",
  "author": "<from manifest.author>",
  "repositoryURL": "<from manifest.repositoryURL>",
  "downloadURL": "https://github.com/tddworks/asc-registry/releases/latest/download/<Name>.plugin.zip",
  "categories": ["<from manifest.categories>"]
}

マニフェストにない場合は、author、repositoryURL、categories を省略します。

ステップ 5:registry.json をクローンして更新する
# Clone the registry (or pull if already cloned)
cd /tmp && rm -rf asc-registry && git clone https://github.com/tddworks/asc-registry.git
cd /tmp/asc-registry

registry.json を読み込み、次のいずれかを行います。

  • 新しいプラグイン:エントリーを plugins 配列に追加する
  • 既存のプラグイン(id が同じ):既存のエントリーを置き換える(バージョンや説明などを更新する)

更新した registry.json を適切な形式(インデント 2 つ)で書き込みます。

ステップ 6:GitHub リリースに zip をアップロードする

リリースがすでに存在するか確認し、存在する場合はアップロードし、存在しない場合は新しく作成します。

# Check existing release
gh release view v<version> --repo tddworks/asc-registry 2>/dev/null

# If release exists, upload as additional asset (delete old asset with same name first)
gh release delete-asset v<version> <Name>.plugin.zip --repo tddworks/asc-registry --yes 2>/dev/null
gh release upload v<version> /tmp/<Name>.plugin.zip --repo tddworks/asc-registry

# If no release exists, create one
gh release create v<version> /tmp/<Name>.plugin.zip \
  --repo tddworks/asc-registry \
  --title "v<version> — <plugin name>" \
  --notes "<plugin description>"
ステップ 7:更新した registry.json をプッシュする
cd /tmp/asc-registry
git add registry.json
git commit -m "feat: update <plugin-id> to v<version>"
git push
ステップ 8:確認する
# Verify the registry is accessible
curl -s https://raw.githubusercontent.com/tddworks/asc-registry/main/registry.json | python3 -m json.tool

# Verify the download URL works
curl -sI "https://github.com/tddworks/asc-registry/releases/latest/download/<Name>.plugin.zip" | head -5

結果をユーザーに報告します。

  • レジストリ URL:https://github.com/tddworks/asc-registry
  • インストールコマンド:asc plugins install --name <id>
  • リリース URL:https://github.com/tddworks/asc-registry/releases/tag/v<version>

例:hello-plugin の公開

# 1. Build
cd examples/hello-plugin && make build

# 2. Zip
cd .build && zip -r /tmp/HelloPlugin.plugin.zip HelloPlugin.plugin/

# 3. Read manifest → derive entry
# manifest.json: name="Hello Plugin", version="1.0" → id="hello-plugin"

# 4. Update registry
cd /tmp/asc-registry
# Add/update entry in registry.json with:
# "downloadURL": "https://github.com/tddworks/asc-registry/releases/latest/download/HelloPlugin.plugin.zip"

# 5. Upload + push
gh release upload v1.0 /tmp/HelloPlugin.plugin.zip --repo tddworks/asc-registry
git add registry.json && git commit -m "feat: update hello-plugin to v1.0" && git push

リリース前に manifest.json を充実させる

マニフェストにマーケットプレイス用のフィールドがない場合は、ビルド前に更新します。

{
  "name": "My Plugin",
  "version": "1.0",
  "description": "What the plugin does",
  "author": "your-name",
  "repositoryURL": "https://github.com/you/my-plugin",
  "categories": ["category1", "category2"],
  "server": "MyPlugin.dylib",
  "ui": ["ui/my-ui.js"]
}

これらのフィールドはレジストリエントリーに反映され、asc plugins market list と Command Center の Plugins ページに表示されます。

コメント