Back to home@Wuxie233

dsh-plugin-skill-router

No description

Stars
0
Language
JavaScript
Created
Aug 14, 2026
Updated
Aug 22, 2026

Introduction

dsh-plugin-skill-router

二级 skill 路由插件:把模型可见的会话 skill 目录(catalog)过滤为 router + 独立 skill,路由子 skill 隐藏但仍可按名加载。catalog 文本从 全量(~108 条)降到 ~42 条,直接节省每会话开头的提示词 token 和注意力。

行为

扫描 ~/.dsh/skills/(可配 skillRoot / extraRoots)下每个 skill 的 SKILL.md frontmatter:

声明目录可见性
exposure: root✅ 显示(router / 直接可用的专家)
exposure: explicit❌ 隐藏(/name 手势或 router 正文点名加载)
routers: [name, ...](无 exposure)❌ 隐藏(router 路由,skill 工具按名可加载)
两者都没有✅ 显示(独立 skill)

隐藏发生时目录末尾追加一行提示,告知模型还有未列出的 skill 可通过 router 或精确名加载。durable source.entries 保持全量不动—— tool-skill 的 digest 重发判定基于 entries 而非渲染文本,所以本插件永不 触发目录重发,KV cache 前缀稳定。

安装 / 更新

./install.sh          # 部署到 ~/.dsh/profiles/node_modules/@wuxie/dsh-skill-router
# 然后重启 dsh web(host 半插件需要重启生效)

挂载行(已写入 ~/.dsh/profiles/web/cordis.patch.yml):

- insert:
    - id: skill-router
      name: '@wuxie/dsh-skill-router'

dsh 升级或 profile heal 之后重新跑一次 ./install.sh

配置(可选)

- insert:
    - id: skill-router
      name: '@wuxie/dsh-skill-router'
      config:
        skillRoot: ~/.dsh/skills       # 默认 ~/.dsh/skills
        extraRoots: []                 # 额外扫描的 skill 根目录

已知限制

  • frontmatter 解析是 exposure / routers 的定向子集(支持 flow 与 block 序列、>-/|- 块标量跳行),不解析其他字段;非法值按未声明 处理(该 skill 保持可见),不会报错。
  • 过滤只作用于模型可见文本;UI 侧(slash 列表等)仍显示全部 skill, 这是刻意的:显式调用应能触达所有 skill。
  • 隐藏集合扫描有 10s TTL 缓存,新增/修改 frontmatter 后最多 10 秒生效。