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
--- 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.sh
Step 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 hyphens - •
modelmust be one of:haiku,sonnet,opus - •
coloris 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
- •
Update version in plugin.json
- •
Validate
bash./scripts/validate-marketplace.sh
- •
Commit version bump
bashgit add .claude-plugin/plugin.json git commit -m "Bump version to 1.1.0"
- •
Create and push tag
bashgit tag v1.1.0 git push origin master --tags
- •
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