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
羽毛球分组比赛记分
小程序二维码

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

小夜