マーケットプレイス公開ワークフロー
このスキルは、dotnet-skills Claude Codeマーケットプレイスにスキルとエージェントを公開する方法を文書化しています。
リポジトリ構造
dotnet-skills/
├── .claude-plugin/
│ ├── marketplace.json # マーケットプレイスカタログ
│ └── plugin.json # プラグインメタデータ + スキル/エージェントレジストリ
├── .github/workflows/
│ └── release.yml # リリース自動化
├── skills/
│ ├── akka/ # Akka.NETスキル
│ │ ├── best-practices/SKILL.md
│ │ ├── testing-patterns/SKILL.md
│ │ └── ...
│ ├── aspire/ # .NET Aspireスキル
│ ├── csharp/ # C#言語スキル
│ ├── testing/ # テストフレームワークスキル
│ └── meta/ # メタスキル
├── agents/
│ └── *.md # エージェント定義
└── scripts/
└── validate-marketplace.sh
新しいスキルの追加
ステップ 1: カテゴリを選択する
スキルはドメインごとに整理されています:
| カテゴリ | 目的 |
|---|---|
akka/ | Akka.NETアクターパターン、テスト、クラスタリング |
aspire/ | .NET Aspireオーケストレーション、テスト、構成 |
csharp/ | C#言語機能、コーディング標準 |
testing/ | テストフレームワーク (xUnit、Playwright、Testcontainers) |
meta/ | このマーケットプレイスに関するメタスキル |
該当するカテゴリがない場合は、新しいカテゴリフォルダを作成してください。
ステップ 2: スキルフォルダを作成する
SKILL.mdを含むフォルダを作成します:
skills/<category>/<skill-name>/SKILL.md
例: skills/akka/cluster-sharding/SKILL.md
ステップ 3: SKILL.mdを記述する
---
name: my-new-skill
description: このスキルの機能と使用タイミングの簡単な説明。
---
# マイニュースキル
## このスキルを使用するタイミング
以下の場合にこのスキルを使用します:
- [具体的なシナリオをリスト]
---
## コンテンツ
[例、パターン、アンチパターンを含む包括的なガイド]
要件:
nameは小文字でハイフンを使用する (例:cluster-sharding)descriptionは1〜2文で、Claudeがいつこのスキルを使用すべきかを説明する- コンテンツは10〜40KBで、トピックを包括的にカバーする
- 最新のC#パターンを使用した具体的なコード例を含める
ステップ 4: plugin.jsonに登録する
.claude-plugin/plugin.jsonのskills配列にスキルのパスを追加します:
{
"skills": [
"./skills/akka/best-practices",
"./skills/akka/cluster-sharding" // ここに新しいスキルを追加
]
}
ステップ 5: バリデーション
バリデーションスクリプトを実行します:
./scripts/validate-marketplace.sh
ステップ 6: まとめてコミットする
git add skills/akka/cluster-sharding/ .claude-plugin/plugin.json
git commit -m "Akka.NET Cluster Shardingパターン用のcluster-shardingスキルを追加"
新しいエージェントの追加
ステップ 1: エージェントファイルを作成する
/agents/ にマークダウンファイルを作成します:
---
name: my-agent-name
description: [ドメイン]の専門家。[特定分野]を専門とします。[シナリオ]に使用します。
model: sonnet
color: blue
---
あなたは[分野]に関する深い専門知識を持つ[ドメイン]スペシャリストです。
**参考資料:**
- [公式ドキュメントとリソース]
**コア専門分野:**
[専門分野をリスト]
**診断アプローチ:**
[エージェントが問題を分析する方法]
要件:
nameは小文字でハイフンを使用するmodelはhaiku、sonnet、opusのいずれかcolorはオプション (UI表示に使用)
ステップ 2: plugin.jsonに登録する
agents配列に追加します:
{
"agents": [
"./agents/akka-net-specialist",
"./agents/my-agent-name" // ここに新しいエージェントを追加
]
}
ステップ 3: まとめてコミットする
git add agents/my-agent-name.md .claude-plugin/plugin.json
git commit -m "[ドメイン]の専門知識を持つmy-agent-nameエージェントを追加"
リリースの公開
バージョニング
.claude-plugin/plugin.json のバージョンを更新します:
{
"version": "1.1.0"
}
セマンティックバージョニング (MAJOR.MINOR.PATCH) を使用します:
- MAJOR: 互換性のない変更 (スキルの名前変更/削除)
- MINOR: 新しいスキルまたはエージェントの追加
- PATCH: 既存コンテンツの修正または改善
リリースプロセス
-
plugin.jsonのバージョンを更新する
-
バリデーション
./scripts/validate-marketplace.sh -
バージョンアップのコミット
git add .claude-plugin/plugin.json git commit -m "バージョンを1.1.0に更新" -
タグを作成してプッシュする
git tag v1.1.0 git push origin master --tags -
GitHub Actionsが自動的に以下を実行します:
- マーケットプレイス構造のバリデーション
- 自動生成ノート付きのGitHubリリースの作成
ユーザーインストール
ユーザーはプラグイン全体 (すべてのスキルとエージェント) をインストールします:
# マーケットプレイスの追加 (初回のみ)
/plugin marketplace add Aaronontheweb/dotnet-skills
# プラグインのインストール (すべてを取得)
/plugin install dotnet-skills
# 最新バージョンへの更新
/plugin marketplace update
バリデーションチェックリスト
コミット前の確認事項:
- SKILL.mdに
nameとdescriptionを含む有効なYAMLフロントマターがある - スキルフォルダが適切なカテゴリの下にある
-
plugin.jsonのskills配列にパスが追加されている - エージェントの場合:
modelが指定されている (haiku/sonnet/opus) -
./scripts/validate-marketplace.shがパスする
トラブルシューティング
インストール後にスキルが表示されない
- plugin.jsonのパスがフォルダ構造と一致していることを確認する
- フォルダ内にSKILL.mdが存在することを確認する
- 再インストールを試す:
/plugin uninstall dotnet-skills && /plugin install dotnet-skills
バリデーションエラー
- JSONが有効であることを確認:
jq . .claude-plugin/plugin.json - 配列内の末尾のカンマを確認する
- 参照されているすべてのフォルダにSKILL.mdが含まれていることを確認する
リリースが作成されない
- タグがセマバージョン形式 (
v1.0.0) に従っていることを確認する - GitHub Actionsのログでエラーを確認する
- plugin.jsonのバージョンがタグと一致していることを確認する