asc-plugin-release について
プラグインのメンテナー向けに、`.plugin` のビルドから tddworks/asc-registry の更新、公開結果の確認までを案内するスキルです。
主な機能
- 01プラグインマニフェストの読み取りと検証
- 02`.plugin` のビルドとパッケージ化
- 03レジストリエントリーの作成と更新
- 04GitHub リリースへのアップロード
- 05レジストリとダウンロード URL の確認
活用シーン
- 01新しいプラグインのレジストリ公開
- 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> でインストールできます。
前提条件
ghCLI で認証済み(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 ページに表示されます。