@sal7one/dsh-design-studio:把設計稿變成 DSH 裏的一等工作流

前言

用 DeepSeek Harness(DSH)寫前端時,設計環節往往遊離在 agent 工作流之外:截圖貼進聊天、口頭描述改動、agent 改完代碼後自己開瀏覽器覈對。設計和編碼是兩條線,agent 看不到頁面,也無法驗證自己改了什麼。

DSH 的理念是「一切皆插件」,這條線可以由插件來補。下面介紹的 @sal7one/dsh-design-studio 由 Sal7one 維護,MIT 許可證,把即時預覽、元素選取、真實設計 agent 和視覺評審接進 harness,讓設計稿成爲 agent 能直接讀寫、驗證的文件。

這是什麼

一句話定位:一個把設計 mockup 變成一等 AI 工作流的 DeepSeek Harness 設計插件——即時預覽、元素選取、真實設計 agent 與視覺評審。

幾個基本盤:

  • 當前版本 1.2.3,engines 要求 Node.js >= 22;
  • 零運行時依賴,純 JavaScript,無構建步驟;
  • 結構是 dsh.bundle(宿主側)+ dsh.client(Web UI 側)雙面包:dsh plugin add 一次,design_studio 工具、/design-studio 預覽路由、提示詞段落和 Design Studio 標籤頁每次啓動都在;
  • 所有設計系統都是磁盤上 temp_design_folder/ 下的真實文件,設計、預設、配置、評審和 agent 歷史重啓後仍在。

核心功能

design_studio 工具與即時預覽

design_studio 是一個 agent 工具,主助手和子代理都能調用,支持 list / all / create / read / write / zip / reveal / delete / sweep 設計系統,管理身份預設、運行視覺評審、與設計 agent 對話、讀取歷史、配置 studio,操作範圍限定在 temp_design_folder/ 下的設計目錄。

即時預覽路由是 /design-studio/<slug>/html/index.html,由 harness web server 提供;Design Studio 標籤頁以 iframe 內嵌該路由,保存後熱重載。另有一段 Design-brief 提示詞,會把操作者的屏幕簡介自動轉成設計系統。

設計系統的文件結構

每個設計系統的文件結構固定:

html/index.html
css/style.css
css/token.css
js/app.js
design_prompts_forcoders.md
assets/images/

design_prompts_forcoders.md 是編碼 agent 要遵循的 brief;assets/images/ 存放上傳的圖片。mock 數據保持誠實——只有空態和加載態,不僞造線上數字。

每個設計系統按創建它的會話歸屬,標籤頁只顯示當前會話的設計。

設計 agent

設計 agent 不是包裝出來的角色,而是真實的 harness 子代理,行爲有四點:

  1. 每條消息內自行跨多次工具調用讀取、編輯設計文件,再彙總文件級改動;
  2. 讀取和編輯活動即時流入聊天,帶內聯錯誤、按系統持久化的歷史和運行超時;
  3. 視覺預檢(Vision pre-pass):選擇器中選定的圖片先由配置的視覺模型描述,agent 不會在多個資產之間猜「這張圖」是哪張;
  4. 新鮮度戳 {hash, at}:插件經 harness fs/observed 流檢測任何編輯器的改動,agent 每輪記錄 design cache,下一輪據此證明 UNCHANGED 或 CHANGED。

元素選取與雙 agent 應用

點擊 🎯 Select,在即時預覽中點選任意元素並描述改動,然後三選一:

按鈕 行爲
🤖 Ask DeepSeek(默認) 寫入 EDIT_REQUEST.md 並注入主聊天,DeepSeek 自己改文件;編輯落定後 studio 自動運行一次設計 agent 驗證
◈ 交由設計 agent 經典流程:設計 agent 自己應用改動並在其聊天裏回覆
💾 僅保存 只寫 EDIT_REQUEST.md,之後從任一聊天應用

