
Marketplace Publishing
- 310 installs
- 1.1k repo stars
- Updated July 3, 2026
- aaronontheweb/dotnet-skills
marketplace-publishing is a Claude Code skill that documents how to package, version, validate, and publish .NET-related skills and agents to the dotnet-skills marketplace using plugin.json and marketplace.json.
About
marketplace-publishing is a release workflow skill from aaronontheweb/dotnet-skills for maintainers shipping skills and agents to the dotnet-skills Claude Code marketplace. The skill covers repository structure under .claude-plugin/, updating marketplace.json and plugin.json registries, content validation, and release tagging via .github/workflows/release.yml automation. Developers reach for marketplace-publishing when adding new Akka.NET or other .NET skills, updating plugin metadata, or cutting a marketplace release. Output includes updated catalog files, validated plugin manifests, and tagged releases ready for user discovery and install.
- Marketplace listing requirements
- Versioning and release notes
- Package metadata polish
- Publish checklist workflow
- Post-build distribution steps
Marketplace Publishing by the numbers
- 310 all-time installs (skills.sh)
- Ranked #63 of 248 Release Management skills by installs in the Skillselion catalog
- Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/aaronontheweb/dotnet-skills --skill marketplace-publishingAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 310 |
|---|---|
| repo stars | ★ 1.1k |
| Last updated | July 3, 2026 |
| Repository | aaronontheweb/dotnet-skills ↗ |
How do you publish skills to a Claude Code marketplace?
Package, version, document, and publish .NET-related extensions or skill bundles to a marketplace so users can discover and install your tooling after build completes.
Who is it for?
dotnet-skills maintainers packaging and releasing .NET agent skills to the Claude Code marketplace after content is built.
Skip if: Developers consuming marketplace plugins who are not authoring or publishing skill bundles to a catalog.
When should I use this skill?
A maintainer asks to publish skills to dotnet-skills, update plugin.json, validate marketplace content, or tag a marketplace release.
What you get
Updated marketplace.json catalog, plugin.json skill registry, validated plugin metadata, and release-tagged marketplace publish ready for install.
- marketplace.json
- plugin.json
- tagged marketplace release
By the numbers
- Documents 3 key publish artifacts: marketplace.json, plugin.json, and release.yml
Files
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.shAdding 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.mdExample: skills/akka/cluster-sharding/SKILL.md
Step 3: Write the SKILL.md
---
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:
namemust be lowercase with hyphens (e.g.,cluster-sharding)descriptionshould 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:
{
"skills": [
"./skills/akka/best-practices",
"./skills/akka/cluster-sharding" // Add new skill here
]
}Step 5: Validate
Run the validation script:
./scripts/validate-marketplace.shStep 6: Commit Together
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/:
---
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:
namemust be lowercase with hyphensmodelmust be one of:haiku,sonnet,opuscoloris optional (used for UI display)
Step 2: Register in plugin.json
Add to the agents array:
{
"agents": [
"./agents/akka-net-specialist",
"./agents/my-agent-name" // Add new agent here
]
}Step 3: Commit Together
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:
{
"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
./scripts/validate-marketplace.sh3. Commit version bump
git add .claude-plugin/plugin.json
git commit -m "Bump version to 1.1.0"4. Create and push tag
git tag v1.1.0
git push origin master --tags5. 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):
# 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
nameanddescription - [ ] Skill folder is under appropriate category
- [ ] Path added to
plugin.jsonskills array - [ ] For agents:
modelis specified (haiku/sonnet/opus) - [ ]
./scripts/validate-marketplace.shpasses
---
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
Related skills
FAQ
What files does marketplace-publishing update?
marketplace-publishing updates .claude-plugin/marketplace.json and .claude-plugin/plugin.json when adding or releasing dotnet-skills content. The workflow also references .github/workflows/release.yml for automated release tagging.
Who should use marketplace-publishing?
marketplace-publishing is for dotnet-skills maintainers packaging .NET-related skills and agents for the Claude Code marketplace. The skill covers catalog updates, validation, and release steps so users can discover and install new tooling.