ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

dotnet/skills 插件架构深度解析:plugin.json 与 version.json 如何协同多端分发

dotnet/skills 插件架构深度解析:plugin.json 与 version.json 如何协同多端分发 dotnet/skills 插件架构深度解析plugin.json 与 version.json 如何协同多端分发【免费下载链接】skillsRepository for skills to assist AI coding agents with .NET and C#项目地址: https://gitcode.com/GitHub_Trending/skills17/skills本仓库是 .NET 团队官方维护的 AI 编码代理技能库.NET Agent Skills通过每个插件目录下的三份 plugin.json 清单 一份 version.json 版本基座文件实现了一次编写、多客户端分发的插件架构——Copilot CLI、Claude Code、Codex CLI、Cursor 都能直接从仓库读取并安装同一套 .NET 技能。下面带你快速看懂这套机制。一分钟看懂插件目录结构每个插件都是plugins/下的一个独立目录内部同时为不同客户端准备了对应的清单文件文件谁在读它说明plugin.jsonCopilot CLI / Claude Code主清单是版本的权威来源.codex-plugin/plugin.jsonCodex CLICodex 原生插件清单.claude-plugin/plugin.jsonClaude Code由脚本生成的主清单逐字节副本version.json自动化版本脚本声明版本基座major.minor 关键点同一份技能内容客户端各读各的清单。所以清单之间版本不一致时脚本会主动修复漂移而不是任其分叉。plugin.json一个文件描述完整插件以 plugins/dotnet/plugin.json 为例字段非常精简name插件标识如dotnetversion完整三段版本号如0.2.3由脚本自动盖章不要手改description一句话描述用于市场浏览skills指向./skills/目录插件内所有技能都放这里可选字段按需出现lspServersplugins/dotnet/lsp.json 让dotnet插件附带 C# 语言服务器集成agentsplugins/dotnet-msbuild/plugin.json 声明了 3 个角色代理如msbuild.agent.mdmcpServers同一文件还内联声明了binlogMCP 服务器 注意如果一个插件捆绑了 MCP 服务器它必须在每一份清单中都声明——Copilot 读plugin.json、Codex 读.codex-plugin/plugin.json、Claude 读.claude-plugin/plugin.json只写一处就会在另两个客户端上静默消失。校验工具skill-validator check会强制执行这条规则。version.json版本号的真正源头打开 plugins/dotnet/version.json 会看到它只有两个核心字段{ version: 0.2, pathFilters: [., :!plugin.json, :!.codex-plugin/plugin.json, :!.claude-plugin/plugin.json, :!version.json] }version 是基座只有 major.minor 两段只有当你要发布一次有意的 minor/major 升级时才能改它如0.1→0.2改基座会把 patch 重置为0pathFilters 是排除清单三份清单文件和 version.json 自身都属于版本输出物不算有效内容——只改元数据不会触发 patch 递增于是版本号形成分工段位谁决定何时变化major.minor人类改 version.json 基座有意的功能升级patch脚本自动计算插件有效内容相对上次发布点有净变化时 1协同机制自动版本同步脚本如何工作核心引擎是 eng/version/Sync-PluginVersions.ps1配套自测在 eng/version/Test-Sync-PluginVersions.ps1它支撑两个入口PR 期间维护者在 PR 下评论/version-bump脚本用-PredictMerge预测这个 PR 合并后插件的版本并直接盖章到分支每周兜底在主分支上跑一次把所有内容变了但版本没盖章的插件全部对齐它的几个设计细节很值得学发布检查点checkpoint只有与父提交相比版本恰好递增的提交才算发布点任意手动 patch 编辑不具备版本权威性只看第一父提交历史合并一个旧分支不会让版本被图结构高度误判为新版写回只动 version 字段用正则替换而非 JSON 重排保证清单其余字节不变diff 干净也就是说你只需要改技能内容版本号会被自动推到三份清单里plugin.json、.codex-plugin/plugin.json、.claude-plugin/plugin.jsonClaude 那份还会被整体刷新为主清单副本。质量门版本发布前有自动化评测兜底每个插件/技能都有对应的tests/plugin/skill/eval.yaml评测变更会经历 baseline无技能、skilled、plugin 三种对照运行只有可信地优于基线才算通过。评测结果以 PR 评论形式发布版本-only 的变更仅清单元数据不会触发技能评测避免无谓消耗。新手上手多端安装与更新# 克隆仓库本地调试/私有使用 git clone https://gitcode.com/GitHub_Trending/skills17/skills各客户端安装方式详见根 README.mdCopilot CLI / Claude Code/plugin marketplace add dotnet/skills→/plugin install plugindotnet-agent-skillsVS Codesettings.json 中配置chat.plugins.marketplaces: [dotnet/skills]Cursor直接在插件市场面板搜索.NETCodex CLIcodex plugin marketplace add dotnet/skills→/plugins浏览安装更新插件时各客户端读取的就是上面盖章过的清单版本号/plugin update即可拉到最新发布点。想自己加一个插件最小清单按 CONTRIBUTING.md 的要求新建plugins/name/plugin.json及其.claude-plugin/、.codex-plugin/两份副本版本从0.1.0起步加一份 version.json基座设为当前 major.minor否则每周同步会直接报错——没有 version.json 的插件不允许存在在 4 份市场清单GitHub、Claude、Cursor、Codex 各自的 marketplace.json中登记补充 CODEOWNERS 与tests/name/评测小结这套架构的精髓可以浓缩为一句话plugin.json 管插件长什么样version.json 管版本从哪来同步脚本负责把两者缝合成多客户端一致的可发布产物。对使用者来说它意味着四个客户端体验一致、版本永不漂移对贡献者来说唯一要手动管理的版本号只剩 version.json 里的基座一个。【免费下载链接】skillsRepository for skills to assist AI coding agents with .NET and C#项目地址: https://gitcode.com/GitHub_Trending/skills17/skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表