Back to home

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-creatorskill加载后注入指令仿 Claude Code skill-creator 的六步创作流程:澄清需求 → 设计形态 → 生成骨架 → 挂载 → 实现 → 验证迭代
plugin-auditor插件audit_plugin 工具静态审计任意插件:15 项检查,输出 PASS/WARN/FAIL 报告与修复建议

完整工作流:plugin-creator 六步流程作总纲 → 第 3 步调 forge_plugin 生成骨架 → 第 5 步实现后调 audit_plugin 逐条核对 → 挂载验证。

规范依据

三件套引用同一份作者化规范清单(skill:dsh-plugin-authoring),内容源自:

  1. 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
  2. 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