前言¶
在 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。