Introduction¶
When performing code development tasks in DSH, a common practice is manually switching to plan mode, allowing the model to propose an implementation plan first, and then starting code changes after user confirmation. dsh-plan-first-dev makes this workflow the default behavior for new sessions: code development tasks first enter plan mode, generate a complete plan, and wait for exit_plan_mode approval; non-development tasks can exit plan mode directly via no_plan_required to execute immediately.
Below, based on verified information, I introduce its features, installation methods, configuration options, and applicable scenarios.
What is this¶
dsh-plan-first-dev is a DeepSeek Harness (DSH) plugin used for “automatically entering plan mode before development.” The repository maintainer is asd176916847, and the license is MIT.
It is installed as a profile layer via the dsh.bundle.patch mechanism, primarily doing three things:
- Automatically enabling plan mode when a new session is created;
- Overriding the plan-mode
section, requiring code development tasks to submit a complete implementation plan first; - Appending plan-first development workflow persona instructions and registering the
no_plan_requiredtool for non-development tasks to exit.
This plugin depends on DSH’s built-in @deepseek-ai/dsh-plan-mode, which is installed with dsh and requires no extra installation. Verified information also lists the following 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
Core Features¶
1. Automatically entering plan mode on new sessions¶
The plugin listens to the agent/created event and calls:
planMode.set(agent, true)
The triggering rules are:
- Plan mode is automatically enabled when the session has never had a
plan/modeevent; - If the user has previously actively
/plan offor switched modes, the user’s choice is not overridden.
In other words, it defaults to serving new sessions without forcibly overriding the user’s previous mode choices.
2. Ability to disable automatic enabling¶
If you only want to keep the instruction layer reinforcement and do not want new sessions to automatically enter plan mode, you can disable it via configuration:
- id: plan-first-dev
config:
defaultOn: false
After disabling, the plugin still retains plan-first related instruction layer constraints but will no longer automatically enable plan mode.
3. Code development tasks must submit a complete plan first¶
The plugin overrides the plan-mode section, requiring code development tasks to submit a complete implementation plan first. The plan contents listed in verified information include:
- Architecture;
- Changed files;
- API/schema changes;
- Edge cases;
- Testing and acceptance criteria.
After the plan is approved, the user submits approval via exit_plan_mode, and only then can coding begin.
4. Appending plan-first workflow instructions¶
The plugin appends plan-first development workflow persona instructions, instructing the model to organize code development tasks in the “plan first, implement later” manner.
5. Non-development tasks automatically exit plan mode¶
The plugin registers the no_plan_required tool. When the model determines that the request is not a code development task (e.g., writing, PPT, data analysis, Q&A), it can call this tool.
After receiving the call, the plugin automatically exits plan mode, and the task executes directly without a plan or review.
Here it is important to note: the task type is determined by the model, not keyword matching. Exempt behavior is identified by the plugin through the no_plan_required tool call.
Installation and Activation¶
The installation command from verified information is as follows:
dsh plugin --profile web add "github:<owner>/dsh-plan-first-dev"
The <owner> in the command is a placeholder and can be replaced by combining it with the repository address.
After installation, you need to restart dsh web, or restart the desktop app and let it relaunch the service for the plugin configuration to take effect.
To verify, run:
dsh web --dump-config
Check the plan-mode, system-prompt, and plan-first-dev lines in the combined configuration tree to confirm the plugin has been added to the current profile’s configuration combination.
Typical Usage¶
The workflow loop for code development tasks is as follows:
- New session created;
- Plugin automatically enters plan mode;
- Model outputs a complete implementation plan first;
- Submit for user review via
exit_plan_mode; - Start implementation after user approval.
The workflow for non-development tasks is as follows:
- User submits a request for writing, PPT, data analysis, Q&A, etc.;
- Model determines that the request is not a code development task;
- Call
no_plan_required; - Plugin automatically exits plan mode;
- Task executes directly.
If you want to retain instruction layer constraints but disable automatic entry into plan mode, you can use:
- id: plan-first-dev
config:
defaultOn: false
Applicable Scenarios and Notes¶
This plugin is suitable for use in the DSH web profile, especially for users who want code development tasks to default to “plan first, implement later.” If you want complete manual control over plan mode, you can set defaultOn to false.
Pay attention to the following points when using:
- The plugin overrides the plan-mode
sectionand appends persona instructions; - The plugin registers the
no_plan_requiredtool, and non-development task exit relies on the model’s judgment; - Task type is not keyword matching; actual behavior depends on the model’s judgment of the current request;
- The plugin runs with the current
dshprocess permissions; it is recommended to check the source code, dependencies, and MIT license before installation; - Current verified information does not explicitly provide the number of stars, category, or directory page URL.
Links¶
GitHub:
https://github.com/asd176916847/dsh-plan-first-dev
Directory page:
The current verified information does not provide a directory page URL.