deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:VDERR/echocat-skill-panel-3.0
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
v4.0.1 · DSH Desktop Beta 的 cordis 插件:统计每轮对话用到了哪些 skill,并让你在应用里直接装卸、更新它们。
判定不依赖模型自觉 —— 插件从会话事件流推导本轮调了哪些 skill(模型自动、你手动 /name、或一个都没用),模型忘了说也照样报。

三个界面共用一份数据:
| 位置 | 说明 |
|---|---|
| 输入框正上方横栏 | 一行结论,点开就地展开完整报告。唯一能一键引用 skill 的界面 |
| 左栏图标 | 常驻入口,点它在中间打开面板 |
| 中栏面板 | 完整报告 + skill 目录 |
把作者给的地址整个粘进来就行:
https://github.com/owner/repo/tree/main/skills/my-skill
仓库主页、仓库里的文件夹链接、SKILL.md 链接、zip 直链、owner/repo、SSH 地址都认 —— host 自己判断该克隆还是该下载,分支与子目录从地址里解析,不用你填三个框。也可以上传 .md/.zip,或直接粘贴整篇 SKILL.md。
同名不会静默覆盖:先备份再替换。装错了能删,删掉的进备份目录,永不硬删。

问题:3.0 把地址用一次就丢了(git 克隆还会被删掉)。作者发了修复,你无从判断新旧,只能删了重装 —— 而删除是移动到备份。
做法:安装时把来源写进该 skill 自己的 .echocat.json:地址、分支、子目录、安装时的 commit、以及一份内容指纹。于是:
git ls-remote,不重新下载内容;来源固定在某 commit 上时不会被误报成"有新版"。display-name-zh。--dsh-composer-card-max-width 减 16px),永远比输入框窄,并且和输入框共享同一条中轴 —— 宽窗口、窄窗口、嵌入式布局都对。color-mix 从墨色推导。prefers-reduced-motion、prefers-reduced-transparency、窄屏布局各自有覆盖。node tools/preview.mjs 渲染真实面板并截图,加 --measure 打印计算样式 —— 先看见,再改。输入框正上方常驻一条横栏,点开后在 skill 卡片上按「引用」,/名字 就追加进草稿 —— 回车即按手动手势调用它。装完 skill 的成功提示里有同一个按钮,装完即用。
中文名写进该 skill 自己的 meta.yaml(display-name-zh),面板就按中文显示。安装时能填,装完在卡片上随时能改,留空则清除。
/名字 手势仍然走 ASCII 代号,两者互不干扰。
GitHub 源码(推荐,拿到的是完整包):
git clone https://github.com/VDERR/echocat-skill-panel-3.0.git
cd echocat-skill-panel-3.0
& ".\安装-3.0.ps1" # 备份清单 → 镜像 → 清旧包名 → 建联接 → 改 manifest → pnpm install
npm(已发布到 npm,包名相同):
dsh plugin --profile web add echocat-skill-panel-3.0 # 走 dsh 的插件安装
npm install echocat-skill-panel-3.0 # 或直接装进 profile 目录
两个
peerDependencies(@deepseek-ai/dsh-llm、@deepseek-ai/schemastery)标了optional:由 DSH 运行时提供,npm 不会自己去下载一份来顶替宿主的那份。
装完必须重启 DSH Desktop Beta。 host 半侧在 boot 时快照进内存,而客户端 bundle 每次开页面会重新拉取 —— 所以只改客户端刷新页面就够,改了 host 必须重启。
脚本动手前会备份 profile 清单,-Rollback 一键回退。手动四步、卸载回滚,以及五条会让应用起不来的硬性约束都在 安装说明.md。
每轮结束弹一次系统原生通知;给没中文的 skill 自动翻译并缓存;深色主题;宿主不允许写入时自动变只读并说明原因;全部配置项 —— 见 安装说明.md。
架构与实现要点、安装引擎的四条安全规矩、宽度为什么用百分比而不是像素、停用为什么是"移出目录"而不是改名、485 条调整为什么是生成的、设计重做是怎么"先看见再改"的、来源记录为什么放在 skill 目录里、版本比较为什么不能拿字符串比、踩过的坑(宿主语义令牌不能当视觉令牌用、逗号选择器不能共享组合符、min-height:0 会架空粘底页脚、CSS 注释里的反引号会截断样式表……),以及 1398 项断言 / 十二个门的测试明细 —— 见 docs/设计要点.md。
node tools/build-client.mjs # 生成 lib/client.js(改了 src/client/ 就必须跑)
npm test # 九个套件
node tools/preview.mjs # 渲染真实面板并截图(浅色 + 深色)
node tools/preview.mjs --measure # 打印关键元素的计算样式
node tools/check-width-live.mjs # 真 Chrome 量宽度(改了宽度规则就跑)
lib/client.js是入库的构建产物(目标机器没有工具链,lib/必须一起提交)。改了src/client/就要在同一个 commit 里重建它 ——verify-install.mjs会核对 bundle 与包是否一致,漏了会在门里失败。
运行时没有任何依赖;@deepseek-ai/dsh-llm 与 @deepseek-ai/schemastery 是 host 提供的 peer。
MIT,见 LICENSE。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。