Communityコーディング&開発github.com

marketplace-publishing

スキルとエージェントをdotnet-skills Claude Codeマーケットプレイスに公開するためのワークフロー。新しいコンテンツの追加、plugin.jsonの更新、バリデーション、リリースタグ付けをカバーします。

marketplace-publishing とは?

このスキルは、dotnet-skills Claude Codeマーケットプレイスにスキルやエージェントを公開するためのワークフローを文書化したものです。開発者は、このスキルに従って、適切なカテゴリフォルダにSKILL.mdを作成し、フロントマターで名前と説明を定義し、plugin.jsonにパスを登録することで、新しいスキルを追加できます。また、エージェントを追加する場合も同様のプロセスで、エージェント定義ファイルを作成し、plugin.jsonに登録します。リリース時にはセマンティックバージョニングに従ってplugin.jsonのバージョンを更新し、Gitタグを作成してプッシュすると、GitHub Actionsが自動的にバリデーションとリリース作成を実行します。ユーザーは、`/plugin marketplace add` と `/plugin install` コマンドを使用して、プラグイン全体を簡単にインストールできます。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Aaronontheweb/dotnet-skills/tree/main/skills/marketplace-publishing

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

マーケットプレイス公開ワークフロー

このスキルは、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: 既存コンテンツの修正または改善

リリースプロセス

  1. plugin.jsonのバージョンを更新する

  2. バリデーション

    ./scripts/validate-marketplace.sh
    
  3. バージョンアップのコミット

    git add .claude-plugin/plugin.json
    git commit -m "バージョンを1.1.0に更新"
    
  4. タグを作成してプッシュする

    git tag v1.1.0
    git push origin master --tags
    
  5. 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のバージョンがタグと一致していることを確認する

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

akka-hosting-actor-patterns

Patterns for building entity actors with Akka.Hosting - GenericChildPerEntityParent, message extractors, cluster sharding abstraction, akka-reminders, and ITimeProvider. Supports both local testing and clustered production modes.

akka-net-aspire-configuration

Configure Akka.NET with .NET Aspire for local development and production deployments. Covers actor system setup, clustering, persistence, Akka.Management integration, and Aspire orchestration patterns.

akka-net-best-practices

Critical Akka.NET best practices including EventStream vs DistributedPubSub, supervision strategies, error handling, Props vs DependencyResolver, work distribution patterns, and cluster/local mode abstractions for testability.

akka-net-management

Akka.Management for cluster bootstrapping, service discovery (Kubernetes, Azure, Config), health checks, and dynamic cluster formation without static seed nodes.

akka-net-testing-patterns

Write unit and integration tests for Akka.NET actors using modern Akka.Hosting.TestKit patterns. Covers dependency injection, TestProbes, persistence testing, and actor interaction verification. Includes guidance on when to use traditional TestKit.

api-design

Design stable, compatible public APIs using extend-only design principles. Manage API compatibility, wire compatibility, and versioning for NuGet packages and distributed systems.

aspire-configuration

Configure Aspire AppHost to emit explicit app config via environment variables; keep app code free of Aspire clients and service discovery.

aspire-integration-testing

Write integration tests using .NET Aspire

aspire-service-defaults

Create a shared ServiceDefaults project for Aspire applications. Centralizes OpenTelemetry, health checks, resilience, and service discovery configuration across all services.

crap-analysis

Analyze code coverage and CRAP (Change Risk Anti-Patterns) scores to identify high-risk code. Use OpenCover format with ReportGenerator for Risk Hotspots showing cyclomatic complexity and untested code paths.

csharp-concurrency-patterns

Choosing the right concurrency abstraction in .NET - from async/await for I/O to Channels for producer/consumer to Akka.NET for stateful entity management. Avoid locks and manual synchronization unless absolutely necessary.

database-performance

Database access patterns for performance. Separate read/write models, avoid N+1 queries, use AsNoTracking, apply row limits, and never do application-side joins. Works with EF Core and Dapper.

dependency-injection-patterns

Organize DI registrations using IServiceCollection extension methods. Group related services into composable Add* methods for clean Program.cs and reusable configuration in tests.

dotnet-devcert-trust

Diagnose and fix .NET HTTPS dev certificate trust issues on Linux. Covers the full certificate lifecycle from generation to system CA bundle inclusion, with distro-specific guidance for Ubuntu, Fedora, Arch, and WSL2.

dotnet-local-tools

Managing local .NET tools with dotnet-tools.json for consistent tooling across development environments and CI/CD pipelines.

dotnet-project-structure

Modern .NET project structure including .slnx solution format, Directory.Build.props, central package management, SourceLink, version management with RELEASE_NOTES.md, and SDK pinning with global.json.

dotnet-slopwatch

Use Slopwatch to detect LLM reward hacking in .NET code changes. Run after every code modification to catch disabled tests, suppressed warnings, empty catch blocks, and other shortcuts that mask real problems.

efcore-patterns

Entity Framework Core best practices including NoTracking by default, query splitting for navigation collections, migration management, dedicated migration services, and common pitfalls to avoid.

ilspy-decompile

Understand implementation details of .NET code by decompiling assemblies. Use when you want to see how a .NET API works internally, inspect NuGet package source, view framework implementation, or understand compiled .NET binaries.

mailpit-integration

Test email sending locally using Mailpit with .NET Aspire. Captures all outgoing emails without sending them. View rendered HTML, inspect headers, and verify delivery in integration tests.

関連スキル