ワンクリックで
plugin-development
插件开发全流程技能。按通道类型引导:Native DLL / Process EXE / MCP。主推 C#(提供脚手架),其他语言提供协议规范。触发关键词:插件开发、创建插件、发布插件、Native 插件、Process 插件、MCP 接入。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
插件开发全流程技能。按通道类型引导:Native DLL / Process EXE / MCP。主推 C#(提供脚手架),其他语言提供协议规范。触发关键词:插件开发、创建插件、发布插件、Native 插件、Process 插件、MCP 接入。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Madorin 插件开发入口技能。用于统一编排 Native、MCP、Process 三类通道,约束工程规范、外部包 AOT 校验、发布安装与运行时更新流程。触发关键词:插件开发、Native 插件、MCP 插件、Process 插件、进程插件、发布插件、安装插件。
Madorin Native 插件开发子技能。位置:subskills/native。用于 Native AOT 插件创建、Startup 组合、Tool 编写、JsonContext、后台服务、AOT 规则。触发关键词:Native 插件、AOT 插件、Startup.Configure、ToolAttribute、原生插件。
Madorin Process 插件开发子技能。位置:subskills/process。用于开发以独立 exe 进程运行的插件,支持 JIT self-contained 和 AOT exe 两种发布方式,通过 stdin/stdout JSON 协议与宿主通信。触发关键词:Process 插件、进程插件、exe 插件、JIT 插件、进程隔离插件。
Madorin PluginBus WebSocket 接入。用于生成 /internal 单端点、cortana.plugin-bus、conversation topic、chat.message.send、chat.generation.stop、system.notice、ping/pong 的 C# 客户端代码与样板。关键词:WebSocket、PluginBus、/internal、chat.message.send、ping、pong。
Madorin 插件工程规范子技能。位置:subskills/architecture。用于插件架构设计、职责分离、依赖注入、AOT 安全编码、配置与日志、质量门禁。触发关键词:插件架构、职责分离、依赖注入、工程规范、AOT 安全、插件设计。
Madorin MCP 通道子技能。位置:subskills/mcp。用于接入和校验外部 MCP Server 的 stdio、sse、streamable-http 配置。触发关键词:MCP、Model Context Protocol、stdio、sse、streamable-http。
| name | plugin-development |
| version | 6 |
| description | 插件开发全流程技能。按通道类型引导:Native DLL / Process EXE / MCP。主推 C#(提供脚手架),其他语言提供协议规范。触发关键词:插件开发、创建插件、发布插件、Native 插件、Process 插件、MCP 接入。 |
| user-invocable | true |
┌─ 接现成工具服务 (GitHub/Filesystem/自建 MCP Server)
│ → MCP 通道(UI 配置,不写代码)→ references/mcp-setup.md
做扩展 ───────────── │
│ ┌─ 原生 DLL → Native 通道
└─ 自己写 ─ 产物是什么? ──┤
└─ EXE → Process 通道
运行一次即可(自动检测并安装缺失组件):
.\scripts\setup-dev-environment.ps1
检查 .NET 10+ SDK 和 AOT 需要的 C++ 构建工具。不做 Native DLL 可加 -SkipAot。
写插件前,用 C# 脚本插件试一把:
sys_csx_run_str 直接跑业务逻辑片段#r "nuget:Humanizer, 2.14.1" 试 NuGet 包能否满足需求sys_csx_session_* 保留跨次状态,模拟插件持久层原型通过再决定做 Native 还是 Process,避免白造。
.\scripts\create-native-plugin.ps1 -Name MyPlugin -Id my_plugin
# ... 写业务代码 ...
.\scripts\publish-native-plugin.ps1 -ProjectDir Samples\MyPlugin
细节:references/csharp-native.md 错误速查:references/csharp-aot-errors.md
任何能产出导出符号的原生 DLL 的语言都能接入。没有脚手架,按 C ABI 契约自行实现:references/native-abi.md
内容包含:5 个导出函数签名、内存所有权规则、plugin.json 格式、C/Rust/Go 最小示例。
Python / Node.js 等解释型语言不适合 Native 通道(无法产出原生 DLL),请走 Process 通道。
.\scripts\create-process-plugin.ps1 -Name MyPlugin -Id my_plugin
# ... 写业务代码 ...
.\scripts\publish-process-plugin.ps1 -ProjectDir Samples\MyPlugin
脚手架默认引用 Netor.Cortana.Plugin.Process 框架;编译时会自动生成消息循环、plugin.json 和 {PluginClass}Debugger。
对于 C# Process 插件,测试优先在插件项目自身内完成,默认使用 dotnet run -- --self-test 进入内置自测模式,不额外新建脚本或测试工程。
没有脚手架,按协议规范自行实现:references/process-protocol.md
该规范是语言中立的完整契约:NDJSON 帧格式、4 个方法 (get_info/init/invoke/destroy)、plugin.json 结构、实现要点清单。
打包要求:产出单个 EXE;C# 场景优先使用 publish-process-plugin.ps1 统一输出运行目录和 zip 包。
不写插件,在 Cortana UI「MCP 服务」页添加配置条目。
.cortana/plugins/<kebab-name>/Src\Netor.Cortana\bin\Debug\net10.0-windows\.cortana\plugins\{WorkspaceDirectory}\.cortana\plugins\,宿主自动扫描加载.dll / .exe / .json / 运行时依赖);不要带 .pdb / .xml / .deps.json 以外的开发文件| 想做 | 看 |
|---|---|
| C# 原生 DLL 插件 | references/csharp-native.md |
| C# EXE 子进程插件 | 使用 scripts/create-process-plugin.ps1 生成框架工程 |
| Python / Node / Go / Rust 子进程插件 | references/process-protocol.md |
| MCP 接入 | references/mcp-setup.md |
| AOT 编译错误 | references/csharp-aot-errors.md |
| C/C++/Rust/Go 原生 DLL | references/native-abi.md |
每次修改此技能或其 references / scripts,将 version 字段 +1。