dsh-completo:把 DeepSeek Harness 装成一套 vibe-coding 工作区

前言

在 DeepSeek Harness(DSH)里做前端或产品向原型,常见摩擦不在「能不能写代码」,而在三件事叠在一起:界面长期处在默认主题里、从想法到可运行应用缺少固定节奏、智能体只能读仓库而不能真正「看见」正在跑的页面。单独装主题插件或零散 MCP,往往要自己对齐版本和 profile 补丁。

下面介绍社区插件 dsh-completo(维护者 itsnotalwin):它是一个 profile bundle,把一套温暖纸面 + 薄荷色主题、九个围绕构建循环的 skill,以及一组可按需开关的 MCP 打进同一个安装单元,目标是把 DSH 收成更偏「边写边看」的工作区。插件与 DeepSeek / 幻方无隶属关系;README 写明仅在命名上说明其接入对象是 DeepSeek Harness。

这是什么

dsh-completo 在 GitHub 上的定位是:A community bundle for DeepSeek Harness that makes it a vibe-coding workspace: one calm theme, a nine-skill build loop, and a small MCP pack.

在 SkillHub 社区目录中分类为 工作流。包版本 0.1.2,许可证 MIT。文档写明在 DeepSeek Harness 0.2.2-rc.1 上构建并验证;package.json 中 engines.dsh 为 >=0.2.2-rc.1 <0.3.0,超出该范围 harness 会拒绝导入该 bundle。Node 要求 >=24。

安装时除包本身外不会拉取其他资源;Playwright MCP 在首次运行时会下载 Chromium。

核心功能

Completo Studio 主题

注册 Completo Studio 主题(浅色 / 深色,暖纸 + 薄荷配色),接入 harness 的主题服务。默认是「已注册」,需在界面中选用;注册不等于自动切换当前主题。

九个 skill(默认开启)

技能包为离线只读,对应 skills/ 下九个 SKILL.md。用自然语言描述目标即可由智能体加载匹配 skill,也可点名某一个:

Skill 适用时机
spec-flow 想法还只是一句话,需要可开工的 spec。
prompt-crafting 提示词总得到「差不多对」的结果。
react-vite-base 新建或扩展 React + Vite + TypeScript 应用。
live-preview 需要看运行中的应用,而不是靠猜测。
checkpoint-rails 长周期构建,担心某一步毁掉已有好状态。
debug-loop 出问题且原因不明显。
design-pass 能跑,但看起来像原型。
release-checklist 交付给他人之前。
ship-audit 上线前最后检查:密钥、脚手架、链接、表述等。

MCP 组合(各行可单独开关)

部分 作用 默认
Playwright browser 真实 Chromium:导航、点击、截图、读控制台错误;支撑 live-preview 开
Chrome DevTools 性能 trace、网络瀑布图 关
Context7 docs 按项目依赖版本查当前文档 关
GitHub 会话内读 issue、PR、仓库(需 token) 关
Postgres 对开发库只读 SQL(需 URL) 关

需要凭证的行从环境变量读取,Completo 不在 bundle 里写入密钥。README 列出的变量包括:CONTEXT7_API_KEY(可选)、GITHUB_TOKEN(供 GitHub MCP,并以 GITHUB_PERSONAL_ACCESS_TOKEN 等形式使用,且文档注明 Docker 要求)、DATABASE_URL。工具名形如 mcp__completo-mcp-playwright__<tool>。

设置页与引导

bundle 在 Settings → Plugins → Completo 增加管理页:展示已装内容、开关状态与移除方式;另有 Providers & API keys 卡片,说明模型提供方与 API key 应去 harness 自带的 Settings → Models 配置,以及可选 MCP 行如何通过环境变量取配置——仅为指引,Completo 不存储 key。

设计上 Completo 只占一条 composition 行:浏览器模块注册表不允许同一 npm 包有两个活跃的 composition 源,因此主题与设置页通过该行的 exports["./client"] 一并交付。

安装与启用

Completo 是 profile bundle:在 profile 的 dsh.profile.bundles 中占一条。请用官方 README 中的命令安装,并 固定 git tag,不要用会移动的 main 分支。

