math-lrz
dsh-plugin-toolkit
DSH 插件工具包:plugin-forge(生成插件骨架)+ plugin-auditor(审计插件规范),依据 Cordis 论文与 dsh-plugin-authoring 规范
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 14, 2026
- Updated
- Aug 14, 2026
Introduction
DSH Plugin Toolkit
写插件、教写插件、审插件的三件套:plugin-forge 生成符合规范的骨架,plugin-creator 给出端到端创作流程,plugin-auditor 审计任意插件是否符合规范。三者引用同一份作者化规范(dsh-plugin-authoring)。
三件套
| 组件 | 形态 | 入口 | 作用 |
|---|---|---|---|
| plugin-forge | 插件 | forge_plugin 工具 + /forge 命令 | 按规格生成新插件骨架(JS 版直接可挂载 / TS 版 defineTool+schemastery),输出 loader entry 挂载片段 |
| plugin-creator | skill | 加载后注入指令 | 仿 Claude Code skill-creator 的六步创作流程:澄清需求 → 设计形态 → 生成骨架 → 挂载 → 实现 → 验证迭代 |
| plugin-auditor | 插件 | audit_plugin 工具 | 静态审计任意插件:15 项检查,输出 PASS/WARN/FAIL 报告与修复建议 |
完整工作流:plugin-creator 六步流程作总纲 → 第 3 步调 forge_plugin 生成骨架 → 第 5 步实现后调 audit_plugin 逐条核对 → 挂载验证。
规范依据
三件套引用同一份作者化规范清单(skill:dsh-plugin-authoring),内容源自:
- Cordis 论文《A Programming Paradigm for Spatiotemporal Composability》(Y. Shi, W. Zhang, T. Cui;实现即 Cordis):cordiverse/paper
- revertible effects:一切 ctx 突变经
ctx.effect,disposer 为逆,卸载 LIFO 恢复(Algorithm 1) - reactive coeffects:
inject声明依赖,服务变更自动通知/停用/重载(Algorithm 3) - component = coeffect 规格(inject)+ effect 函数(apply)
- loader entry
{id, url, config, disabled}:id 是对账键,按字段最小扰动对账,HMR
- revertible effects:一切 ctx 突变经
- DSH 官方包文档(@deepseek-ai/dsh-tools 等 0.1.0-rc.6 随包 README):工具五件套、值/呈现分离、exec.signal 协作取消、会话 cwd 锚定、写后读回、沙箱升权成对 fail-closed。
完整清单见 dsh-plugin-authoring skill 文本。
安装
两个插件为零依赖纯 JS 单文件静态插件,file:/// 一行挂载;skill 为纯文本 SKILL.md,复制进 skills 目录即生效:
# profile 的 cordis.patch.yml(如 $DSH_HOME/profiles/web/cordis.patch.yml)
- insert:
- id: plugin-forge
name: 'file:///<你的路径>/dsh-plugin-toolkit/plugin-forge/lib/index.mjs'
- insert:
- id: plugin-auditor
name: 'file:///<你的路径>/dsh-plugin-toolkit/plugin-auditor/lib/index.mjs'
# skill:复制到 DSH 扫描的 skills 目录(如 $DSH_HOME/skills/ 或工作目录 .agents/skills/)
cp -r skills/plugin-creator $DSH_HOME/skills/plugin-creator
保存后 loader 实时对账(reconciliation),无需重启。 npm 安装(推荐,装完自动挂载):
dsh plugin --profile web add plugin-forge
dsh plugin --profile web add plugin-auditor
用法
对模型说:
- "写一个插件:工具 xxx,参数 a、b……" → 模型按
plugin-creator流程澄清需求,调forge_plugin生成骨架并返回挂载片段 - "审查 .plugins/my-plugin 是否符合规范" → 模型调
audit_plugin,输出 PASS/WARN/FAIL 报告
目录结构
dsh-plugin-toolkit/
├── plugin-forge/ # 生成骨架(forge_plugin 工具 + /forge 命令)
│ ├── lib/index.mjs # 全部实现(626 行,零依赖)
│ ├── tests/smoke.mjs # 9 项冒烟测试(node tests/smoke.mjs)
│ └── mount.example.yml # 挂载片段
├── plugin-auditor/ # 静态审计(audit_plugin 工具)
│ ├── lib/index.mjs # 全部实现(374 行,零依赖)
│ ├── tests/smoke.mjs # 6 项冒烟测试(含审计真实插件与坏插件样例)
│ └── mount.example.yml
├── skills/
│ └── plugin-creator/ # 六步创作流程 skill
│ └── SKILL.md
├── dsh-plugin-authoring.md # 作者化规范清单(skill 文本)
└── README.md
测试
node plugin-forge/tests/smoke.mjs # 9 项:生成端到端、LIFO 逆序、生成物语法校验、错误路径
node plugin-auditor/tests/smoke.mjs # 6 项:审计真实插件无 FAIL、坏插件捕获 FAIL/WARN、错误路径
已知限制
audit_plugin是静态启发式审计,不是运行时验证:真实挂载(dump-config + 真会话)是最终裁决- plugin-forge 的 TS 模板只生成工具(命令请用 JS 模板),构建需自备 tsc 与宿主依赖软链
License
MIT