dsh-plugin-workspace-skill

前言

DSH(DeepSeek Harness)采用 Cordis 插件架构。当团队需要在不同项目间复用技能时,通常会遇到隔离困难或技能管理混乱的问题。dsh-plugin-workspace-skill 解决了这两点:一是提供 Skill 编写指导,二是实现工作区级技能隔离。

核心能力

该插件提供两个核心能力:

  1. skill-create 技能:指导 Agent 在当前工作区创建、编写、审查和验证可复用 Skill。
  2. 工作区级 Skill 隔离:将 <workspace>/.dsh/skills/ 目录作为仅当前工作区可见的技能来源。

安装与启用

官方安装命令

使用 DSH 的官方插件管理流程安装:

dsh plugin --profile web add dsh-plugin-workspace-skill

也可以直接从 GitHub 安装:

dsh plugin --profile web add github:Sparrived/dsh-plugin-workspace-skill

手动配置

如果不使用 bundle 机制,可以直接在宿主的 cordis.yml 或自定义 agent preset 的组合里添加:

- id: workspace-skill
  name: dsh-plugin-workspace-skill

工作区隔离机制

插件通过一个 ctx.skills provider 实现。每次技能发现时,流程如下:

  1. 定位工作区:用调用方的 cwd 在 workspaceRegistry 中找出包含它的最深注册工作区。
  2. 扫描技能目录:扫描该工作区根目录下的 .dsh/skills/。
    • 支持目录包布局:.dsh/skills/<skill-name>/SKILL.md(可携带 references/、scripts/ 等资源)。
    • 支持单文件布局:.dsh/skills/<skill-name>.md。
  3. 注册候选:解析 YAML frontmatter 并以 rank: 700 注册。

优先级规则:工作区技能 > 用户级与内置来源。同名时工作区版本胜出,项目可以安全地覆盖全局技能。当 cwd 不属于任何注册工作区时,此 provider 不产生任何候选。

Skill 编写规范

目录结构

在工作区的 .dsh/skills/ 目录下创建技能:

<workspace>/
└── .dsh/
    └── skills/
        └── <skill-name>/
            ├── SKILL.md
            ├── references/
            └── scripts/

YAML Frontmatter

在 SKILL.md 顶部编写 YAML frontmatter:

---
name: <skill-name>
description: ...
whenToUse: ...
disable-model-invocation: false
user-invocable: false
---

总结

该插件为 DSH 提供了工作区级别的技能管理能力,配合 skill-create 技能,可以规范化本地 Skill 的开发流程。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