DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Plugin Workspace Skill — DeepSeek Harness 插件(DSH Plugin)
← Plugins
P

dsh-plugin-workspace-skill

Plugin Workspace Skill

DSH Cordis 插件:skill-create 编写指南,以及针对 .dsh/skills 的工作区级技能隔离。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:Sparrived/dsh-plugin-workspace-skill#daad6c6787a3aa51cd008cfa0a2a7bc0de9fdcaf
README兼容性版本

兼容性与来源证明

Plugin Workspace Skill 以 dsh-plugin-workspace-skill 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/8/22

版本

0.1.0stable
2026/8/22

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/8/22
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

相关插件

继续浏览 developer-tools 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话Sdk App@deepseek-ai/dsh-sdk-appdsh SDK 配置包:基于 dsh-base 提供 stdio JSON-RPC 服务和进程生命周期管理Subagent Codex@deepseek-ai/dsh-subagent-codex基于官方 app-server 协议的一次性 Codex 子代理提供程序

README

dsh-plugin-workspace-skill

中文 | English

一个 DSH Cordis 插件,提供两个能力:

  1. skill-create 技能 —— 指导 Agent 在当前工作区创建、编写、审查和验证可复用 Skill(SKILL.md 格式规范、正文结构、发布前验证清单)。设计参考了 OpenAI Codex 的 skill-creator 与 Skills 文档,并结合 DSH 的技能注册机制做了适配。
  2. 工作区级 Skill 隔离 —— 一个 ctx.skills provider,把 <workspace>/.dsh/skills/ 目录作为"仅当前工作区可见"的技能来源。一个项目里的私有 Skill 不会泄漏到其他工作区,还能按名字覆盖全局技能。

工作区隔离如何工作

每次技能发现时,provider 会:

  1. 用调用方的 cwd 在 workspaceRegistry 中找出包含它的最深注册工作区(通过 fs.contains 规范比较,兼容 Windows 路径分隔符)。
  2. 扫描该工作区根目录下的 .dsh/skills/,支持两种布局:
    • .dsh/skills/<skill-name>/SKILL.md —— 目录包,可携带 references/、scripts/、assets/ 等资源;
    • .dsh/skills/<skill-name>.md —— 单文件扁平布局。
  3. 解析 YAML frontmatter(name / description / whenToUse / disable-model-invocation / user-invocable),以 rank: 700 注册候选。

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

安装

方式一:dsh plugin add(官方流程,推荐)

本包在 package.json 里声明了 dsh.bundle.patch: ./cordis.patch.yml(补丁清单就是下面的插件行),因此能被 dsh 识别为一个 profile 层:

# 从 npm 安装(发布后)
dsh plugin --profile web add dsh-plugin-workspace-skill

# 或直接从 GitHub 安装
dsh plugin --profile web add github:Sparrived/dsh-plugin-workspace-skill

# 或从本地 checkout 安装(相对路径 spec 会被锚定为绝对路径)
dsh plugin --profile web add D:\Code\dsh-plugin-workspace-skill

dsh plugin 会在 profile 目录($DSH_HOME/profiles/<name>)内转发 pnpm 完成安装,并把声明了 dsh.bundle 的依赖自动写入该 profile 的 dsh.profile.bundles 层列表。本包是纯 ESM、无构建步骤,无需 pnpm allowBuilds 放行。启动后可用 dsh --profile web --dump-config 确认 workspace-skill 行已进入组合树。

方式二:手动加插件行

不经过 bundle 机制时,直接在宿主 cordis.yml 或自定义 agent preset 的组合里写同一行:

- id: workspace-skill
  name: dsh-plugin-workspace-skill
  # 可选配置:
  # config:
  #   providerName: workspace-isolated
  #   rootDir: .dsh/skills
  #   source: workspace
  #   rank: 700
  #   registerGuideSkill: true
配置项默认值说明
providerNameworkspace-isolatedprovider 名称
rootDir.dsh/skills相对工作区根目录的技能目录
sourceworkspace候选的 source 标记
rank700排序优先级(越大越优先)
registerGuideSkilltrue是否同时注册 skill-create 指导技能

插件声明 inject: ['skills', 'fs', 'workspaceRegistry'];停止或卸载时,provider 与运行时技能随 Cordis Fiber 一并撤销。

方式三:动态插件(临时试用)

在 DSH 会话里用动态 Cordis 插件加载 lib/index.js 的等价代码(cordis_define → cordis_run),无需改任何组合文件。注意动态插件只存活于当前进程。

方式四:只要指导技能本身

不需要隔离 provider 的话,直接把 skills/skill-create/SKILL.md 复制到用户级 ~/.dsh/skills/skill-create/SKILL.md 或某个项目的 .dsh/skills/skill-create/,DSH 内置文件系统 provider 即可发现它。

编写一个工作区 Skill

<workspace>/
└── .dsh/
    └── skills/
        └── api-review/
            ├── SKILL.md
            ├── references/
            │   └── checklist.md
            └── scripts/
                └── check-breaking.sh
---
name: api-review
description: Review API changes for compatibility, security, and test coverage.
whenToUse: Use when reviewing a public API or endpoint change.
---

# API Review

按下面的步骤执行……

要点:

  • name 必须是小写 kebab-case,并与目录名一致;
  • description 写清能力与适用场景;
  • 资源放同目录下,正文中用相对路径引用。

验证

  1. 在目标工作区内发起会话,确认 skill-create 出现在技能目录中;
  2. 创建 .dsh/skills/hello-isolation/SKILL.md,确认它只在当前工作区可见,换到另一个工作区的会话后不可见;
  3. 在用户级目录放置同名技能,确认工作区版本胜出;
  4. 停用插件后确认以上技能全部消失(无残留副作用)。

English

A DSH Cordis plugin with two capabilities:

  1. The skill-create skill — guides an agent through creating, writing, reviewing, and validating reusable skills in the current workspace (SKILL.md format rules, body structure, pre-publish checklist). Inspired by OpenAI Codex's skill-creator and its Skills docs, adapted to DSH's skill registration mechanism.
  2. Workspace-level skill isolation — a ctx.skills provider that treats <workspace>/.dsh/skills/ as a skill source visible only to sessions inside that workspace. A project's private skills never leak into other workspaces, and can override global skills by name.

How workspace isolation works

On every skill discovery, the provider:

  1. Finds the deepest registered workspace containing the caller's cwd in workspaceRegistry (canonical comparison via fs.contains, tolerant of Windows path separators).
  2. Scans .dsh/skills/ under that workspace root, supporting two layouts:
    • .dsh/skills/<skill-name>/SKILL.md — directory bundle with optional references/, scripts/, assets/;
    • .dsh/skills/<skill-name>.md — flat single-file layout.
  3. Parses the YAML frontmatter (name / description / whenToUse / disable-model-invocation / user-invocable) and registers candidates with rank: 700.

Precedence: workspace skills > user-level and bundled sources. Same-named workspace skills win, so a project can safely override global ones; when cwd belongs to no registered workspace this provider contributes nothing.

Install

Option 1: dsh plugin add (official flow, recommended)

The package declares dsh.bundle.patch: ./cordis.patch.yml in package.json (the patch list is the plugin row below), so dsh recognizes it as a profile layer:

# from npm (once published)
dsh plugin --profile web add dsh-plugin-workspace-skill

# or straight from GitHub
dsh plugin --profile web add github:Sparrived/dsh-plugin-workspace-skill

# or from a local checkout (relative path specs are anchored to absolute paths)
dsh plugin --profile web add D:\Code\dsh-plugin-workspace-skill

dsh plugin forwards to pnpm inside the profile directory ($DSH_HOME/profiles/<name>), then automatically adds any dependency declaring dsh.bundle to that profile's dsh.profile.bundles layer list. This package is pure ESM with no build step, so no pnpm allowBuilds approval is needed. After booting, verify the workspace-skill row landed in the composed tree with dsh --profile web --dump-config.

Option 2: add the plugin row manually

Without the bundle mechanism, write the same row directly in a host cordis.yml or a custom agent preset composition:

- id: workspace-skill
  name: dsh-plugin-workspace-skill
  # Optional configuration:
  # config:
  #   providerName: workspace-isolated
  #   rootDir: .dsh/skills
  #   source: workspace
  #   rank: 700
  #   registerGuideSkill: true
OptionDefaultDescription
providerNameworkspace-isolatedProvider name
rootDir.dsh/skillsSkill directory relative to the workspace root
sourceworkspaceSource tag on candidates
rank700Sort precedence (higher wins)
registerGuideSkilltrueAlso register the skill-create guide skill

The plugin declares inject: ['skills', 'fs', 'workspaceRegistry']; on stop or uninstall the provider and the runtime skill unwind with the Cordis Fiber.

Option 3: dynamic plugin (quick trial)

Load equivalent code via a dynamic Cordis plugin inside a DSH session (cordis_define → cordis_run) without touching any composition file. Note dynamic plugins only live for the current process.

Option 4: just the guide skill

If you don't need the isolation provider, copy skills/skill-create/SKILL.md into user-level ~/.dsh/skills/skill-create/SKILL.md or a project's .dsh/skills/skill-create/ — DSH's built-in filesystem provider discovers it.

Authoring a workspace skill

<workspace>/
└── .dsh/
    └── skills/
        └── api-review/
            ├── SKILL.md
            ├── references/
            │   └── checklist.md
            └── scripts/
                └── check-breaking.sh
---
name: api-review
description: Review API changes for compatibility, security, and test coverage.
whenToUse: Use when reviewing a public API or endpoint change.
---

# API Review

Follow the steps below...

Key points:

  • name must be lowercase kebab-case and match the directory name;
  • description states the capability and when it applies;
  • keep resources next to SKILL.md and reference them with relative paths.

Verify

  1. Start a session inside the target workspace and confirm skill-create appears in the skill catalog;
  2. Create .dsh/skills/hello-isolation/SKILL.md, confirm it is visible only in this workspace and invisible from another workspace's session;
  3. Place a same-named skill at user level and confirm the workspace version wins;
  4. Stop the plugin and confirm all of the above disappear (no residual side effects).

License

MIT