dsh-we-need-first
English | 中文
A DeepSeek Harness (DSH)
plugin that changes how the model opens its chain of thought. DeepSeek
reasoning models habitually begin their thinking with "Let me"; this plugin
registers a global system-prompt section that instructs the model to open every
reasoning block with "We need" instead.
There is no build step and no extra runtime state — the plugin contributes one
prompt section to the systemPrompt registry and does nothing else.
Install
# from GitHub (works immediately — no npm publish required)
dsh plugin --profile web add git+https://github.com/XiaoWind/dsh-WeNeedFirst.git
# or from npm, once published
dsh plugin --profile web add dsh-we-need-first
The dsh plugin command forwards to pnpm inside the web profile directory,
then reconciles the profile's dsh.profile.bundles layer list. Because this
package declares dsh.bundle.patch, it joins the layer stack automatically.
Restart the Web app after installing.
The plugin injects the systemPrompt service, so it activates in every
profile that composes a system prompt — the shipped web profile does.
Update
dsh plugin --profile web update dsh-we-need-first
Restart the Web app after updating — the bundle layer is composed at boot, so a
running Web process does not hot-reload an installed plugin.
Configuration
The instruction is generated from two phrases, both configurable in your
profile's cordis.patch.yml:
| Config | Default | Meaning |
|---|
openingPhrase | We need | The phrase every chain-of-thought block must open with. |
avoidPhrase | Let me | The phrase the model is told to stop using as its opening. |
# your profile's cordis.patch.yml
- id: we-need-first
config:
openingPhrase: "We need"
avoidPhrase: "Let me"
Development
# syntax check
node --check lib/index.js
# unit tests
node --test test/
The plugin is a single-file ESM Cordis function plugin (lib/index.js). It
exports apply, inject, and name, and the bundle layer cordis.patch.yml
inserts it into the profile composition.
License
MIT