
给 dsh-skill-mcp-panel 的技能卡片加中文说明浮层,中英对照,9 个技能已收录。
概览
展开技能卡片时,最上方显示中文速览 + 分类标签 + 要点列表; 面板原本那行英文原文自动折起,点「原文」再展开。 1. (如 可视化 · 图表) 2. —— 这个技能干什么 3. —— 什么时候该用它、有什么坑 4. 5. —— 原文不删,默认折起,点一下展开 - 面板下一行本来就写着原文,浮层不再抄一遍。 - work-report-writer 这类技能的描述本来就是中文, 再叠一层中文只是把同一句话摆两遍,装饰脚本会按中文占比自动跳过。 - 不占位置、不显示「暂无说明」。 前置:已经装了 dsh-skill-mcp-panel。插件启动时会去找它的 lib/client.js; 如果还没装(或没放在能找到的位置),日志里会打印一行提示,中文块不生效,但 。 1. 把插件本体复制进一个 desktop generation 目录 (profiles.generations\live\dsh-skill-zh-overlay+1.0.0+local0000000) 2. 在 profile 的 package.json 里登记四处,让它出现在**里: - dependencies —— 市场的 readInstalled() 读这里 - pnpm.overrides —— link: 指向 generation - dsh.profile.bundles[] —— - dsh.desktop.generationProjection —— desktop 的版本投影 3. 同步 .generations\desired.json 用 dsh plugin add 装的时候就**跑 install.ps1 —— 这是 dsh plugin add 的包,loader 会把它登记进 bundles。install.ps1 是「从工作区源码装」的路径。 dsh-skill-mcp-panel 的技能卡片直接透传各 SKILL.md 里的 description, 而这些描述几乎全是英文。像 hindsight-coding-agent 那种一段话讲完的长描述, 英文读起来慢,读完还不一定记住「这东西什么时候会自己跳出来」。 面板本身**——它只负责把 frontmatter 原样贴出来。
README
以下为原文 README 节选,完整内容请查看原文。
效果
技能卡片展开后,中文说明渲染在原文上方:
从上到下依次是:
- 「中文说明」徽章 + 分类标签(如
可视化 · 图表) - 一句话中文简介 —— 这个技能干什么
- 要点列表 —— 什么时候该用它、有什么坑
- 一条分隔线
- 来源 + 「原文」小按钮 + 「原文已折叠」提示 —— 原文不删,默认折起,点一下展开
四条原则:
- 不重复英文。 面板下一行本来就写着原文,浮层不再抄一遍。
- 原文是中文的不加浮层。
work-report-writer这类技能的描述本来就是中文, 再叠一层中文只是把同一句话摆两遍,装饰脚本会按中文占比自动跳过。 - 没收录的不占位置。 不会塞一行「暂无中文说明」的占位框糊弄过去 —— 要么真的生成一条,要么什么都不加。
- 没收录但需要中文时,现生成。 见下一节。
中文说明从哪来
一个技能要显示中文,按这个顺序取,取到就停:
| 顺序 | 来源 | 谁写的 |
|---|---|---|
| 1 | data/skill-zh-map.json |
人工手写,校对过,优先最高 |
| 2 | data/auto-zh.json |
上一次自动生成后落盘的缓存 |
| 3 | 本次进程内已生成的 | 缓存 |
| 4 | 现场调用模型生成 | 宿主,用你当前的默认模型 |
第 4 步的触发方式很朴素:你点开一张没有中文的卡片,装饰脚本先放一个
「正在生成中文说明…」的占位块,同时把这条丢进请求队列,攒成一批(最多 8 条)
POST 到 /skill-zh-overlay/api/explain。宿主拿到后调用默认模型,要求它输出
{zh, tag, bullets} 三个字段的 JSON,写进 data/auto-zh.json,再把结果并回前端
的那张表 —— 占位块当场换成真正的中文,不用刷新页面。
实测一次生成 约 2 秒,命中缓存后 约 0.1 秒。
缓存怎么失效。 每条缓存都记着当时英文原文的 sha1 前 16 位;技能描述的英文一改
(比如面板作者升级了 SKILL.md),指纹对不上,旧译文自动作废,下次点开重新生成。
不会把过期的中文贴到新内容上。
手写永远压过自动。 模型不可能比校对过的措辞更准,所以 skill-zh-map.json 里有
条目就用条目,自动生成的同名词条会被忽略。想让某个技能强制不加浮层,就在手写表里
写 "noOverlay": true。
安装
dsh plugin add dsh-skill-zh-overlay
装完重启一次 dsh 即可,不用再跑任何脚本 —— 装饰脚本由插件自己在启动时写好。
前置:已经装了 dsh-skill-mcp-panel。插件启动时会去找它的 lib/client.js;
如果还没装(或没放在能找到的位置),日志里会打印一行提示,中文块不生效,但
不影响 dsh 和其他插件启动。
从源码装(或想装在别的 profile):
git clone https://github.com/blacktaoK/dsh-skill-zh-overlay.git
cd dsh-skill-zh-overlay
pwsh -NoProfile -File install.ps1
install.ps1 做的事:
- 把插件本体复制进一个 desktop generation 目录
(
profiles\.generations\live\dsh-skill-zh-overlay+1.0.0+local0000000) - 在 profile 的
package.json里登记四处,让它出现在插件市场的「已安装」列表里:dependencies—— 市场的readInstalled()读这里pnpm.overrides——link:指向 generationdsh.profile.bundles[]—— 在列表里 = 启用,移除 = 停用dsh.desktop.generationProjection—— desktop 的版本投影
- 同步
.generations\desired.json
其他命令:
pwsh -NoProfile -File install.ps1 -Check # 看当前装了没有
pwsh -NoProfile -File install.ps1 -Revert # 完整还原(含撤掉前端补丁)
用
dsh plugin add装的时候就不用跑install.ps1—— 这是dsh plugin add
推荐工具
换一个关键词,或者移除筛选条件。
安装
npx skillfish add blacktaok/dsh-skill-zh-overlay