dsh-taste:把 taste-skill 装进 DeepSeek Harness 的工作流插件

前言

做前端落地页或产品界面时,很多人会把 taste-skill 里的 Markdown 技能拷进 DSH 技能目录,再靠软链或固定路径让模型读到。上游仓库本身是「纯技能」形态:没有 Cordis 插件壳,脚本也要你手写 node scripts/xxx.mjs 才能跑。若还要跟上上游 commit,就得自己 vendoring 或盯仓库更新。

dsh-taste(维护者 qizhuxu,社区分类:工作流)是 taste-skill 的 DeepSeek Harness 原生插件:进程内注册 taste-provider,把上游技能与脚本打成可安装包,并通过 GitHub Actions 定时比对上游、有漂移则重新打包并开 PR。下面介绍它相对「只拷 Markdown」多做了什么,以及如何安装、配置和日常使用。

这是什么

一句话:taste-skill 的 DSH 封装层——技能随包走,脚本变成模型可调用的工具,并可随上游自动重新封装。

相对上游,插件 README 归纳了三件事:

  1. 把技能做成插件:不再依赖 clone 到固定路径再软链;安装即注册 provider。
  2. 把脚本变成工具:上游四个脚本对应 taste_status、taste_draw、taste_lint、taste_inspect、taste_assets(README 表列为五个工具名)。
  3. 随上游自动重新封装:.github/workflows/upstream-sync.yml 每日检查;有更新则 vendoring、递增 patch 版本、开 PR。

实现上参考 dsh-oil-ui(自带技能 + skill provider)与 dsh-ffmpeg(subprocess、argv 数组、无 shell)。README 写明零运行时依赖;package.json 要求 Node >=22.19.0、DSH 0.2.1-rc.2,当前包版本为 0.3.2,许可 MIT;skills/ 内容来自上游 MIT 仓库。

技能面板:一条命令与七种「随载风格」

上游约有 8 个技能。默认配置下,插件只暴露主技能,对外名称与插件同名,skills 面通常只剩:

/dsh-taste

执行的是完整工作流(tasteskill v2)。上游主技能原名 design-taste-frontend;改成 dsh-taste 是为了「一个插件 = 一条命令」。可通过 primaryName 改回原名或自定义。

其余 7 种风格不单独出现在目录里,而是在加载主技能时以指令形式追加到正文末尾(含名称、文件绝对路径表,以及何时读、不要混用的规则)。需要时直接点名,例如「用 gpt-taste 风格做这个落地页」或「换成 minimalist-ui」。携带的风格包括:gpt-taste、high-end-visual-design、minimalist-ui、industrial-brutalist-ui、stitch-design-taste、design-taste-frontend-v1、design-taste-frontend-v2-experimental(含义见 README 表格)。

若希望 8 个技能各自出现在目录与命令列表,在 cordis.patch.yml 里设 listAllStyles: true。

默认 rank 为 380(越小越优先):会压过用户级 ~/.dsh/skills(400),但项目级 .dsh/skills(100)等仍可覆盖插件。技能面板的启用/停用会改写 SKILL.md 的 disable-model-invocation;插件在 list()/get() 时实时读取该字段,面板刷新即可,不必重装。

工具:脚本进模型工具栏

工具 作用
taste_status 自检:打包版本、上游 commit、纳入技能、node 路径;排查问题先跑它
taste_draw 抽签定设计方向(--sector 必填),写出 direction.json
taste_lint 静态扫描:渐变、紫色、等宽字、眉标等,输出带 文件:行号
taste_inspect 浏览器闸门:1440/768/390 三档判定 + 截图
taste_assets 在开放馆藏检索并下载真实素材,记录署名

taste_lint 与 taste_inspect 的退出码 1 表示有未达标项,是检查结论而非执行故障;stdout/stderr 会原样返回。

安装与启用

安装命令(来自 README,勿自行拼接其他形式):

dsh plugin --profile desktop add github:qizhuxu/dsh-taste

安装后重启 DSH(插件在宿主启动时加载,无热重载)。装好后可调用 taste_status 查看打包版本与上游 commit。

更新时注意 pnpm 的 commit pin

pnpm 会把 git 依赖钉在解析时的 commit,写入 profile 的 pnpm-lock.yaml。上游或本仓库 CI 合并新版本后,本机不会自动跟上;面板「重装/更新」若按 lockfile 落地,也可能只是旧 commit 重铺。

要真正升级,在对应 profile 目录执行:

cd ~/.dsh/profiles/<profile>
pnpm update dsh-taste --lockfile-only
pnpm install --frozen-lockfile

然后重启 DSH。README 明确建议不要手动往 node_modules/dsh-taste 里复制文件「更新」——下次重装会按 lockfile 覆盖。

配置

在 profile 的 cordis.patch.yml 中覆盖插件行,常用项如下(注释与默认值见 README):

- id: dsh-taste
  name: dsh-taste
  config:
    # nodePath: ...           # 默认宿主 node(process.execPath)
    # primaryName: dsh-taste  # /命令 名称
    # rank: 380
    # timeoutMs: 300000
    # graceMs: 10000
    # listAllStyles: false

中文文档与上游同步

上游技能正文多为英文。本仓库在 docs/zh/ 提供核心部分的简体中文翻译,例如 SKILL.zh.md(主技能全文)、tells.zh.md、colour.zh.md 等;篇幅较大的参考(如 app-screens.md、motion.md)README 注明未翻译,需读英文原文。译文为机器翻译,以英文原文为准;skills/ 为上游逐字节副本,不由 docs/ 覆盖。

上游同步由 node scripts/vendor.mjs 打包;--check 无漂移则安静结束,有漂移退出码 1。skills/ 由脚本生成,不要手改。上游新增技能目录会被自动纳入(跳过项见 upstream.config.json 中已废弃或迁出的 5 个目录)。

适用场景与注意

适合:已在 DSH 里做前端/界面类智能体,希望 taste-skill 的工作流、风格切换和 lint/inspect/assets 脚本以插件形式安装,并愿意通过 lockfile 步骤跟进上游封装版本。

注意:

  • 插件以当前 DSH 进程权限运行;安装前请自行查看 GitHub 源码 与许可证(MIT;上游技能内容另见 skills/UPSTREAM-LICENSE.txt)。
  • 社区目录 skillhub.cn 上的 dsh-taste 页 与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本文事实以仓库 README 与 package.json 为准。

结尾

dsh-taste 把 taste-skill 从「拷 Markdown + 手跑脚本」收成一条 /dsh-taste 与五个可调用工具,并用可复现 vendoring 与 CI 跟上 Leonxlnx/taste-skill。需要安装与配置细节时,以 README 为准。

  • 目录页:https://www.skillhub.cn/plugins/qizhuxu/dsh-taste
  • 仓库:https://github.com/qizhuxu/dsh-taste
羽毛球分组比赛记分
小程序二维码

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

小夜