前言¶
在 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