前言¶
在 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-mode、system-prompt 与 plan-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。