視覺評審與身份預設

  • 👁 Review:基於 OpenRouter 視覺模型,對照 brief 給出誠實的 GOOD | POOR 評語加一句話備註,模型、effort、options 均可配置;
  • 身份預設:保存調色板、字體、Logo;preset_apply 寫入 css/token.css 並複製 Logo 資產;
  • OPENROUTER_API_KEY 經 harness credential seam 處理,密鑰從不渲染或返回;
  • 📸 Shot:截取屏幕區域(macOS screencapture)直接進入 assets/images/。注意作者在 README Todos 中已計劃移除該功能,因其 buggy。

其他能力

  • 拖放區:圖片或代碼文件拖入標籤頁,圖片落入 assets/images/ 並在 agent chat 選擇器中自動選中;
  • Zip 導出(_zips/<slug>.zip,僅文件)、Finder 定位(open -R)、無 shell 的遞歸刪除,在沒有 POSIX shell 的主機上也能用;
  • Settings → Design Studio / All designs 頁面:配置、key 狀態、系統列表、逐設計的 zip/reveal/delete。

安裝與啓用

插件兼容兩種 harness 發行方式:npm 發行版和源碼 checkout。npm 發行版按下面三步走:

# 1. 啓動 harness(如未運行)
npx @deepseek-ai/dsh web

# 2. 安裝插件
dsh plugin --profile web add "github:sal7two/dsh-design-studio#main"

# 3. 重啓 harness,加載新層

源碼 checkout 用 pnpm dsh web 啓動。從本地 checkout 安裝:

dsh plugin --profile web add -w /absolute/path/to/dsh-design-studio

兩點注意:

  1. -w 僅當 profile 目錄是 pnpm workspace 根(存在 pnpm-workspace.yaml)時需要,且路徑必須爲絕對路徑,否則會被誤讀爲 GitHub owner/repo 簡寫;
  2. 上面的安裝命令按 README 原文照錄,其中 sal7two 與 GitHub 倉庫歸屬 Sal7one/DSH-Design-Studio 不一致,安裝前請以倉庫頁面給出的命令爲準。

典型用法

經過上面的步驟重啓 harness 後,Design Studio 標籤頁每次啓動都在。以元素選取流程爲例:

  1. 打開 Design Studio 標籤頁;
  2. 點擊 🎯 Select;
  3. 在即時預覽中點選任意元素,描述想要的改動;
  4. 選擇應用方式:默認的 🤖 Ask DeepSeek 把請求寫入 EDIT_REQUEST.md 注入主聊天,DeepSeek 編輯文件,編輯落定後 studio 自動運行設計 agent 驗證;也可以 ◈ 交由設計 agent 執行,或 💾 僅保存,之後再從任一聊天應用。

另一條入口是 Design-brief 路由:在聊天裏給出屏幕簡介,系統提示詞段落會把它自動轉成設計系統,不用手動建目錄。

適用場景與注意

適合誰:用 DSH 做界面開發的開發者;需要在主聊天之外有一條獨立的設計線,且希望設計和編碼共享同一套真實文件,而不是貼圖和口頭交接。

使用前留意:

  1. 插件以當前 dsh 進程的權限運行,可讀寫 temp_design_folder/ 並調用視覺模型。安裝前建議檢查源碼與許可證(本插件爲 MIT);
  2. 運行環境要求 Node.js >= 22;
  3. 📸 Shot 截圖功能作者已標記爲 buggy 並計劃移除,使用時留意;
  4. 卸載等其餘操作參考倉庫 README。

小結

@sals7one/dsh-design-studio 把設計稿從貼圖變成 agent 可讀寫、可驗證的真實文件:即時預覽和元素選取讓改動有處可點,雙 agent 應用流程讓每次編輯都經過設計 agent 驗證,新鮮度戳和視覺預檢則處理多 agent 協作時的漂移問題。如果你在用 DSH 做界面開發,值得試一次。

  • 社區目錄(獨立站點,非官方應用商店):https://www.skillhub.cn/plugins/Sal7one/DSH-Design-Studio
  • GitHub:https://github.com/Sal7one/DSH-Design-Studio
羽毛球分组比赛记分
小程序二维码

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

小夜