dsh-skill-desc-zh:DSH 技能与斜杠命令描述中文化

前言

在 DeepSeek Harness(DSH)里选技能或斜杠命令时,菜单里看到的是各条目的 description。内置 office 技能、agent-preset 技能以及 /acp 等命令的说明多为英文,中文用户需要对照文档或凭记忆操作。手动改每个技能的 frontmatter 或 fork 官方 bundle 成本高,且宿主升级后容易与上游冲突。

下面介绍的 dsh-skill-desc-zh(包名 dsh-skill-desc-zh@0.6.0,维护者 zzzzyppp)只做一件事:把目标技能与命令的列表描述翻译成中文,执行逻辑与正文不变;需要时一键恢复英文。v0.6.0 起还在设置里提供 Better Skill 单入口,集中管理描述中文化、第三方插件更新与用户技能 CRUD。

这是什么

  • 定位:DSH 客户端插件(dsh.client.platform="web"),零额外 npm 依赖。
  • 宿主要求:DSH ≥ 0.2.1-rc.2(desktop profile)。
  • 对外接口:单个工具 skill_desc_zh,通过 action 区分 8 种操作;设置页 id 为 skill-desc-zh,左侧导航为 Better Skill(order 16)。

设计原则是 只改描述、不改正文:global 层 office 技能用 provider 透传 content;preset 技能在项目 .dsh/skills/ 写带标记的影子目录,只改 description;斜杠命令在 agent scope 注册描述影子,handler 仍委托原实现。

核心功能

描述中文化

安装并完成 bootstrap 后,插件会捕获 12 个目标技能 + 3 条命令(配置含 agent-teams 时还会纳入动态 agent-teams-*),批量调用宿主 LLM 翻译;失败时回落随包词典 lib/dictionary.zh.json。

层 代表技能 机制 是否写磁盘
global 7 个 office + 透传类处理 global skill provider(rank 50) 否
preset 4 个 agent-preset 项目内影子目录 是(仅 .dsh/skills/)
runtime browser-skill agent 层 provider 覆盖描述 否
命令 /acp、/acp-cache、/agent-teams agent 菜单中文,global 视角仍英文 否

指纹未变时 apply 复用缓存,不重复调模型。restore 下架 provider、命令影子注销,preset 影子经 safe-delete-trash 进废纸篓;再 apply 即可恢复中文。

Better Skill 设置页(v0.6.0)

设置 → Better Skill 内三个 Tab,共用同一套 controller 与 HTTP 后端:

  1. 描述中文化:状态、覆盖清单、自检、应用、还原、刷新、重译。
  2. 插件管理(v0.4.0):列出 profile 已装第三方插件,检查 npm 最新版并一键更新;官方 bundle 与 link: 本地插件不会被更新。
  3. 技能管理(v0.5.0):对 $HOME/.dsh/skills 与 <project>/.dsh/skills 下可写技能做创建、编辑、禁用、删除、恢复;内置技能只读;删除只进回收站。

升级与安全边界

宿主版本变化时:先还原旧影子、清空旧译文,再重译;翻译失败保持英文,不写半成品。代码中删除只走 ~/.dsh/skills/safe-delete-trash/trash.mjs,无直接 rm。只有带 .skill-desc-zh.json 标记的影子目录才会被管理。

状态与日志:~/.dsh/.skill-desc-zh/state.json(v3,旧版自动迁移)、events.ndjson。

安装与启用

DSH desktop profile 由 Electron 应用独占管理,不要用 CLI dsh plugin --profile desktop add;应使用应用内 plugin_manager。

1、安装前预检

按 ~/.dsh/AGENTS.md,安装任何插件前先跑兼容性检查:

node ~/dsh-plugins/skill-desc-zh/scripts/preflight.mjs

或等价命令:

node ~/.dsh/skills/dsh-plugin-preinstall-audit/audit.mjs --profile desktop \
  ~/dsh-plugins/skill-desc-zh

退出码 0 可继续,2 有警告需确认,1 有阻塞项则不应安装。本地目录包在 audit 中可能显示「未验证」,需如实评估后再装。

2、应用内安装 bundle

本地源码需传绝对路径,宿主会记为 link: 依赖:

plugin_manager install_bundle
  target: ~/dsh-plugins/skill-desc-zh

安装后确认:

plugin_manager list_plugins
→ {"entryId":"include:skill-desc-zh","enabled":true,"fiberPhase":"active"}

cordis_inspect_query(platform=host, provider=Tool, method=listTools)
→ 应看到 skill_desc_zh

Better Skill 入口与三个 Tab 需重启 DSH 后才会出现;若 link: 源码已升级,运行中进程仍可能是旧代码,同样需重启。技能目录快照有时要到下一个会话才刷新。

3、常用配置

在 cordis.patch.yml 的 config 中(节选):

键 默认 说明
enabled true 总开关
engine "auto" auto / llm / dictionary
translatePreset true 是否处理 4 个 agent-preset
restoreOnQuit false 退出时是否自动还原英文
targets.commands ["acp","acp-cache","agent-teams"] 设为 [] 可关闭命令中文化

llm.provider / llm.model 留空时使用当前会话默认模型;llm.timeoutMs 默认 30000。

典型用法

通过工具 skill_desc_zh

所有操作同一工具,action 必填;与 Better Skill 各 Tab 按钮语义一致。

{ "action": "status" }
{ "action": "apply" }
{ "action": "restore", "dryRun": true }
{ "action": "restore" }
{ "action": "retranslate", "names": ["office-render"] }
{ "action": "refresh" }
{ "action": "doctor" }
{ "action": "plugins" }
{ "action": "skills" }

可选参数:names(限定技能)、projectRoot(默认向上找含 .git 的根)、dryRun(restore 预演)、force(强制重译)。

status 只读,返回各技能机制、指纹、影子路径与命令层状态。日常启用中文执行 apply;要恢复菜单英文执行 restore。怀疑译文过时可 retranslate;环境异常先跑 doctor。

通过设置页

重启后在 Better Skill 对应 Tab 点「应用」「还原」等即可,无需记 JSON。插件管理 Tab 的更新走 HTTP 后端,与 plugins action 列表数据一致;技能管理 Tab 对应 skills action 的 CRUD 能力。

适用场景与注意

适合:长期在 desktop 使用 DSH、希望技能列表与 agent 内斜杠命令说明为中文,又希望随时还原英文、不在运行时改技能正文的用户;需要在同一设置页维护 $HOME/.dsh/skills 与项目技能、或检查第三方插件 npm 更新的场景。

注意:

  1. 插件以当前 DSH 进程权限运行,安装前应阅读源码与 MIT 许可证,确认 link: 路径可信。
  2. preset 影子会写入项目 .dsh/skills/,若使用版本控制,需自行决定是否忽略或提交。
  3. projectAllowlist 默认 [],$HOME 下项目默认可写影子;其他路径需在配置中显式允许。
  4. 社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系;星标与版本以仓库与安装时 bundle 为准。

结尾

dsh-skill-desc-zh 把 DSH 内置技能与常用斜杠命令的菜单描述做成可逆的中文化,并在 Better Skill 里补上插件与技能管理,减少「只看英文 description 操作」的摩擦。进一步了解实现细节与验证记录见仓库 README。

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

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

小夜