dsh-skill-editor
在 dsh Web 设置页直接编辑 skill 的 SKILL.md(简介 + 正文),保存即写回磁盘、无需重启。一个独立、轻量、纯 node:fs 实现的 dsh 插件。
本项目所有代码由dsh完成,本人完全不会编程
✨ 特性
- 设置页即编即改:
设置 → 技能编辑器,列出所有技能,点开即可编辑。
- 安全分级(防手滑):
- 本地技能(
~/.dsh/skills、~/.agents/skills、工作区 .dsh/skills):可编辑保存。
- 系统/内置技能(bundled / 插件内嵌):只读,显示风险提示。
- 保存即写盘:写回
SKILL.md,技能热加载,刷新即生效。
- 只动正文 + name/description:不碰其它 frontmatter 字段,原样保留。
- 零第三方依赖的读写逻辑:用
node:fs 直接操作明文文件,不依赖任何 skill 插件内部实现,升级不失效。
- 可独立回滚:删除本插件即可完全移除,不影响其它功能。
📦 安装
# 直接从 GitHub 仓库安装
dsh plugin --profile web add https://github.com/bosinHU/dsh-skill-editor
本插件在 dsh.client.platform: web 下自动注入,无需手动改 cordis.patch.yml。
安装后重启 web 服务(dsh --profile web),刷新页面,设置页即出现「技能编辑器」。
🚀 使用
- 进入 dsh Web 设置 →「技能编辑器」。
- 展开某个技能,编辑
description 或正文(SKILL.md 中 --- 分隔线之后的部分)。
- 点击「保存」,内容立即写回磁盘。
🖼️ 界面预览
图为 dsh Web 设置页「技能编辑器」的真实界面:左侧为设置导航,右侧列出全部技能(全局/内置),展开后可编辑 name、description 与正文(SKILL.md)。
技能编辑器真实界面
🗂️ 项目结构
dsh-skill-editor/
├── package.json # 包声明(dsh.client / dsh.bundle.patch)
├── cordis.patch.yml # bundle patch(注册 host 插件)
├── lib/
│ ├── index.js # host:skillEditor 远程服务(list/content/saveContent)
│ └── client.js # client:设置页「技能编辑器」UI
├── README.md
└── LICENSE
🧠 技术细节(typert 协议)
- host 端
lib/index.js 的 MANIFEST 中,每个参数都带 codec 字段(新版 typert 强制要求):
- 标量参数(
name / sessionId)用 codec: { mode: "src-json" };
- 对象参数(
payload)用 codec: { mode: "strict", typeSymbol: "...", schema }。
apply(ctx) 里显式调用 ctx.typert.register(MANIFEST),否则前端 remote.skillEditor 连不上后端。
❓ 常见问题
Q: 保存后要重启 dsh 吗?
不需要,技能是热加载的,刷新页面即可生效。
Q: 系统/内置技能为什么不能改?
防止误改内置技能导致 dsh 异常。如需修改,请在本地 ~/.dsh/skills 下新建同名技能,或改用本地副本。
📄 License
MIT © 2025 bosinHU
所有代码内容由 dsh 自主完成。