前言¶
DSH(DeepSeek Harness)采用 Cordis 插件架构。当团队需要在不同项目间复用技能时,通常会遇到隔离困难或技能管理混乱的问题。dsh-plugin-workspace-skill 解决了这两点:一是提供 Skill 编写指导,二是实现工作区级技能隔离。
核心能力¶
该插件提供两个核心能力:
- skill-create 技能:指导 Agent 在当前工作区创建、编写、审查和验证可复用 Skill。
- 工作区级 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 实现。每次技能发现时,流程如下:
- 定位工作区:用调用方的
cwd在workspaceRegistry中找出包含它的最深注册工作区。 - 扫描技能目录:扫描该工作区根目录下的
.dsh/skills/。- 支持目录包布局:
.dsh/skills/<skill-name>/SKILL.md(可携带references/、scripts/等资源)。 - 支持单文件布局:
.dsh/skills/<skill-name>.md。
- 支持目录包布局:
- 注册候选:解析 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 的开发流程。