前言¶
在 DeepSeek Harness(DSH)里,Skill 是扩展智能体能力的主要载体。实际开发中,Skill 往往散落在下载目录、项目仓库和 ~/.dsh/skills 之间:有的还没按 DSH 规范写好 frontmatter,有的想先放进池里备用,有的需要在系统级与项目级之间切换。纯靠手改文件和记路径,启用、停用和批量导入都容易出错。
下面介绍社区插件 dsh-skill-manager-ytxue(维护者 YTxue,分类:工作流)。它在 DSH Web 界面的设置侧边栏提供「Skill 管理」面板,把列表查看、启用/停用、文件夹批量导入、规范检查与自动修复集中在一处处理。
这是什么¶
dsh-skill-manager-ytxue 是一个 DSH Web 插件(当前版本 0.6.0,MIT 许可证)。插件在设置侧边栏注册 settings.section 条目(order: 900),面板标题为「Skill 管理」。
它面向两类目录:
- 启用目录
~/.dsh/skills/:系统级 Skill,DSH 原生扫描(rank 400),导入后立即生效。 - 池目录
~/.dsh/skill-pool/:零挂载存放,之后按需启用。
面板同时展示项目级 Skill(<项目根>/.dsh/skills、<项目根>/.agents/skills),只读标识,不参与规范检查。切换 DSH 会话时,面板会按当前工作目录自动过滤,只显示对应项目的项目级条目。
核心功能¶
状态总览与标识¶
面板以双列表展示启用目录与池目录中的 Skill。每个条目旁有形态标签:
| 标签 | 形态 | 说明 |
|---|---|---|
| bundle | skills\<name>\SKILL.md |
目录型,可附带脚本、模板等资源 |
| flat | skills\<name>.md |
单文件 Markdown |
标签后还会标注系统级或项目级来源。每行显示 frontmatter 中的 description;名字旁的圆点表示检查状态——绿点为已检查且内容未变,红点为未检查或内容已变更。
导入 Skill¶
工具栏支持从本地路径导入,可选手动输入或通过内置目录浏览对话框选择文件夹(从全部盘符起步,支持任意层级)。
导入逻辑会自动识别单条与批量:
- 路径指向单个 Skill(含
SKILL.md的目录或.md文件)→ 导入 1 个。 - 路径指向包含多个 Skill 的大文件夹 → 逐个导入直接子级,忽略非 Skill 文件。
重名时先 dry-run 预检,弹窗列出冲突条目,可选择跳过重名并导入其余、覆盖重名或取消。目标可选复制到启用目录(立即生效并自动检查修复)或复制到池目录。导入结果逐条显示成功、跳过或失败标记;目录名会自动规整为 kebab-case。
规范检查与自动修复¶
「一键检查」采用状态驱动策略:只处理红点条目,绿点自动跳过。检查依据 ~/.dsh/skill-manager-ytxue.checked.json 中 SKILL.md 内容的 sha1 指纹。
不合规项会自动修复并写入日志 ~/.dsh/skill-manager-ytxue.log,包括:
- 目录名/文件名非 kebab-case → 规整重命名,同步 frontmatter
name name缺失或与目录名不一致 → 以目录名为准修正description缺失 → 补充占位描述- 布尔字段驼峰拼写或非标准值 → 改为 kebab 或修正/删除
启用与停用¶
在池目录与启用目录之间移动条目,支持 bundle 目录与 flat 单文件两种形态。发生冲突或重复时安全报错,不会静默覆盖。
项目级 Skill 展示¶
默认只显示当前会话对应项目的项目级 Skill。客户端订阅 sessions 服务,切换会话即同步工作目录;host 向上探测 .git 祖先以确定项目根(与 DSH skill-filesystem 判定一致)。若某项目从未开过会话但仍需展示,可在 $DSH_HOME/settings.yaml 中配置:
skill-manager-ytxue:
projectRoots:
- '/path/to/project1'
- '/path/to/project2'
安装与启用¶
包名说明:npm 上的
dsh-skill-manager(maintainer:gohana)是无关第三方包。本项目包名为dsh-skill-manager-ytxue,安装请以 GitHub 仓库为准。
方式 A:git clone + dsh plugin 命令(推荐)¶
git clone https://github.com/YTxue/dsh-skill-manager-ytxue.git
dsh plugin --profile web add /path/to/dsh-skill-manager-ytxue
随后在 $DSH_HOME/profiles/web/cordis.patch.yml 追加挂载条目,重启 DSH 生效。
方式 B:git clone + 手动挂载¶
git clone https://github.com/YTxue/dsh-skill-manager-ytxue.git
- 将目录放入
$DSH_HOME/profiles/web/node_modules/dsh-skill-manager-ytxue/。 - 在
$DSH_HOME/profiles/web/cordis.patch.yml追加:
- insert:
- id: skill-manager-ytxue
name: 'dsh-skill-manager-ytxue'
- 验证配置树:
dsh --profile web --dump-config
输出中应出现 skill-manager-ytxue 条目。
- 重启 DSH,打开设置 → Skill 管理。
也可使用远程地址安装(不经过 npm 同名包):
dsh plugin --profile web add git+https://github.com/YTxue/dsh-skill-manager-ytxue
要求 Node.js >= 20。
典型用法¶
从本机文件夹批量导入¶
- 打开 DSH Web 界面,进入设置 → Skill 管理。
- 在导入区域点击文件夹图标或手动输入路径,指向包含多个 Skill 的目录。
- 若出现重名预检弹窗,按需选择跳过、覆盖或取消。
- 选择目标为启用目录或池目录,确认导入。
- 点击「一键检查」,处理红点条目的规范问题。
在池与启用目录间切换¶
在列表中找到目标 Skill,使用启用/停用操作在 skill-pool 与 skills 之间移动。bundle 与 flat 条目均按整体移动。
通过 HTTP API 调用¶
插件在 loopback 提供同源 API,可供脚本或自动化集成:
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/skill-manager-ytxue/state |
双目录状态快照 |
| POST | /api/skill-manager-ytxue/check |
检查未检查项并修复 |
| POST | /api/skill-manager-ytxue/enable |
body {name} |
| POST | /api/skill-manager-ytxue/disable |
body {name} |
| GET | /api/skill-manager-ytxue/list-dir |
目录浏览,?path= 缺省为主目录 |
| POST | /api/skill-manager-ytxue/import |
body {source, target?, conflict?, dryRun?} |
运行单元测试¶
仓库提供 core 层测试(51 项):
node test/core-test.mjs
适用场景与注意¶
适合谁
- 需要在 DSH 中集中管理大量 Skill、频繁在池与启用目录间切换的开发者。
- 从外部仓库或本地文件夹批量导入 Skill,并希望导入前处理重名冲突。
- 希望一键按 DSH 规范检查 frontmatter、目录命名和布尔字段,减少手改成本。
注意事项
- 插件以当前 DSH 进程权限运行,会读写
~/.dsh/skills/、~/.dsh/skill-pool/及检查状态文件。安装前应阅读源码并确认 MIT 许可证。 - 作者实测环境为 Windows(PowerShell 5.1 + Node 20+);macOS / Linux 可按 README 安装,遇问题可在 GitHub 提 Issue。
- 若曾用
dsh plugin add安装后删除目录,启动可能报cannot resolve profile bundle "dsh-skill-manager-ytxue",需运行dsh plugin --profile web remove dsh-skill-manager-ytxue或手动清理package.json中的 bundles 条目。 - 面板仅请求本机
/api/skill-manager-ytxue/*,无外部网络请求;host 端为零第三方依赖。
结尾¶
dsh-skill-manager-ytxue 把 Skill 的列表、导入、启停和规范修复收进 DSH 设置侧栏,用状态驱动的检查减少重复劳动,用重名预检降低批量导入风险。若你正在维护较多 Skill 或需要规整不规范的 frontmatter,可以按上文步骤安装试用。
- SkillHub 目录页:https://www.skillhub.cn/plugins/YTxue/dsh-skill-manager-ytxue
- GitHub 仓库:https://github.com/YTxue/dsh-skill-manager-ytxue