Skip to main content
skill CX Codex

marketplace-publishing — Claude Code skill: publish skills and agents

Walks through the whole path from a new SKILL.md folder to a release tag in the dotnet-skills marketplace. Useful if you run your own plugin catalog.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add Aaronontheweb/dotnet-skills --skill marketplace-publishing -a claude-code
Open on GitHub

What marketplace-publishing does

The skill lays out the dotnet-skills repository: .claude-plugin/ holding marketplace.json and plugin.json, category folders under skills/ (akka, aspire, csharp, testing, meta), agent definitions in agents/, and scripts/validate-marketplace.sh.

Adding a skill goes in order. Pick a category or create one, make skills/<category>/<name>/SKILL.md with YAML frontmatter where name is lowercase with hyphens, add the path to the skills array in .claude-plugin/plugin.json, run validation, then commit the folder and plugin.json together. Agents use their own frontmatter: model accepts only haiku, sonnet or opus, and the path goes into the agents array.

A release means bumping the version in plugin.json by semver, validating, committing, then git tag v1.1.0 and git push origin master --tags. GitHub Actions validates the structure and creates a release with generated notes. If a skill does not show up after install, check the path in plugin.json against the actual folder tree first — a mismatch there is the usual culprit.

What it helps with

  • add a new skill to the dotnet-skills catalog and register it in plugin.json
  • define an agent with a valid model field
  • cut a release whose tag matches the version in plugin.json
  • debug why an installed skill never appears for users
  • validate the marketplace structure before committing

Example prompts for the agent

  • add a new cluster-sharding skill under the akka category and register it in plugin.json
  • create an akka-net-specialist agent with the sonnet model and add it to the agents array
  • prepare the 1.1.0 release: bump the version, run validation and push the tag

How to install marketplace-publishing

1Skills CLI (Vercel)

npx skills add Aaronontheweb/dotnet-skills --skill marketplace-publishing -a claude-code

2Manually: put the files in place

~/.claude/skills/marketplace-publishing/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/marketplace-publishing/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about marketplace-publishing

How do I install marketplace-publishing in Claude?

Run npx skills add Aaronontheweb/dotnet-skills --skill marketplace-publishing -a claude-code. The skill file then lives at ~/.claude/skills/marketplace-publishing/SKILL.md.

What does marketplace-publishing do?

It documents the workflow for publishing skills and agents to the dotnet-skills marketplace: adding content, editing plugin.json, validation and release tagging.

How is a release different from a regular commit?

A release needs a version bump in .claude-plugin/plugin.json following semver, then a tag like v1.1.0 pushed with tags. GitHub Actions then validates the structure and creates the release.

Source text

SKILL.md · MIT
---
name: marketplace-publishing
description: Workflow for publishing skills and agents to the dotnet-skills Claude Code marketplace. Covers adding new content, updating plugin.json, validation, and release tagging.
---

# Marketplace Publishing Workflow

This skill documents how to publish skills and agents to the dotnet-skills Claude Code marketplace.

## Repository Structure

```
dotnet-skills/
├── .claude-plugin/
│   ├── marketplace.json      # Marketplace catalog
│   └── plugin.json           # Plugin metadata + skill/agent registry
├── .github/workflows/
│   └── release.yml           # Release automation
├── skills/
│   ├── akka/                 # Akka.NET skills
│   │   ├── best-practices/SKILL.md
│   │   ├── testing-patterns/SKILL.md
│   │   └── ...
│   ├── aspire/               # .NET Aspire skills
│   ├── csharp/               # C# language skills
│   ├── testing/              # Testing framework skills
│   └── meta/                 # Meta skills
├── agents/
│   └── *.md                  # Agent definitions
└── scripts/
    └── validate-marketplace.sh
```

## Adding a New Skill

### Step 1: Choose a Category

Skills are organized by domain:

| Category | Purpose |
|----------|---------|
| `akka/` | Akka.NET actor patterns, testing, clustering |
| `aspire/` | .NET Aspire orchestration, testing, configuration |
| `csharp/` | C# language features, coding standards |
| `testing/` | Testing frameworks (xUnit, Playwright, Testcontainers) |
| `meta/` | Meta skills about this marketplace |

Create a new category folder if none fits.

### Step 2: Create the Skill Folder

Create a folder with `SKILL.md` inside:

```
skills/<category>/<skill-name>/SKILL.md
```

Example: `skills/akka/cluster-sharding/SKILL.md`

### Step 3: Write the SKILL.md

```markdown
---
name: my-new-skill
description: Brief description of what this skill does and when to use it.
---

# My New Skill

## When to Use This Skill

Use this skill when:
- [List specific scenarios]

---

## Content

[Comprehensive guide with examples, patterns, and anti-patterns]
```

**Requirements:**
- `name` must be lowercase with hyphens (e.g., `cluster-sharding`)
- `description` should be 1-2 sentences explaining when Claude should use this skill
- Content should be 10-40KB covering the topic comprehensively
- Include concrete code examples with modern C# patterns

### Step 4: Register in plugin.json

Add the skill path to `.claude-plugin/plugin.json` in the `skills` array:

