deepseek-harness-fullstack:把全棧開發經驗拆成四個可調用的工具

前言

在 DSH 裏做全棧開發,常見的做法是把整套規範寫進常駐提示詞,或者裝幾個各自獨立的專家包。前者佔用 context,後者每次要切包、拼上下文。redkiller79/deepseek-harness-fullstack 換一個思路:把原本分散在專家包裏的三份技能(全棧開發、前端設計工程、瀏覽器自動化)註冊成四個工具,模型需要哪段知識才調用哪段,技能正文不常駐提示詞。

這個插件名爲「全棧高級開發工程師 · 棧工(Stacker)」,插件標識 dsh-fullstack-engineer,由 redkiller79 維護,在目錄站上歸入「工作流」分類。包內 package.json 聲明版本 1.0.0。

這是什麼

一句話定位:一個面向 DeepSeek Harness 的全棧工程師人設插件,把架構、前端、瀏覽器操作三塊經驗打包成按需注入的工具。

它解決的問題是:全棧知識面很寬,常駐提示詞塞不下也消耗 token;改成工具調用後,只有被調用的技能正文進入上下文,其餘內容留在包內,由 focus 參數做子主題索引。

要求 Node.js ≥ 22.14.0,DSH 0.2.x,支持 Windows / macOS / Linux。@deepseek-ai/dsh-tools 由 DSH 宿主提供,包內不重複聲明依賴。

核心功能

四個工具,各自覆蓋一個面:

工具 覆蓋內容
fullstack_guide 架構模式、REST API 設計、認證流程、數據庫建模、錯誤處理、測試策略、上線檢查
frontend_studio 設計規則與禁止模式、動效選型(Framer Motion / GSAP / Three.js)、MiniMax 媒體生成腳本、文案框架、性能約束
browser_automation 網頁導航、表單填寫、截圖、數據提取、多會話、CDP 控制
read_skill_asset 讀取包內任意文本資產(腳本、HTML 模板、字體清單)

技能正文只在工具被調用時注入上下文,不佔常駐提示詞。focus 參數可直達子主題,例如 fullstack_guide(focus="auth") 會連同 auth-flow.md 一併返回。對應的包內結構是:

deepseek-harness-fullstack/
├── package.json          # dsh.bundle.patch 指向 patch 層
├── cordis.patch.yml      # 插入 id=dsh-fullstack-engineer 一行,裝載 ./index.js
├── index.js              # apply(ctx) → ctx.tools.register(...)
├── agents/
│   └── fullstack-engineer.md   # 人設:全棧高級開發工程師 Stacker
├── skills/
│   ├── fullstack-dev/    # SKILL.md + 9 篇 references
│   ├── frontend-dev/     # SKILL.md + 11 篇 references + 4 個生成腳本 + 模板 + 字體
│   └── browser-use/      # SKILL.md + 2 篇 references
├── avatars/expert.png
└── test/smoke.mjs        # 離線冒煙:mock 掉 dsh-tools 後跑 4 個工具

安裝與啓用

從倉庫安裝(README 推薦的方式):

dsh plugin --profile web add github:redkiller79/deepseek-harness-fullstack

本地目錄方式,便於先審閱源碼再裝載:

dsh plugin --profile web add ./deepseek-harness-fullstack

驗證是否已寫入 profile:

dsh --dump-config

卸載把 add 換成 remove。裝完需要重啓 profile 才生效。

典型用法

從 README 的能力表可以直接推斷出調用方式:需要架構或認證相關的建議時調 fullstack_guide,需要做前端設計選型時調 frontend_studio,需要操作網頁時調 browser_automation,需要取包內腳本或模板時調 read_skill_asset。

帶子主題的調用最典型:

fullstack_guide(focus="auth")

這條調用會把 auth-flow.md 一起返回,而不是整份全棧規範。同理,frontend_studio 的動效選型會在需要確定動畫方案時注入對應內容。

瀏覽器自動化這邊要注意:browser_automation 只注入操作指南,真實瀏覽器操作由用戶本機的 CLI 執行,插件本身不發起網絡請求。

離線驗證

包內自帶冒煙測試,先 mock 掉 @deepseek-ai/dsh-tools,再真實調用 apply(ctx) 與全部工具:

node test/smoke.mjs

斷言內容包括:返回內容包含技能正文、focus 能命中參考文檔、路徑穿越被拒絕。想改包內內容或換 DSH 版本時,先跑這一條能省不少排查時間。

自定義

改名字:改 package.json 的 dsh.displayName / dsh.profession,並同步 agents/*.md 開頭的 name。

改標識需要三處一致:package.json 的 dsh.id、cordis.patch.yml 的 id、index.js 導出的 name。對齊版本則看 dsh.verifiedAgainst(package.json 裏目前寫 0.2.1-rc.5,README 兼容性表寫的是 0.2.x),按你實際的 dsh --version 改。加技能的流程是先在 skills/ 下新建目錄,再在 index.js 里加一個 defineTool 並在 bundle() 調用處登記。

適用場景與注意

適合兩類人:一是想讓模型按統一規範做全棧開發、又不想把整套規範常駐在提示詞裏的 DSH 用戶;二是想先審閱源碼再決定是否裝載的插件開發者。

權限方面要避免誤解:插件以當前 DSH 進程的權限運行,第三方插件能讀寫文件、能聯網,收錄不等於安全審計。就本插件自身而言,README 聲明它不發起任何請求、不執行 shell、不註冊 lifecycle 腳本、不讀取或存儲 token 與 API Key,文件訪問限定在包內 skills/,../ 越界被拒,單文件上限 256KB。裝之前請自行審閱 index.js(README 標註約 170 行)。許可證是 MIT,技能內容繼承自原專家包,字體文件各自遵循其 OFL 授權(見 skills/frontend-dev/canvas-fonts/*-OFL.txt)。

最後提醒一句版本狀態:README 明確寫了 DSH 0.2.x 處於開發預覽期,跨版本可能需要調整,裝上之前先看自己的宿主版本是否落在這個區間。

小結

它的價值在於把全棧、前端、瀏覽器三塊經驗收斂成四個按需調用的工具,上下文由調用決定,不由常駐提示詞決定。如果你已經在用 DSH 做全棧開發,可以先審 index.js 與包內 skills,再用本地目錄方式裝上跑一次冒煙測試。

目錄頁:https://www.skillhub.cn/plugins/redkiller79/deepseek-harness-fullstack

倉庫:https://github.com/redkiller79/deepseek-harness-fullstack

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

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

小夜