# dsh-weneedfirst English | [中文](README.zh.md) A [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH) plugin that shapes the model's **chain of thought**. It registers a global system-prompt section instructing the model to adopt a role that fits the conversation, think in **English**, and open every reasoning block with **"We need"**. 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 ```sh # 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-weneedfirst ``` 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 ```sh dsh plugin --profile web update dsh-weneedfirst ``` 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 opening phrase is configurable in your profile's `cordis.patch.yml`: | Config | Default | Meaning | |---|---|---| | `openingPhrase` | `We need` | The phrase every chain-of-thought block must open with. | ```yaml # your profile's cordis.patch.yml - id: we-need-first config: openingPhrase: "We need" ``` ## Development ```sh # syntax check node --check lib/index.js ``` 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