Introduction¶
The common pitfall in prompt engineering isn’t a lack of length, but a lack of precision: while the idea in your head might be “Help me get something that auto-replies to comments,” translating that into a prompt often leaves you unsure whether to use “Classification” or “Review,” let alone the skeleton of “Goal/Background/Constraints/Acceptance.” Throwing a rough spoken draft directly at the model usually results in another piece of spoken text.
DeepSeek Harness (DSH) plugin ffffffcn/dsh-intent-translator is designed to handle this step. It does not complete the task for you; instead, it rewrites your draft into a structured, terminology-accurate prompt before sending and tells you what your phrasing corresponds to in professional terms. Below is an introduction to its capabilities, installation method, and usage.
What is this¶
One-sentence positioning: A DSH plugin that rewrites a colloquial draft into a professional prompt organized by “Goal/Background/Specific Requirements/Constraints/Deliverables/Acceptance,” while also providing a comparison between the original phrasing and professional terminology.
- Maintainer: FFFFFFcn
- Path: The Host side registers a same-origin route
/intent-translator/api, invoking your configured model router for an auxiliary model call; the Client side adds a “Translate” button to the left of the input box toolbar, using a native<dialog>to display the results. - The plugin declares
dsh.bundleanddsh.client, has no runtime dependencies, no install script, and no build artifacts; it can be installed directly from source code. - Category: Model inference; License: MIT.
Core Features¶
The README clearly states that the plugin does not complete the task for you, only rewrites the expression, focusing on four areas:
- Full Translation: Rewrites the draft into a prompt ready to be sent, organized by “Goal/Background/Specific Requirements/Constraints/Deliverables/Acceptance”; missing key information is written as “to be confirmed” rather than made up for you.
- Term Mapping: Selects 2-5 places from the original text and provides “Original Phrasing → Professional Terminology” + an explanation of why it is more accurate.
- Assumption List: Lists the key understandings the model made to complete the prompt at the bottom, making it easy for you to discover and correct deviations.
- Term Lookup Mode: Input a vague description, directly returns 3-6 professional terms (including domain, explanation, and example sentences), without rewriting the entire prompt. Suitable for figuring out first “how professionals say this thing.”
The terminology source is not an external dictionary, but the model generated according to the plugin’s built-in rewriting rules; the README explicitly states “when uncertain, better not to provide, to avoid coining terms.”
Installation and Enabling¶
The installation method provided by the README is binary choice, not providing dsh plugin add form command:
# Method 1: Search this repository in the plugin market (e.g., dsh-market), or use the install command generated by the market to install from GitHub
# Method 2: Install as a bundle during local development
plugin_manager({ action: "install_bundle", target: "<repository path>" })
After installation, refresh the page, a “Translate” button will appear on the left of the input box toolbar. Uninstall using remove_bundle. The repository can be installed directly from source code without build steps.
Typical Usage¶
The four-step operation from the README:
- Write your current thoughts in the input box, no need to organize language, nor care about being professional.
- Click the “Translate” button on the left of the input box toolbar.
- Select “Full Request” and click “Translate to Professional Prompt”.
- View the result: the top block is the professional prompt, the middle is term mapping, the bottom is assumptions.
Operations in the result area: The icon in the top right can copy; clicking “Replace Input Box” writes the result back to the draft, no clicking means no content is changed.
When you haven’t decided how to write in the dialog, the plugin provides a few examples; clicking one fills it in.
“Term Lookup” Mode¶
Switch to “Term Lookup” in the dialog, input a vague description, directly get 3-6 professional terms, won’t rewrite the whole prompt. This mode has tighter input limits: body text 600 chars, full translation 4000 chars.
Optional Configuration¶
Can be used without changing config. If you want to specify a model, add config in the plugin line of cordis.patch.yml:
- insert:
- id: intent-translator
name: '@ffffffcn/dsh-intent-translator'
config:
provider: deepseek # optional; only effective when given together with model
model: deepseek-flash # uses default model when unspecified
maxInputChars: 4000
maxTermsInputChars: 600
timeoutMs: 60000
temperature: 0.4
promptMaxTokens: 2400
termsMaxTokens: 1200
maxConcurrent: 2
provider and model must appear together; the README explicitly states that providing only one will be ignored and fall back to the default model. The default model takes “New Session Default Model” and can also be specified here.
Applicable Scenarios and Notes¶
Suitable scenarios: drafts written casually, but hoping the prompt sent to the model has complete structure and accurate terminology; and when unsure what professional expression to use for a vague statement and want to check first. The entire interaction is done on the input box side, no need to change the command line.
A few things to note, all from the “Security and Boundaries” section of the README:
- Permissions and Data Transmission: The plugin runs with the current dsh process permissions; the original text you submit will be sent to the provider of the current model router, just like a normal conversation. It is recommended to read the source code (all files like
index.js,core.js,client.jsare in the repo, no build artifacts, can be viewed directly) and confirm the MIT license before installing. - No Disk Persistence: The plugin itself does not write to disk; server logs only record failure codes, not the original text or model output.
- No Auto-Sending: It will not automatically send messages or silently rewrite drafts; the draft is only changed by clicking “Replace Input Box”.
- Consumes Tokens: Each translation invokes the current model once, generating a small amount of token consumption, which is charged according to your existing model router.
- Failure Fallback: When the model does not return a JSON structure, the dialog displays the original text directly with a note “Model did not return according to structure, here is the original text”; corresponding prompts exist for request timeout, model unavailable, and page session invalidation.
- Request Boundaries: The router only accepts
POST, and callsctx.connection.requestRejectionfor Host/Origin verification and browser authentication; requests failing authentication return 401/403; request body limit is 64 KiB, body text limit is 4000 chars (Term Lookup 600 chars), with a maximum of 2 translations running at once.
Summary¶
This plugin has a narrow value: it does not generate content, does not do task planning, only translates “what you wrote” into “an expression easier for the model to execute correctly,” and conveniently tells you how to say it professionally. If you often get stuck on terminology and structure when writing prompts by hand, and don’t want to check documentation every time, it is worth installing and trying.
- Directory page: https://www.skillhub.cn/plugins/FFFFFFcn/dsh-intent-translator
- Repository: https://github.com/FFFFFFcn/dsh-intent-translator
The community directory is an independent site and has no official affiliation with DeepSeek or HF.