dsh-smart-profile:從倉庫出發爲 DeepSeek Harness 選插件

前言

DSH 的理念是「一切皆插件」,能力靠插件往上疊。但插件一多,問題就反過來:面對一個具體倉庫,到底該裝哪些?哪些已經沒人維護?哪些帶着生命週期安裝腳本這類供應鏈風險?靠人去 npm 逐個搜索、看 README、覈對許可證,既慢也容易漏。

dsh-smart-profile 把這個流程倒了過來:不從一份通用插件清單出發,而是從倉庫本身和當前任務出發,先檢測技術棧,再推薦能力,最後給出一份可以逐條審查、顯式批准的安裝計劃。默認一切只預覽,不寫任何東西。

這是什麼

dsh-smart-profile 是一個面向 DeepSeek Harness 的插件,由 Makima667 維護,許可證爲 MIT,一句話定位:項目技術棧檢測與能力推薦。

當前 package.json 中的版本爲 1.0.0,engines 要求 Node >= 20,零運行時 npm 依賴。它要解決的是「一切皆插件」生態帶來的配置空檔:不要求用戶預先了解每個插件,而是把檢測、推薦、發現、評分、預覽、批准、安裝、驗證、回滾串成一條鏈路。

核心功能

技術棧檢測(smart_profile_scan)

對項目倉庫做啓發式技術棧檢測,返回證據與置信度,而不是把每個信號都說成確定結論。檢測覆蓋包括:

  • JavaScript / TypeScript / Node.js、Python、Java / Kotlin、Go、Rust、PHP、Ruby、.NET、Dart / Flutter
  • 前端框架:React、Next.js、Vue、Nuxt、Svelte、Angular
  • 後端框架:Express、Fastify、NestJS、FastAPI、Django、Flask、Spring Boot、Gin、Axum、Actix Web、Laravel、Symfony、Rails、Sinatra、ASP.NET Core
  • 數據庫信號:PostgreSQL、MySQL、MongoDB、Redis、SQLite
  • 基礎設施:Docker / Compose、Kubernetes / Helm、Terraform
  • 雲與 CI:部分 AWS / Azure / Google Cloud 信號,GitHub Actions、Azure Pipelines、Google Cloud Build
  • 測試工具:Playwright、Cypress、Vitest、Jest、Pytest、PHPUnit、RSpec、xUnit
  • monorepo:npm / yarn / pnpm workspaces、Turborepo、Nx、Lerna

能力推薦與任務裁剪

smart_profile_recommend 基於檢測結果給出項目能力推薦;smart_profile_compose 面向具體任務做能力裁剪,比如只保留和「修前端 Playwright 測試」相關的部分。

候選發現與評分

smart_profile_discover 從公開 npm 做候選發現,只發現、不安裝。smart_profile_score 對候選打分並標記風險,1.0 的評分綜合了:

  1. 項目 / 能力匹配度
  2. 發佈新鮮度
  3. npm 搜索相關性(弱信號)
  4. 倉庫 / 許可證 / 主頁等元數據
  5. 依賴體積
  6. 生命週期安裝腳本
  7. DSH bundle 聲明

自動 setup 選型會直接拒絕以下候選:低於設定分數閾值、被標記 review-required、存在阻塞性的生命週期安裝腳本風險、未聲明 dsh.bundle.patch

安裝計劃與安全寫入

smart_profile_install_plan 給出單個候選的精確安裝命令計劃,不執行;smart_profile_setup_plan 預覽完整 setup 計劃,也不執行。默認行爲是 preview-only:寫入 DSH profile 必須同時提供 --apply--approve,只給 --approve 不會安裝任何東西。

安裝階段的流程是:

  1. 逐個安裝選中的包
  2. 每次安裝後用 DSH --dump-config 驗證
  3. 驗證失敗時移除當前包
  4. 本次運行早前安裝的包按逆序回滾

回滾是盡力而爲,主機或包管理器層面的故障仍可能中斷回滾過程。若某個包已存在於組合 profile 中,setup 不改動它。原始組合配置不會被持久化,操作結果只返回哈希。