```json
{
  "skills": [
    "./skills/akka/best-practices",
    "./skills/akka/cluster-sharding"  // Add new skill here
  ]
}
```

### Step 5: Validate

Run the validation script:

```bash
./scripts/validate-marketplace.sh
```

### Step 6: Commit Together

```bash
git add skills/akka/cluster-sharding/ .claude-plugin/plugin.json
git commit -m "Add cluster-sharding skill for Akka.NET Cluster Sharding patterns"
```

---

## Adding a New Agent

### Step 1: Create the Agent File

Create a markdown file in `/agents/`:

```markdown
---
name: my-agent-name
description: Expert in [domain]. Specializes in [specific areas]. Use for [scenarios].
model: sonnet
color: blue
---

You are a [domain] specialist with deep expertise in [areas].

**Reference Materials:**
- [Official docs and resources]

**Core Expertise Areas:**
[List expertise areas]

**Diagnostic Approach:**
[How the agent analyzes problems]
```

**Requirements:**
- `name` must be lowercase with hyphens
- `model` must be one of: `haiku`, `sonnet`, `opus`
- `color` is optional (used for UI display)

### Step 2: Register in plugin.json

Add to the `agents` array:

```json
{
  "agents": [
    "./agents/akka-net-specialist",
    "./agents/my-agent-name"  // Add new agent here
  ]
}
```

### Step 3: Commit Together

```bash
git add agents/my-agent-name.md .claude-plugin/plugin.json
git commit -m "Add my-agent-name agent for [domain] expertise"
```

---

## Publishing a Release

### Versioning

Update the version in `.claude-plugin/plugin.json`:

```json
{
  "version": "1.1.0"
}
```

Use semantic versioning (`MAJOR.MINOR.PATCH`):
- **MAJOR**: Breaking changes (renamed/removed skills)
- **MINOR**: New skills or agents added
- **PATCH**: Fixes or improvements to existing content

### Release Process

1. **Update version in plugin.json**

2. **Validate**
   ```bash
   ./scripts/validate-marketplace.sh
   ```

3. **Commit version bump**
   ```bash
   git add .claude-plugin/plugin.json
   git commit -m "Bump version to 1.1.0"
   ```

4. **Create and push tag**
   ```bash
   git tag v1.1.0
   git push origin master --tags
   ```

5. **GitHub Actions will automatically:**
   - Validate the marketplace structure
   - Create a GitHub release with auto-generated notes

---

## User Installation

Users install the complete plugin (all skills and agents):

```bash
# Add the marketplace (one-time)
/plugin marketplace add Aaronontheweb/dotnet-skills

# Install the plugin (gets everything)
/plugin install dotnet-skills

# Update to latest version
/plugin marketplace update
```

---

## Validation Checklist

Before committing:

- [ ] SKILL.md has valid YAML frontmatter with `name` and `description`
- [ ] Skill folder is under appropriate category
- [ ] Path added to `plugin.json` skills array
- [ ] For agents: `model` is specified (haiku/sonnet/opus)
- [ ] `./scripts/validate-marketplace.sh` passes

---

## Troubleshooting

### Skill not appearing after install

- Verify the path in plugin.json matches the folder structure
- Check that SKILL.md exists in the folder
- Try reinstalling: `/plugin uninstall dotnet-skills && /plugin install dotnet-skills`

### Validation errors

- Ensure JSON is valid: `jq . .claude-plugin/plugin.json`
- Check for trailing commas in arrays
- Verify all referenced folders contain SKILL.md

### Release not created

- Ensure tag follows semver format (`v1.0.0`)
- Check GitHub Actions logs for errors
- Verify plugin.json version matches the tag

© Aaronontheweb · MIT · Aaronontheweb/dotnet-skills

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set32

akka-net-best-practices A skill covering the tricky parts of Akka.NET: EventStream vs DistributedPubSub, supervision, error handling. Useful when you design actors. CX Codex +1 431installs mailpit-integration Runs Mailpit inside .NET Aspire so outgoing email is captured locally instead of delivered. Useful when you debug templates or assert on mail in integration tests. CX Codex +1 421installs verify-email-snapshots A skill that snapshot tests rendered HTML emails with Verify: output is compared against an approved baseline and the test fails on any change. CX Codex +1 416installs akka-hosting-actor-patterns Patterns for building Akka.NET entity actors with Akka.Hosting. Useful when you need actors that run in both lightweight local unit tests and clustered production environments. CX Codex +1 414installs akka-net-testing-patterns A skill for writing unit and integration tests for Akka.NET actors with Akka.Hosting.TestKit: dependency injection, TestProbes, persistence checks. CX Codex +1 411installs akka-net-management A skill that walks your agent through Akka.Management and Cluster Bootstrap: dynamic node discovery, health endpoints, Kubernetes and Azure setups. CX Codex +1 409installs opentelemetry-net-instrumentation A skill that guides OpenTelemetry instrumentation in .NET code: traces, metrics and logs. Useful when you add telemetry to a library or an app. CX Codex +1 408installs akka-net-aspire-configuration A skill that wires Akka.NET into .NET Aspire: actor system, clustering, persistence and Akka.Management in one setup. CX Codex +1 396installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor