DSH 技能管理
独立的 DSH 0.2 插件,包名 @very12345/dsh-skill-manager,当前版本 0.4.0。提供技能商店、本机 Agent 技能库导入、多来源安装,以及保留本地修改的更新与回退。
在 设置 → 技能管理 使用。界面与同一插件集合保持紧凑字号、主题和独立 SVG 图标。
安装和使用
通过官方 DSH 插件安装入口添加:
https://github.com/Very12345/dsh-skill-manager
Git URL 安装直接使用提交的 lib/,无需安装阶段构建脚本。更新插件后重启宿主。需要 Node.js ≥22.19;GitHub 来源需要系统 Git 和已配置的非交互凭据,SSH 地址需要已确认的主机密钥。
- 点击 安装技能,选择 GitHub、本地文件夹或 ZIP / Markdown。
- GitHub 支持
owner/repo、HTTPS / SSH 仓库链接、tree子目录链接,以及指定分支、标签、提交。链接中带/的分支按远端真实引用解析。 - 本地目录可填 DSH 所在电脑的完整路径;官方桌面版可使用系统目录选择器。浏览器也可上传完整文件夹,ZIP / Markdown 通过文件选择上传,或以本地完整路径读取。
- 预览技能名称、描述、完整文件数量、格式问题与重名项,按需跳过、改名或替换。确认前不会修改技能库。
- 安装完成后,管理的技能显示来源、Git 提交和本地修改状态;已有技能仅查看其他文件及宿主注册项,不自动接管。
技能写入 $DSH_HOME/skills(默认 ~/.dsh/skills)。保留目录内脚本、模板及二进制资源;导入期间不执行技能脚本或 hooks。技能实际发现、模型调用策略、工具执行和审批仍由 DSH 原生服务管理。
技能商店与其他 Agent 技能库
- 技能商店直接浏览 OpenAI / Codex、Anthropic / Claude、GitHub Copilot 和 Vercel 的公开技能目录,按名称、目录和来源筛选,每页 24 项。默认“预设 + 社区搜索”在关键词达到两个字符时同时搜索 skills.sh,不把四个预设仓库误称为整个技能生态。显示真实元数据、来源链接及完整安装预览。
- skills.sh 社区使用其开源 CLI 同样的公开搜索接口,输入至少两个字符,按接口返回显示最多 50 项,可搜索更广泛的社区技能。非 GitHub 来源会提示并跳过。安装会核实单个技能目录;无法唯一定位时提示使用准确子目录链接,不自动安装整个仓库。
- 目录与描述在插件自己的
catalog-cache下缓存 6 小时;重新读取检查最新目录,网络失败时明确显示缓存及来源错误;GitHub 接口限流时通过 Git 读取目录索引,无需额外令牌。浏览只读取目录和当前页的 SKILL.md;只有安装预览才拉取完整资源。 - 本机技能库读取 Codex、Claude Code、Cursor、Copilot、Gemini CLI、OpenCode、Windsurf、Qwen Code、共享
.agents/skills、Cline 旧目录、Continue、Trae 的用户技能路径,支持CODEX_HOME、CLAUDE_CONFIG_DIR、XDG_CONFIG_HOME。指定项目完整路径后也读取相应项目技能目录。不存在的目录在下拉框中标明,不创建目录。 - 本机导入复制完整技能目录,源 Agent 的文件和启用状态不改变;导入 DSH 后按 DSH 的调用和审批规则使用。来源中的链接会跳过或拒绝,读取问题明确显示;项目依赖和 Agent 专属工具仍需确认。Trae CN 的内置说明、Codex / Claude 的插件技能,以及 CodeBuddy / WorkBuddy 的技能市场和插件缓存可在“插件 / 内置”范围中只读浏览;缓存不代表当前已启用,具体状态在原应用中核对。这里只读取 SKILL.md 说明,不复制专属工具、二进制或私有运行时。
- 列表内容最大宽度 920px,已有技能每行 96px、商店与本机列表每行 112px;描述和路径使用单行省略,点名称查看全文。窄屏使用一致的较高行高,把操作列移到下一行;标签保持单行。
本机 Agent 引导
读取技能目录之外,也检测对应 Agent 配置目录。即使用户技能目录尚不存在,也展示用户 / 项目技能路径、兼容目录和文档入口;检测到配置不等同于确认该应用正在运行。不会为其他 Agent 自动创建目录。
新增支持 TraeCode / TraeWork CN(包含旧 SOLO 配置)、TraeCode CLI、CodeBuddy / CodeBuddy CN、WorkBuddy、Qoder / Qoder CLI、Qoder CN、QoderWork、Kimi Code / VS Code 插件和 Reasonix。Kimi 的 .kimi-code 是配置目录,其技能位于 .kimi/skills,也可读取 Claude、Codex 和共享技能目录。项目目录去重,避免共用路径被重复读取;本机列表同样每页 24 项。
目录依据 TraeWork、TraeCode CLI、CodeBuddy、Qoder CLI、Kimi Code 的文档,以及本机已有目录结构核对。仅对本插件确认导入的 DSH 副本提供启停、更新和回退。
调用已安装技能
- DSH 0.2 已原生支持输入 / 后从菜单选技能,或在用户消息中直接写 /技能名。本插件补充 $技能名 的手动输入入口:在调用模型前从当前 Agent 的技能目录加载完整正文,以原生 skill-invocation 上下文注入,不依赖模型主动调用 skill 工具。
- 例如输入 /ppt-master 请将这个 PDF 制作为 12 页可编辑 PPTX,或 $ppt-master 请将这个 PDF 制作为 12 页可编辑 PPTX。指令前后使用空白分隔;技能详情页提供两种指令的复制按钮。命令与 /技能名 重名时仍沿用 DSH 命令优先级,可用 $技能名 明确指定技能。
- 重复 $技能名 或混用 /技能名 与 $技能名 时,本轮正文只加载一次。只识别直接用户消息中的明确名称,外部结果、附件内容、路径和普通变量不会伪造入口;未知名称和禁止用户调用的技能保留为普通文本。
- 停用或格式不合规的技能不能调用,详情页说明原因。规范要求 SKILL.md 包含 YAML name 和 description。已有包装技能 ppt-master-wrap 与原版 ppt-master 是不同条目,不会把显示在文件列表中的非规范 Markdown 误称为宿主已注册技能。
- 模型、工具权限和审批仍沿用该会话设置;显式加载说明不会执行安装脚本或自动批准工具。前端沿用原生 / 菜单,$ 入口目前手动输入或通过详情页复制。
原生行为依据 DSH 官方技能调用说明 核对。插件使用宿主公开 SDK 的 canonical skill 内容与消息格式,通过事件扩展接入,不改动官方应用文件。
更新与回退
- 检查更新预览单个技能;同一来源安装了多个技能时,同源更新只读取一次来源,逐项选择需要更新的技能。
- 按每个文件比较安装基线、本地版本、来源新版。本地单独修改或新增的文件保留;双方都修改的文件必须选择保留本地或使用来源。
- 来源删除文件时显示移除项;被本地修改的文件不会被静默丢弃。来源移除了整个技能时,当前安装保留并提示,不自动卸载。
- 预览后又有新修改会拒绝应用,要求重新预览。每次安装、替换、更新、启停、移除都会记录历史并保存原文件,历史与回退可恢复;若后续内容已变化,回退先拒绝覆盖。
- 停用采用管理目录内
SKILL.md/SKILL.md.disabled的物理切换,不改写调用策略。更新保留实际停用状态。导出 ZIP 使用规范SKILL.md,包含完整资源。 - 上传的文件夹或压缩包没有持续可读取的来源路径,更新时需重新导入新版并处理重名项;本地路径来源和 GitHub 来源可直接检查更新。
管理状态、暂存目录及历史位于 $DSH_HOME/very12345-skill-manager,不进入 Git。使用独立文件锁和事务记录;中断恢复时保留新出现的本地修改。不会改名或写入 Codex / Claude 的源技能文件,也不改动官方 DSH 安装。
范围与验证
目前管理 DSH 用户技能目录;项目 / Agent 分配不在此版本中。系统和其他提供方技能仅查看。ZIP 支持普通 UTF-8 文件名的 stored/deflate 格式;不支持加密、分卷、ZIP64 和符号链接。本地 / GitHub 读取和 ZIP 展开总量上限 256 MiB,单文件 64 MiB、最多 25,000 个文件。ZIP / 浏览器上传上限 64 MiB,请求体上限 96 MiB(含 Base64 和元数据);更大的本机文件夹通过完整目录路径读取。超限会说明是单文件、文件数还是总量,以及对应路径。浏览器文件夹分批读取,保持界面响应;路径读取支持取消。
npm ci --ignore-scripts
npm run verify
node scripts/smoke-github.mjs
node scripts/smoke-discovery.mjs
node scripts/smoke-large-skill.mjs
npm pack --pack-destination .tmp --ignore-scripts
node scripts/smoke-host.mjs --ui
npm pack --dry-run --ignore-scripts
当前 37 项测试覆盖本地 / ZIP / 上传目录、重名选择、文件级合并、停用更新、平铺 Markdown 回退、事务中断、路径 / 链接拒绝、真实 Git 分支与子目录,以及 DSH SDK 的技能发现和热刷新。新增目录缓存、分页、社区技能定位、本机 Agent 扫描、源文件保护和复制测试。浏览器烟测使用原生 DSH Modal 与独立临时技能库,检查安装、更新对照、回退、明暗主题、窄屏、Esc 与焦点;GitHub 实测也只写隔离目录。
官方桌面版携带的 DSH 0.2.0-rc.2 已在独立 web profile 验证插件安装、激活、HTTP 预览/安装和技能发现,并在完整官方设置页检查技能列表的宽度和统一行高。宿主发现状态使用标准模式的官方 preset 目录查询,不把全局注册表的空结果误判为安装失败。smoke-host.mjs 默认使用本机官方桌面安装路径,其他机器需调整其路径;不会启动真实任务或使用日常 profile。
开发和验证基线为 Windows、DSH 0.2.0-rc.2。实现采用跨平台 Node / Git,Linux/macOS 尚未实机联调。源码、安装版本、宿主发现和实际技能执行分别核实,不把文件写入等同于模型已使用技能。
参考与许可证
调研了 sulfide2085/dsh-skill-manager、AKS1st/dsh-skill-manager、MichengAI/dsh-skills-manager 的来源导入及界面流程,并依据 DSH 官方 filesystem provider 对齐目录和调用策略。管理逻辑独立实现。
原创代码 MIT;打包的 YAML / ZIP 组件许可见 NOTICE。通过 GitHub 提交推送分发,不创建 Release 或启用 Actions。
No comments yet. Be the first to write one.