dsh-code-pipeline:分阶段模型协作的 DSH 代码开发流水线

前言

在 DSH 里改代码,常见做法是单会话里让一个模型既规划又改文件又自评,步骤混在一起,出了问题也难对照「当时定了什么标准、谁审的、审了什么证据」。DeepSeek Harness 社区里把工作流做成插件是常态;dsh-code-pipeline(维护者 DDTTomTom,分类:工作流)把 Sol、Opus、DeepSeek 拆成定向、规划、设计、执行、复核等环节,用子会话跑完一轮,并在窗口内提供进度浮窗与逐环节模型设置。下面介绍它是什么、怎么装、日常怎么用,以及实验版里需要留意的边界。

这是什么

dsh-code-pipeline 是挂在 DSH Host 上的代码任务工具与路由提示(README 标注为实验版)。新会话收到明确要求修改代码的指令时,默认会走 code_pipeline;纯讨论、解释和只读审查默认不调用。插件不读取、不存储 API 密钥,模型走 DSH 已配置的 adapter 与凭据;当前执行线路示例为 deepseek-account/deepseek-flash,依赖 DSH 中的 DeepSeek 账号登录,而非单独的 DeepSeek API Key。

社区目录页:dsh-code-pipeline。源码与说明:GitHub - DDTomTom/dsh-code-pipeline(package.json 版本 0.11.0)。目录页星标为 0,与 README 一致,此处不展开用户评价。

核心功能

分阶段流水线

各阶段通过 DSH 原生 spawn 子会话完成,工具结果只返回有界摘要和子会话 ID,长日志留在 DSH 会话里。流程概要如下:

  1. Sol 定向:整理原始目标、完成标准、风险和歧义;重大歧义则停止并向用户确认。
  2. 复杂任务:Opus 只读规划 → Sol 只读设计;简单路径可跳过定向/规划/设计(见下文 mode)。
  3. DeepSeek Flash 执行:运行合适检查;原始「合同」不由执行器重写。
  4. 复核:简单/中风险由 Sol 只读复核,高风险或复杂任务由 Opus 只读复核;审查者只能用只读文件工具,须实际读文件并提交证据。总控另跑 git diff --check 并记录退出码;若用户原始任务里明确写了 node --test 等支持的测试命令,可传给 checkCommand,checkWorkdir 也必须在原始任务中明确出现——未指定时只做 Git 差异空白检查,不替代功能测试。执行后、复核前,总控还会在 checkWorkdir(未给则会话目录)采集 git status --porcelain -uall、git diff --stat HEAD 与 HEAD 提交,交给只读复核者核对约束;非 Git 目录会如实说明无法提供。
  5. 有限返工:一次局部返工仍不通过则停止,并留下各阶段会话 ID。用户显式要求时可传 escalation=fable|astra,在常规返工失败后再走 Fable(anthropic/latest-fable)或 Astra(openai/gpt-6-astra)只读诊断,再交 DeepSeek 最后一次返工与独立验收;线路不可用则返回 not_verified。

模型路由默认写在包内 cordis.patch.yml;latest-opus 在每次调用时从 Anthropic 模型目录里取 ID 字典序最后的 claude-opus-*。UI 上的 DeepSeek「1017」标签对应实际模型 ID deepseek-flash。

会话内模式与会话级覆盖

在输入框发送人类命令可切换流水线行为(不消耗模型 token,按会话写入 ~/.dsh/code-pipeline/session-modes.json,重启后保留):

  • /pipeline off:关闭,不注入任何提示
  • /pipeline auto:自动判断(默认)
  • /pipeline always:每轮都用
  • /pipeline manual:待启动,只讨论,明确说开始后才执行
  • /pipeline status:查看当前模式
  • /pipeline routes:逐条检查各阶段模型线路能否在模型目录中解析(不发起模型调用)

浮窗底部滑块改的是全局默认(存 ~/.dsh/code-pipeline/default-mode.json,三档:关闭 / 自动判断 / 每次都用);/pipeline 是对单个会话的覆盖。

调用 code_pipeline 时还可指定 mode=auto|simple|complex:simple 不调用定向/规划/设计;complex 强制 Opus 规划;auto 先由 Sol 定向分类。

进度浮窗与设置

