dsh-skill-studio:在 DSH 侧边栏管理 Codex 兼容的 Skill

前言

DeepSeek Harness(DSH)把能力拆成插件扩展。若你已经在 Codex 或 .agents 目录里维护 SKILL.md 技能包,在 DSH 里往往还要靠手工改文件、或在对话里记路径,缺少一个和宿主对齐的浏览与编辑入口。PopCapEA 维护的 dsh-skill-studio(仓库 PopCapEA/dsh-skill-studio)在 DSH 左侧栏提供 Skills 页面,读写与 Codex 相同的 plain SKILL.md 目录结构,并把 Codex 用户/项目技能桥接进 DSH 的技能注册表,使同一套技能可在 Codex、DSH 与共享 .agents 目录间复用。

这是什么

Skill Studio for DeepSeek Harness 是一套与 Codex 兼容的技能系统插件,简介为「Enable DSH to support Skills」,在 SkillHub 分类为工作流。它不改变技能文件格式,而是提供侧边栏管理界面、多作用域扫描、对话内 $skill-name 注入,以及按表面启用/禁用模型或用户调用。

维护者:PopCapEA。当前 GitHub 星标为 0;发布包 dsh-skill-studio-codex 版本 1.0.0,许可证 MIT,宿主侧要求 Node >= 22。

核心功能

侧边栏 Skills 页面

安装并刷新页面后,左侧面板会出现 Skills 图标。在该页可以浏览所有 Codex、DSH 与 shared 技能,搜索、阅读说明,并查看当前生效的是哪一份副本(同名冲突时会标记 Shadowed 并同时展示两份,避免陈旧副本被隐藏)。

创建、编辑与回收

支持创建、编辑、复制、删除与从回收站恢复。写入格式为带 YAML frontmatter 的 Codex SKILL.md;删除会将技能包移入同作用域下的 .trash/,并附带 sidecar 记录,便于 Trash → Restore,无需独立数据库。

按表面启用或禁用

  • disable-model-invocation: true:从模型目录与 skill 工具中隐藏该技能。
  • user-invocable: false:禁止用户通过 $name / /name 直接调用。

两者默认均为允许。

作用域与优先级

插件扫描并管理以下位置(节选):

作用域 路径 可写
Codex 用户 ~/.codex/skills 是(桥接进 DSH)
Codex 项目 <project>/.codex/skills 是
DSH 用户 ~/.dsh/skills 是
DSH 项目 <project>/.dsh/skills 是
Shared Agent ~/.agents/skills、<project>/.agents/skills 是(存在时可见可编辑)
Codex 内置 ~/.codex/skills/.system 否(只读,可复制到可写作用域)

环境变量:DSH_CODEX_HOME 或 CODEX_HOME 改变 Codex 根目录;DSH_HOME、DSH_AGENTS_HOME 改变 DSH 与 shared 根目录。Codex home 下在 <home>/skills 扫描。

同名时:项目副本优先于用户副本;DSH 副本优先于 Codex 副本。

对话中调用

与 Codex 一致,可在输入中使用 $skill-name 将完整 <skill_content> 注入当前轮次;DSH 原有的 /skill-name 形式仍可用。模型侧采用渐进披露:默认只收到名称与描述,完整说明通过 skill 工具或 $name 按需加载。模型也可通过既有 skill 工具加载任意允许模型调用的技能。

技能文件格式

推荐目录结构:<name>/SKILL.md;也可在作用域根下使用扁平的 <name>.md。frontmatter 必填 name(kebab-case)与 description;可选 whenToUse 等。同目录可放 references/、scripts/、assets/、agents/openai.yaml、config.toml、icon.svg 等。存在 Codex 展示元数据(如 agents/openai.yaml 的 interface、policy.allow_implicit_invocation,或 legacy config.toml [interface] 字段)时,界面会展示。

示例:

---
name: release-checklist
description: Use when preparing and verifying a production release.
whenToUse: Before tagging a release.
---

# Release checklist

## Workflow

1. Run the project's own checks.
2. Inspect the final diff.
3. Report the result and remaining risks.

安装与启用

插件以当前 DSH 进程权限运行;安装前建议阅读仓库源码与 MIT 许可证。SkillHub 目录页:https://www.skillhub.cn/plugins/PopCapEA/dsh-skill-studio(社区站点,与 DeepSeek / 幻方无官方从属关系)。

从 GitHub 安装:

dsh plugin --profile <profile> add github:PopCapEA/dsh-skill-studio

或使用 release 压缩包(README 给出的 v1.0.0 地址):

dsh plugin --profile <profile> add "https://github.com/PopCapEA/dsh-skill-studio/releases/download/v1.0.0/dsh-skill-studio-codex-1.0.0.tgz"

npm 包名发布后也可:

dsh plugin --profile <profile> add dsh-skill-studio-codex

安装完成后刷新页面,左侧应出现 Skills 入口。

典型用法

在对话中附带技能名与用户意图,例如:

$release-checklist verify the 2.4 release and list anything blocking it

技能说明会作为 <skill_content> 进入当前步骤;目录会指示模型按该说明执行,而无需重复加载。

在 Skills 页面可新建技能、编辑 frontmatter 与正文、复制到其他作用域,或对不需要的副本执行删除(可再从 .trash 恢复)。若需在 Codex 外单独禁用模型自动选用,在 SKILL.md 中设置 disable-model-invocation: true 即可。

适用场景与限制

适合谁:已在 Codex 或 .agents 中维护 SKILL.md、希望在 DSH 里用同一套文件做可视化管理与对话内 $name 调用的开发者;需要把 ~/.codex/skills 与项目 .codex/skills 桥接进 DSH 而不手工拷贝的场景。

实现要点(来自 README design notes):宿主为纯 Node ESM;对技能目录做 debounced 文件监视,在外部编辑器或 shell 中的修改会在下一步模型步骤前反映到目录。发布版使用独立的 Loader、侧边栏 panel id 与 API 前缀,可与本地 @local/dsh-skill-studio 构建共存。

已知限制:

  • 编辑会重写受管 frontmatter 键,这些键上的注释不会保留;未知键与 metadata: 块会保留。
  • 不支持原地重命名技能身份;应复制后删除旧副本。
  • 符号链接的技能包可见但只读。
  • 管理页使用进程默认 workspace 管理项目作用域;与会话 cwd 不同的 workspace 仍可能被模型发现,但页面不以该 cwd 为主。

结尾

dsh-skill-studio 把 Codex 兼容的 SKILL.md 工作流接到 DSH 侧边栏:多作用域统一浏览、可恢复删除、模型与用户双通道调用,并与现有 Codex 技能目录桥接。进一步了解可查看 SkillHub 目录页 与 GitHub 仓库 README。

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

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

小夜