Skill Publisher
スキルを claude-code-plugin リポジトリの正しい構造に配置する。
対象リポジトリ
PLUGIN_REPO=/Users/babashunsuke/Repository/claude-code-plugin
リポジトリ構成
claude-code-plugin/
├── <category>/ # カテゴリ別ディレクトリ
│ └── <skill-name>/ # 公開用
│ ├── .claude-plugin/
│ │ └── plugin.json # プラグインメタデータ(CI 必須)
│ ├── agents/ # サブエージェント定義(あれば)
│ │ └── <agent-name>.md
│ └── skills/<skill-name>/
│ ├── SKILL.md
│ ├── references/ (あれば)
│ ├── scripts/ (あれば)
│ └── assets/ (あれば)
├── .internal/ # 内部用(自分のリポジトリ向け)
│ └── <skill-name>/
│ ├── .claude-plugin/
│ │ └── plugin.json # CI 必須
│ └── skills/<skill-name>/...
└── .claude-plugin/
└── marketplace.json # スキル登録設定(公開・内部どちらも登録が必要)
カテゴリ一覧
| カテゴリ | 内容 |
|---|---|
product |
プロダクト企画・ユーザーリサーチ |
planning |
機能検討・技術設計・実装計画 |
design |
UI/UXデザイン・ロゴ作成 |
development |
CI/CD・DB・Git・デバッグ・テスト |
review |
コードレビュー・品質チェック |
marketing |
アプリ名・ASO・スクリーンショット |
agent-toolkit |
エージェントチーム構築・運用 |
agents/ について
agents/は plugin root 直下に配置(<skill-name>/agents/)- 各
.mdファイルは YAML frontmatter(name,description,tools,model等)+ システムプロンプト - プラグインインストール時に自動検出される(
plugin.jsonへの明示記載は不要)
ワークフロー
Step 1: ソーススキルの特定と配置先の確認
ユーザーに以下を確認:
- コピー元のスキルパス(例:
~/.claude/skills/app-naming/) - または
~/.claude/skills/内のスキル一覧から選択 - カテゴリ: 公開用の場合、どのカテゴリに配置するか(product, planning, design, development, review, marketing, agent-toolkit)
- 配置先: 公開用(カテゴリ配下)か 内部用(
.internal/配下)か - ステータス:
stable(デフォルト)かbetaか - agents/: ソースに
agents/ディレクトリがあるか確認
Step 2: 構造検証
コピー前に検証する:
SKILL.mdが存在するか- YAML frontmatter に
nameとdescriptionがあるか - references/ 内のファイルが SKILL.md から参照されているか
検証スクリプト: scripts/validate-skill.sh <skill-path>
Step 3: 重複チェック
PLUGIN_REPO に同名のスキルが既に存在するか確認。 存在する場合はユーザーに上書きするか確認。
Step 4: コピー・配置
配置スクリプトを実行:
# 公開用(カテゴリ配下に配置)
scripts/publish-skill.sh <source-path> [skill-name] --category <category>
# Beta として公開
scripts/publish-skill.sh <source-path> [skill-name] --category <category> --beta
# 内部用(.internal/ 配下に配置)
scripts/publish-skill.sh <source-path> [skill-name] --internal
source-path: コピー元(SKILL.md があるディレクトリ)skill-name: 省略時は source-path のディレクトリ名を使用--category: カテゴリ名(公開用は必須。product, planning, design, development, review, marketing, agent-toolkit)--beta: Beta スキルとして配置(description に[Beta]プレフィックス付与)--internal: 内部用として.internal/配下に配置(カテゴリ不要)
スクリプトが行うこと:
- 正しいディレクトリ構造を作成しファイルをコピー
agents/があれば plugin root 直下にコピー.claude-plugin/plugin.jsonがあればコピー、なければ SKILL.md から自動生成(CI 必須)- 不要ファイル(README.md, CHANGELOG.md 等)を除外
.claude-plugin/marketplace.jsonにスキルを自動登録--betaの場合: description に[Beta]プレフィックス付与
marketplace.json 登録時の自動処理
- description 要約: SKILL.md の description から
Use when:/Triggers:以降を自動カットし、要約版を登録 - version 自動取得:
.claude-plugin/plugin.jsonの version を使用(なければ1.0.0) - SKILL.md の description はフル版のまま維持(Claude のスキルマッチングに使用)
Beta スキルのルール
- description が
[Beta]で始まること(バリデーションで検証される) - marketplace.json スキーマは
name, source, description, version, author, keywordsのみ許可("status"等の追加フィールドは不可) - stable に昇格する際は
[Beta]プレフィックスを除去
Step 5: 配置確認
コピー後に構造を表示し、正しく配置されたか確認する。 marketplace.json の登録内容も表示して確認する。
Step 6: CI バリデーション(必須)
配置後、必ず CI バリデーションをローカルで実行して PASSED を確認する。
cd /Users/babashunsuke/Repository/claude-code-plugin
bash .github/scripts/validate-marketplace.sh
確認項目:
Errors: 0であること- 対象プラグインが
OKで通っていること PASSEDが出力されること
CI が通らない場合は修正してから commit する。 主なエラー原因:
plugin.jsonが存在しない or フィールド不足plugin.jsonのname/versionがmarketplace.jsonと不一致- SKILL.md の frontmatter に
name/descriptionがない - agents/ の
.mdファイルに frontmatter がない - hooks/ プラグインで
hooksキーがplugin.jsonにない
Step 7: コミット・Push・PR
CI バリデーション PASSED 後:
- 変更をステージング・コミット
- Push
- PR 作成
- リモート CI の結果を
gh pr checks <PR番号> --watchで確認 - CI が通ったら完了報告
Converted and distributed by TomeVault — claim your Tome and manage your conversions.