smart_profile_compat 輸出本地的 DSH 兼容性策略與矩陣報告。compatibility.json 區分三種狀態:ci-target(倉庫工作流嘗試測試的通道)、verified(保留給有證據支撐的組合)、unknown(矩陣中未記錄的目標)。聲明過的目標不會自動標記爲 verified。倉庫 CI 針對 Node 20 / 22 / 24 與 @deepseek-ai/dsh@next 測試 npm 包形態、本地 bundle 安裝和 --dump-config

本地 Web UI

npx dsh-smart-profile web . --port 4173

這條命令在本地起一個只讀儀表盤:默認綁定 127.0.0.1,展示檢測到的技術棧和能力推薦,支持任務組合,不提供安裝 / 移除端點,對倉庫提供的文本做轉義,並啓用了 CSP。

另外需要說明一點設計取捨:這個插件刻意不給 Harness 模型自動安裝工具,profile 寫入始終是顯式 CLI 操作,模型調用無法靜默安裝主機級代碼。

安裝與啓用

把插件裝進一個 DSH profile:

npx --yes @deepseek-ai/dsh@next plugin --profile web add dsh-smart-profile@latest

命令中的 web 是 profile 名稱,可以換成你自己的。也可以用插件自帶的輔助命令完成同樣的事:

npx dsh-smart-profile install --profile web

安裝前如需確認當前發佈的版本號,可運行:

npm view dsh-smart-profile version

資料中可確認的 package.json 版本爲 1.0.0,npm 上的最新發布版本以上面這條命令的輸出爲準。

典型用法

先看幫助,再對當前目錄做一次技術棧檢測:

npx dsh-smart-profile --help
npx dsh-smart-profile scan .

最常見的入口是一條命令預覽完整 setup 計劃:

npx dsh-smart-profile setup .

把計劃裁剪到具體任務:

npx dsh-smart-profile setup . --task "fix the frontend Playwright tests"

換一個目標 profile 或調整候選分數閾值:

npx dsh-smart-profile setup . --profile web --min-score 75

審查完計劃後,顯式應用:

npx dsh-smart-profile setup . --profile web --apply --approve

兩個寫開關是刻意分開的:--approve 不帶 --apply 仍然什麼都不會裝。

如果不想走整條 setup 鏈路,也可以單獨調用各環節:

npx dsh-smart-profile recommend .
npx dsh-smart-profile compose "debug the database migration" .
npx dsh-smart-profile discover .
npx dsh-smart-profile score .
npx dsh-smart-profile compat next

對單個包做手動安全流程——先生成計劃,再批准執行:

npx dsh-smart-profile plan dsh-example@1.2.3 --profile web
npx dsh-smart-profile apply dsh-example@1.2.3 --profile web --approve

適用場景與注意

適合的人羣:同時維護多個技術棧不同的倉庫、希望 DSH 配置跟着項目走的開發者;想借助模型自動化選型、但要求每一步可審查、可回滾的團隊。

使用前有幾點需要清楚:

  • 默認 preview-only,所有寫入都需要同時給出 --apply--approve
  • 評分是參考性質,高分不是安全保證,敏感環境應審查源碼
  • 回滾是盡力而爲,主機或包管理器故障可能中斷回滾過程
  • compatibility.json 中聲明的目標不會自動標記爲 verified,具體矩陣內容以倉庫中的文件爲準
  • 插件以當前 dsh 進程的權限運行,安裝前應自行檢查源碼與許可證(本項目爲 MIT)

結尾

dsh-smart-profile 做的事情不復雜:讓插件選型從倉庫和任務出發,每一步可解釋、可預覽、可回滾。如果你維護的項目技術棧經常變,或者不放心讓模型自己決定裝什麼,這套「默認只預覽、顯式批准才寫入」的流程值得試一次。

  • 目錄頁:https://www.skillhub.cn/plugins/Makima667/dsh-smart-profile
  • GitHub:https://github.com/Makima667/dsh-smart-profile
羽毛球分组比赛记分
小程序二维码

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

小夜