装好后 DSH 窗口右下角出现白底浮窗(shell.overlay),Host 路由 GET /dsh-code-pipeline/state 供轮询(运行中约每秒,空闲约 5 秒,页面隐藏时暂停)。每个阶段一行:状态、步骤名、实际解析后的模型 ID、耗时;本地的「采集仓库事实」「独立检查」单独成行。运行结束显示最终状态(通过 / 未经机器验证 / 未通过 / 中断等)与原因。

  • 齿轮:八个环节各自选模型与推理等级,保存后写入 ~/.dsh/code-pipeline/routes.json,只提交改过的环节,其余仍跟 cordis.patch.yml 默认。
  • 地球图标:面板中英双语,语言记在浏览器 localStorage(键 dsh-code-pipeline:lang)。
  • ☰ 历史:运行结果写入 ~/.dsh/code-pipeline/history.json(最多 50 条)。
  • 总结:把当前运行翻成两三句白话,走 summarize 线路(默认同为 deepseek-account/deepseek-flash),POST /dsh-code-pipeline/summarize。

每个环节前有勾选框,取消勾选可跳过该环节;Fable 与 Astra 已合并为一个「诊断」环节。

限制与安全边界(必读)

插件以当前 DSH 进程权限运行;执行器虽限制无关工具,但 ops_bash 仍可执行任意命令,不是可靠的路径或网络安全沙箱。状态 reviewed_with_check 表示审查读文件与独立检查退出码为 0;未提供明确测试命令时,默认 git diff --check 不代表功能已通过。单次运行 20 分钟会询问是否继续,另有 120 分钟分段上限与两次询问上限;可随时点浮窗「终止」。任务级预算、跨重启检查点、原生 UI 面板 README 写明尚未实现。

安装与启用

前提:已安装 DeepSeek Harness(桌面版或 web 版 profile),DSH ≥ 0.2.1-rc.2,并在 DSH 里配置好模型线路。包依赖 Node.js 18+(测试用内置 node:test),无第三方 npm 依赖。

README 给出的步骤如下。

  1. 取得本仓库目录(示例为 clone):
git clone https://github.com/DDTomTom/dsh-code-pipeline.git
  1. 在 DSH 会话里用插件管理器以 bundle 安装该目录(目标填绝对路径),例如:
plugin_manager → action: install_bundle → target: /绝对路径/dsh-code-pipeline

也可把 bundle 放进 profile 依赖后重启 DSH。

  1. 装完刷新页面;浮窗应出现在右下角。若首次未见浮窗,可重启 DSH 桌面版一次。
  2. 打开浮窗齿轮,把八个环节的模型改成你账号可用的线路(默认指向 OpenAI / Anthropic / DeepSeek 账号线路)。

卸载:插件管理器移除 @local/dsh-code-pipeline,并自行删除 ~/.dsh/code-pipeline/ 下的配置与状态文件。

典型用法

  1. 完成安装并在齿轮里保存各阶段模型与推理等级。
  2. 将浮窗滑块设为「自动判断」或按需改为「每次都用」;若只想某一会话行为不同,用 /pipeline 命令覆盖。
  3. 在新会话中给出明确要求改代码的任务;需要时在任务正文里写清完成标准、是否允许新增文件、以及要跑的检查命令(例如 node --test)与工作目录。
  4. 观察浮窗各阶段状态;点步骤行可展开该阶段结论(定向标准、规划、设计、执行报告、复核证据等,单段上限约 2400 字符)。
  5. 运行结束后用「总结」生成白话结论,或在 ☰ 历史里对比多次运行。

开发者在包目录可跑:

npm test

对应 node --test test/*.test.js。

适用场景与注意

更适合:希望在 DSH 内把「定标准 → 规划/设计 → 执行 → 独立只读复核 → 有限返工」固定成可观测流水线,且愿意维护多模型线路(Sol / Opus / DeepSeek 及可选诊断线路)的用户。

使用前请自行核对:安装前阅读 GitHub 源码与仓库许可证说明;插件不代替宿主的工作区、权限与沙箱策略。模型目录能解析不等于账号可用,首次真实请求仍可能因余额、配额或凭据失败;浮窗底栏「功能状态」会结合最近一次运行结论显示红/黄/绿。

结尾

dsh-code-pipeline 把多模型分阶段协作、独立验收和进度可视化收进一个 DSH 工作流插件,适合在 Host 里做结构化改码而不是单轮「全包」。细节以 README 为准:

  • 目录页:https://www.skillhub.cn/plugins/DDTomTom/dsh-code-pipeline
  • GitHub:https://github.com/DDTomTom/dsh-code-pipeline
羽毛球分组比赛记分
小程序二维码

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

小夜