dsh-upm:把 ui-ux-pro-max 装进 DeepSeek Harness 的 UI/UX 设计工作流插件

前言

在 DSH 里做界面或体验相关任务时,模型往往需要风格参考、配色档案、UX 准则和技术栈实现要点。上游项目 ui-ux-pro-max 提供一套「设计智能」数据库和 Python 检索引擎,传统用法是把技能目录拷进宿主,再在终端执行 python .../search.py。路径固定、命令手写,和 DSH 的工具调用模型也不对齐。

dsh-upm 由维护者 qizhuxu 发布,分类为工作流,是 ui-ux-pro-max 的 DeepSeek Harness 原生插件:技能与数据随包走,检索注册为原生工具与原生命令,并可通过 GitHub Actions 随上游 commit 自动重新封装。下面介绍它是什么、怎么装、怎么用,以及安装与更新时容易踩的坑。

这是什么

一句话定位:ui-ux-pro-max 的 DSH 原生插件——bundled skill data、native search / design-system tools、auto re-vendor from upstream。

上游数据规模(README 原文):79 种可检索风格、192 套产品配色与推理档案、74 组字体搭配、119 条 UX 准则、105 个精选图标、17 个 GSAP 动效预设、25 类图表、22 个技术栈。

相对「只 clone 上游、手敲 search.py」,插件额外做三件事:

  1. 进程内注册 upm-provider,技能与数据随包走,不依赖固定 clone 路径。
  2. 将 search.py 封装为 upm_search / upm_stack / upm_design_system 等工具;另有 upm_domains、upm_status 两个不启动 Python 的自检入口。
  3. GitHub Actions 定时比对上游 commit,有更新则重新打包并开 PR。

结构参考 dsh-taste;执行层使用 DSH 官方 subprocess、argv 数组、无 shell。npm 包版本为 0.1.1(MIT),peer 依赖 @deepseek-ai/cordis ^4.0.4 等,要求 Node >=22.19.0、dsh ^0.2.0-rc.2。

先决条件:Python 3.8+

检索引擎是 Python(search.py + core.py + design_system.py)。插件不捆绑 Python,按顺序探测解释器:

  1. 配置里的 pythonPath;
  2. 环境变量 DSH_UPM_PYTHON;
  3. python → python3 → py -3。

配置了 pythonPath 就只用它,失败直接报错,不会静默换别的解释器。探测结果在插件实例内缓存。装好后可用 upm_status 查看实际使用的解释器;upm_domains 不启动 Python,无 Python 时仍可列出域与栈。

核心功能

技能与命令

skills 面默认只注册一条命令(与插件同名):

/dsh-upm

执行上游完整工作流(含 10 条优先级规则与检索契约)。上游技能原名 ui-ux-pro-max;可通过配置 primaryName 改名或保留原名。

插件加载技能时会在正文开头插入 DSH 运行时说明(CLI 参数与工具参数对照),末尾追加数据与参考文件的绝对路径;上游 SKILL.md 文件本身不改。

另有两条原生命令,不经模型、直接出结果:

/upm-search <检索词> [--domain 域 | --stack 栈] [-n 条数] [--json] [--full]
/upm-ds     <产品类型 行业 关键词> [-p 项目名] [-f ascii|markdown] [--variance 1-10] [--motion 1-10] [--density 1-10] [--persist -o 项目根] [--page 页面] [--force] [--json]

--domain 与 --stack 只能给一个,混用会报错。

工具一览

工具 作用
upm_status 打包版本、上游 commit、数据规模、数据目录、Python 解释器
upm_domains 12 个搜索域与 22 个技术栈及条目数(纯 JS)
upm_search 按域检索
upm_stack 按技术栈检索
upm_design_system 生成完整设计系统,可持久化为 design-system/<slug>/MASTER.md

12 个搜索域包括 style、color、chart、landing、product、ux、typography、icons、gsap、react、web、google-fonts 等(详见 README 表格)。

22 个技术栈包括 react、nextjs、vue、svelte、astro、swiftui、react-native、flutter 等(完整列表见 README)。

upm_design_system 支持 variance / motion / density 拨盘(1–10),分别影响风格大胆程度、动效复杂度、布局密度。

安装与启用

CLI 安装(命令来自 README 原文):

dsh plugin --profile <profile> add github:qizhuxu/dsh-upm

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

desktop profile 例外:CLI 会拒绝,需在 Electron 插件面板操作,或改 profile 的 package.json:

{
  "dependencies": { "dsh-upm": "github:qizhuxu/dsh-upm" },
  "dsh": { "profile": { "bundles": ["…", "dsh-upm"] } }
}

在该 profile 目录执行 pnpm install 后重启 DSH。

从 GitHub 安装的 npm 包按 files 字段打包,不含 scripts/vendor.mjs、test/、.github/ 等;运行期不缺技能与数据,本地 re-vendor 或跑测试需 clone 源码仓库。

更新注意:pnpm 将 git 依赖钉在 pnpm-lock.yaml 的 commit 上,上游或 CI 合并新版本不会自动到你机器。需在该 profile 目录:

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

然后重启 DSH。不要手动往 node_modules/dsh-upm 复制文件「更新」,重装会按 lockfile 覆盖。

典型用法

原生命令示例(README):

/upm-search "keyboard focus modal" --domain ux -n 5
/upm-search "suspense streaming bundle" --stack nextjs
/upm-ds "beauty spa wellness service" -p "Serenity Spa"
/upm-ds "internal analytics dashboard" -p "Ops Console" --variance 8 --motion 7 --density 8 --persist -o "D:\work\ops-console"

模型侧对应关系示例:search.py "<q>" --domain <d> → upm_search { query, domain };设计系统带持久化时对应 upm_design_system 的 persist / outputDir / page / force 等参数。

检索词宜围绕一个主意图、2–5 个有意义的词;0 结果时换更窄的词或指定 domain 重试,仍无命中应如实说明,勿把通用建议伪装成数据库命中。

配置

在 profile 的 cordis.patch.yml 覆盖插件行,例如:

- id: dsh-upm
  name: dsh-upm
  config:
    # pythonPath: C:\Python312\python.exe
    # primaryName: dsh-upm
    # rank: 380
    # maxResults: 3
    # timeoutMs: 300000
    # graceMs: 10000

默认 rank 为 380:小于用户 ~/.dsh/skills(400),大于项目级 .dsh/skills(100),故项目级副本仍可覆盖插件技能。

适用场景与注意

适合谁:在 DSH 中做 UI/UX、落地页、设计系统、多栈前端实现参考,且愿意在本机提供 Python 3.8+ 的开发者。

权限与安全:插件以当前 DSH 进程权限运行;upm_design_system 的 --persist 会向指定目录写文件。安装前应阅读 GitHub 仓库 源码与 MIT 许可证,自行评估数据与脚本行为。

生态说明:DSH 社区插件目录 SkillHub 上的 dsh-upm 页 为独立站点条目,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-upm 把 ui-ux-pro-max 的设计数据库和检索引擎封装成 DSH 插件:一条 /dsh-upm 工作流、五条工具、两条快捷命令,并解决 Python 路径与 pnpm git 依赖更新两类运维问题。需要详情时查阅 目录页 与 GitHub:qizhuxu/dsh-upm。

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

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

小夜