从 git tag 安装(README 推荐的发布方式):

dsh plugin --profile my-profile add 'github:itsnotalwin/dsh-completo#v0.1.2'

从 git 安装会执行 prepare 脚本(node scripts/build.mjs)。若 pnpm 因未允许构建而拒绝,按报错把包名加入该 profile 的 pnpm-workspace.yaml,例如在 ~/.dsh/profiles/my-profile/pnpm-workspace.yaml:

onlyBuiltDependencies:
  - dsh-completo

较旧 pnpm 可能使用 allowBuilds: { dsh-completo: true }——以报错中的字段名为准。构建仅需 Node:将 src/ 复制到 dist/ 并内联调色板与摘要,校验 skill 包与 patch。

若不想允许构建,可下载发布 tarball dsh-completo-0.1.2.tgz(预构建、无脚本):

dsh plugin --profile my-profile add ./dsh-completo-0.1.2.tgz

README 说明:包尚未发布到 npm;日后可能简化为 dsh plugin --profile my-profile add dsh-completo 且无需本地构建。

本地校验时可用:

dsh --profile my-profile --dump-config | grep completo

应能看到 # == dsh-completo 块及 completo 与五个 completo-mcp-* 行。

切换主题

在 Web 应用中:Settings → General → Appearance。界面上外观行仅提供 light / dark / system;Completo 注册的 completo-studio-light 与 completo-studio-dark 通过主题服务可选。在未提供完整主题选择器前,README 建议在 profile patch 中设置,例如:

- id: ui-theme
  config:
    preference: light   # 或 dark / system

字体不由 Completo 注入;可将 src/theme/palette.js 中建议的字体栈复制到 Appearance → Font settings:

Aptos Display, Aptos, Segoe UI Variable Display, Segoe UI Variable Text, Segoe UI, system-ui, -apple-system, BlinkMacSystemFont, Inter, Helvetica Neue, Arial, sans-serif

单独开关某个 MCP

在 profile 的 cordis.patch.yml 中修改对应 composition 条目,例如:

- id: completo-mcp-chrome-devtools
  disabled: false

典型用法

  1. 用上述命令把 bundle 加入指定 profile,按需处理 pnpm 构建白名单或改用 tarball。
  2. 在 Settings → Plugins → Completo 查看九个 skill 与五个 MCP 的开关;默认仅 Playwright 开启,适合「改代码 → 浏览器里看结果」的闭环。
  3. 对话中用口语描述阶段目标(写 spec、起 React+Vite 工程、live preview、发布前清单等),或写明 skill 名。
  4. 若要 GitHub、Postgres、Context7 等 MCP,先在运行环境中配置对应环境变量,再在 patch 或管理页中显式打开——README 强调带账号或外网依赖的 MCP 默认关闭,避免安装主题时顺带打开敏感能力。

适用场景与注意

适合谁: 已在 DSH 0.2.2-rc.1 及以上(且 <0.3.0)上做多轮构建的开发者;希望一套安装里同时有主题、构建流程 skill 和可选浏览器 MCP,而不是自己拼 profile。

权限与安全: DSH 插件与 MCP 以当前 harness 进程权限运行;安装前应阅读仓库源码与 MIT 许可证。Completo 不把 API key 写进 bundle;Playwright 首次运行会下载 Chromium。GitHub MCP 等需要 token 与文档所述依赖(如 Docker)。

生态说明: DSH 主张「一切皆插件」;SkillHub 社区目录(https://www.skillhub.cn/plugins/itsnotalwin/dsh-completo)为独立站点,并非 DeepSeek 官方应用商店。

结尾

dsh-completo 把主题、九个构建循环 skill 和五个可裁剪的 MCP 收成同一个 profile bundle,默认开着 Playwright,让「写出来并看见页面」成为主路径。需要细节、截图与限制说明时,以仓库 README 为准。

  • 社区目录:https://www.skillhub.cn/plugins/itsnotalwin/dsh-completo
  • 源码与文档:https://github.com/itsnotalwin/dsh-completo
羽毛球分组比赛记分
小程序二维码

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

Xiaoye