用途
该技能用于记录如何将技能(skills)和智能体(agents)发布到 dotnet-skills Claude Code 市场。它面向需要向该市场贡献内容的开发者,提供从新增内容、注册、校验到发布版本的完整流程说明。
仓库结构
仓库 dotnet-skills 的主要结构如下:
.claude-plugin/:包含marketplace.json(市场目录)和plugin.json(插件元数据及技能/智能体注册表)。.github/workflows/:包含release.yml(发布自动化)。skills/:按领域组织技能,包括akka/(Akka.NET 技能)、aspire/(.NET Aspire 技能)、csharp/(C# 语言技能)、testing/(测试框架技能)、meta/(关于本市场的元技能)。agents/:存放智能体定义(*.md)。scripts/:包含validate-marketplace.sh校验脚本。
新增技能
- 选择分类:技能按领域组织,包括 akka/、aspire/、csharp/、testing/、meta/。若没有合适分类,可新建分类文件夹。
- 创建技能文件夹:路径为
skills/<category>/<skill-name>/SKILL.md,例如skills/akka/cluster-sharding/SKILL.md。 - 编写 SKILL.md:需包含 YAML frontmatter,其中
name必须为小写并用连字符(如 cluster-sharding),description用 1-2 句话说明何时应使用该技能。正文应全面覆盖主题,内容约 10-40KB,并包含使用现代 C# 模式的具体代码示例。 - 在 plugin.json 中注册:将技能路径加入
.claude-plugin/plugin.json的skills数组。 - 校验:运行
./scripts/validate-marketplace.sh。 - 一起提交:将技能文件夹与 plugin.json 一并提交。
新增智能体
- 创建智能体文件:在
/agents/下创建 markdown 文件,frontmatter 中name必须为小写并用连字符,model必须为 haiku、sonnet、opus 之一,color可选(用于 UI 显示)。正文需说明智能体的领域专长、参考资料、核心专长领域和诊断方法。 - 在 plugin.json 中注册:将智能体路径加入
agents数组。 - 一起提交:将智能体文件与 plugin.json 一并提交。
发布版本
版本号在 .claude-plugin/plugin.json 中更新,使用语义化版本(MAJOR.MINOR.PATCH):MAJOR 表示破坏性变更(重命名/移除技能),MINOR 表示新增技能或智能体,PATCH 表示修复或改进现有内容。
发布流程:更新 plugin.json 中的版本号 → 运行校验脚本 → 提交版本变更 → 创建并推送标签(如 git tag v1.1.0、git push origin master --tags)。GitHub Actions 会自动校验市场结构并创建带自动生成说明的 GitHub release。
用户安装
用户安装的是完整插件(包含所有技能和智能体):
# 添加市场(一次性)
/plugin marketplace add Aaronontheweb/dotnet-skills
# 安装插件(获取全部内容)
/plugin install dotnet-skills
# 更新到最新版本
/plugin marketplace update
校验清单
提交前需确认:SKILL.md 具有包含 name 和 description 的有效 YAML frontmatter;技能文件夹位于合适分类下;路径已加入 plugin.json 的 skills 数组;智能体需指定 model(haiku/sonnet/opus);./scripts/validate-marketplace.sh 通过。
常见问题排查
- 安装后技能未出现:检查 plugin.json 中的路径是否与文件夹结构匹配,确认文件夹中存在 SKILL.md,可尝试卸载后重新安装。
- 校验错误:确保 JSON 有效(
jq . .claude-plugin/plugin.json),检查数组中的尾随逗号,确认所有引用的文件夹都包含 SKILL.md。 - 未创建 release:确保标签符合 semver 格式(v1.0.0),检查 GitHub Actions 日志,确认 plugin.json 版本与标签一致。