name: marketplace-publishing description: 用于将技能和智能体发布到 dotnet-skills Claude Code 市场的流程。涵盖添加新内容、更新 plugin.json、验证和发布标签。 invocable: true
市场发布工作流
本技能文档说明了如何将技能和智能体发布到 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 技能"
添加新智能体
步骤 1:创建智能体文件
在 /agents/ 中创建一个 Markdown 文件:
---
name: my-agent-name
description: [领域] 专家。专长于 [特定领域]。适用于 [场景]。
model: sonnet
color: blue
---
您是 [领域] 专家,在 [领域] 方面拥有深厚的专业知识。
**参考资料:**
- [官方文档和资源]
**核心专业领域:**
[列出专业领域]
**诊断方法:**
[智能体如何分析问题]
要求:
name必须为小写并用连字符连接model必须是以下之一:haiku,sonnet,opuscolor是可选的(用于 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"
}
使用语义化版本控制 (主版本.次版本.修订号):
- 主版本:破坏性变更(重命名/删除技能)
- 次版本:添加新技能或智能体
- 修订号:现有内容的修复或改进
发布流程
-
在 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
未创建发布
- 确保标签遵循 semver 格式 (
v1.0.0) - 检查 GitHub Actions 日志中的错误
- 验证 plugin.json 版本是否与标签匹配