dsh-plugin-builder:在 DSH 里走完插件开发的全流程

前言

DSH 插件是 Cordis 包:一半是注册服务、工具或技能的 Host 端,一半可选的浏览器端负责加 UI。写好它的前提是知道当前运行环境里 Host 的真实 API,而不是博客里的版本。WilShi 维护的 dsh-plugin-builder 就是解决这个问题的:把插件开发的全流程收进编辑器里,让 agent 有一份受约束的引导流程可以照做。

这是什么

dsh-plugin-builder 是一个 DSH 插件,定位是「受护栏约束的插件开发 Skill 包」。它由 WilShi 维护,MIT 许可,当前版本 0.2.3。

它解决的是写插件时的三个麻烦:不知道该调哪个 API、从零搭包很重复、把未经确认的东西装进 profile。这个包提供一个编辑器内的 workshop 面板,外加配套的脚手架和校验脚本,把「设计 → 原型 → 实现 → 校验 → 打包 → 安装」这套流程交给 agent 引导执行。

核心功能

1、全局注册 cordis-plugin-development 技能。agent 会沿一条有确认关卡的流程推进,而不是自由发挥。

2、新增 Settings → Plugins → workshop 面板。你在一个输入框里描述想要的插件,再选一种引擎:

  • Claude Code 模式(默认),在本地 Claude Code agent 上开专用会话;
  • Cordis 模式,Cordis 创建预设;
  • 标准模式,使用宿主默认 agent。

面板不会替你安装任何东西,也不会劫持当前对话,它开一个新会话并预填技能提示词,由你和 agent 决定下一步。

3、附带技能调用的工具集:

inspect-target.mjs      读取真实宿主版本
scaffold-package.mjs    生成可构建的包
validate-package.mjs    检查包契约

外加原型契约和校验矩阵两份参考资料。

4、技能优先级可预期。DSH 0.2.1 自带同名技能时,插件保留宿主那份并跳过自带副本;宿主没有时注册自带副本。工作台面板在两种情况下都可用。

安装与启用

插件以当前 dsh 进程的权限运行,装之前建议先核对源码与许可证。

dsh plugin --profile web add dsh-plugin-builder

重启该 profile。插件通过自带的 cordis.patch.yml 挂载配置,不需要手工改 profile 的 patch 层:

- insert:
    - id: dsh-plugin-builder
      name: dsh-plugin-builder

典型用法

1、打开 Settings → Plugins → workshop(标签文案跟随界面语言)。

2、描述你要的插件,选引擎。

3、点开始。面板在当前工作区开新会话,把 /cordis-plugin-development … 和你的需求放进输入框后自行关闭,它不会替你发消息。

4、跟随技能的关卡走:先确认设计,再实现,再出校验证据,最后在把东西装进 profile 之前做一次明确确认。

如果所选预设缺失或损坏,面板会在建会话之前报错,不会留下空会话和静默失败。

适用场景与注意

适合在 DSH 里开发或改动插件的开发者,尤其是需要反复对照 Host API 的人。官方给出的运行要求:

  • DeepSeek Harness 0.2.1-rc.5(Cordis 4.0.5),插件的类型检查、客户端打包和单测都对着这条线验证;
  • Node ^22.19.0 || ^24.0.0;
  • 使用组合了 skills 服务的 profile(标准 Web/Desktop profile 都满足)。

需要注意的几点:

  • panel 只负责开会话,agent 仍需保证会话作用域里有 cordis-plugin-development 技能(它被全局注册,所以满足);
  • skills/cordis-plugin-development/references/ 下的参考资料是按 0.1.5-rc.2 接口线写的,技能会先让 agent 调 inspect-target.mjs,把这些资料当背景而非 API 契约,读法相同;
  • 生成的插件是普通 DSH bundle,是否安装始终由你明确决定;
  • 该插件的星标数为 0,属于很新的项目,踩坑前先读源码。

开发相关命令(从源码目录运行):

npm install
npm run build      # esbuild host/client bundle + tsc 声明
npm run typecheck  # 对照已发布的 0.2.1-rc.5 声明做 tsc
npm test           # 单测(脚手架测试需要 DSH_SOURCE_CHECKOUT)
npm run validate:package

脚手架和校验测试要对着真实的 DSH 源码 checkout 跑,需要把 DSH_SOURCE_CHECKOUT 指向一份 deepseek-harness checkout;没有它这组测试会被跳过。

目录页与仓库

  • 社区目录页:https://www.skillhub.cn/plugins/WilShi/dsh-plugin-builder
  • GitHub:https://github.com/WilShi/dsh-plugin-builder
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