dsh-plan-first-dev:开发前自动进入 plan mode 的 DSH 插件

前言

在 DSH 中处理代码开发任务时,常见做法是手动切换到 plan mode,让模型先给出实现方案,经用户确认后再开始改代码。dsh-plan-first-dev 把这个流程做成新会话的默认行为:代码开发任务先进入 plan mode,产出完整方案并等待 exit_plan_mode 审批;非开发任务则可通过 no_plan_required 退出 plan mode,直接执行。

下面基于已核实资料介绍它的功能、安装方式、配置项和适用场景。

这是什么

dsh-plan-first-dev 是一个 DeepSeek Harness(DSH)插件,用于“开发前自动进入 plan mode”。仓库维护者是 asd176916847,许可证为 MIT。

它通过 dsh.bundle.patch 机制作为 profile 层安装,主要做三件事:

  • 在新会话创建时自动开启 plan mode;
  • 覆盖 plan-mode 的 section,要求开发任务先提交完整实现方案;
  • 追加 plan-first 开发工作流 persona 指令,并注册 no_plan_required 工具用于非开发任务退出。

该插件依赖 DSH 内置的 @deepseek-ai/dsh-plan-mode,官方插件随 dsh 安装,无需额外安装。已核实资料还给出以下 peerDependencies:

@deepseek-ai/dsh-plan-mode ^0.1.0-rc.6
@deepseek-ai/dsh-tools ^0.1.0-rc.6
@deepseek-ai/cordis ^4.0.1

核心功能

1、新会话自动进入 plan mode

插件监听 agent/created 事件,并调用:

planMode.set(agent, true)

触发规则是:

  • 会话从未出现过 plan/mode 事件时,自动开启 plan mode;
  • 用户曾主动 /plan off 或切换过模式时,不覆盖用户选择。

也就是说,它默认服务新会话,不强行覆盖用户已经做过的模式选择。

2、可以关闭自动开启

如果只想保留指令层强化,不希望新会话自动进入 plan mode,可以通过配置关闭:

- id: plan-first-dev
  config:
    defaultOn: false

关闭后,插件仍保留 plan-first 相关的指令层约束,但不再自动开启 plan mode。

3、开发任务必须先提交完整方案

插件覆盖 plan-mode 的 section,要求代码开发任务先提交完整实现方案。已核实资料中列出的方案内容包括:

  • 架构;
  • 改动文件;
  • API/schema 变更;
  • 边界情况;
  • 测试与验收标准。

方案通过后,再通过 exit_plan_mode 提交用户批准,批准后才可以开始写代码。

4、追加 plan-first 工作流指令

插件会追加 plan-first 开发工作流 persona 指令,让模型按照“先方案、后实现”的方式组织代码开发任务。

5、非开发任务自动退出 plan mode

插件注册 no_plan_required 工具。当模型判断请求不是代码开发任务时,例如写作、PPT、数据分析、问答等,可以调用该工具。

插件收到调用后自动退出 plan mode,任务直接执行,无需方案与审核。

这里需要注意:任务类型由模型判断,不是关键词匹配。豁免行为通过 no_plan_required 工具调用被插件识别。

安装与启用

已核实资料中的安装命令如下:

dsh plugin --profile web add "github:<owner>/dsh-plan-first-dev"

命令中的 <owner> 为占位符,可结合仓库地址替换。

安装后需要重启 dsh web,或者重启桌面端并让其重新拉起服务,插件配置才会生效。

验证时运行:

dsh web --dump-config

查看组合配置树中的 plan-modesystem-promptplan-first-dev 行,确认插件已经进入当前 profile 的配置组合。

典型用法

代码开发任务的工作闭环如下:

1、新会话创建;
2、插件自动进入 plan mode;
3、模型先输出完整实现方案;
4、通过 exit_plan_mode 提交用户审核;
5、用户批准后开始实施。

非开发任务的流程如下:

1、用户提出写作、PPT、数据分析、问答等请求;
2、模型判断该请求不是代码开发任务;
3、调用 no_plan_required
4、插件自动退出 plan mode;
5、任务直接执行。

如果希望保留指令层约束,但关闭自动进入 plan mode,可以使用:

- id: plan-first-dev
  config:
    defaultOn: false

适用场景与注意

这个插件适合在 DSH 的 web profile 中使用,尤其适合希望代码开发任务默认“先方案、后实现”的用户。如果希望完全手动控制 plan mode,可以将 defaultOn 设置为 false

使用时注意以下几点:

  • 插件会覆盖 plan-mode 的 section,并追加 persona 指令;
  • 插件会注册 no_plan_required 工具,非开发任务退出依赖模型判断;
  • 任务类型不是关键词匹配,实际行为取决于模型对当前请求的判断;
  • 插件以当前 dsh 进程权限运行,安装前建议检查源码、依赖关系和 MIT 许可证;
  • 当前核实资料未明确给出星标数、分类和目录页 URL。

链接

GitHub:

https://github.com/asd176916847/dsh-plan-first-dev

目录页:

当前核实资料未给出目录页 URL。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye