Preface¶
In DSH (DeepSeek Harness), when letting models directly modify code or execute commands, common failures often stem not from the model “not knowing how to do it,” but from discovering after completion that the results don’t match your expectations. Verbal requirements often lack goals, scope, constraints, or acceptance criteria. The model fills in the gaps based on its own understanding, leading to high costs for subsequent rework.
The community plugin dsh-grill-first (maintainer InoriMutsumi) turns “clarify first, then start” into a configurable workflow: for new tasks, it first determines if clarification is needed, follows up with multiple rounds of questioning if necessary, organizes the requirements into a four-section checklist for your confirmation, and only proceeds with the main task after confirmation. See the directory page at SkillHub, and the source code and documentation at GitHub (MIT, current package version 0.1.1).
What is this¶
dsh-grill-first is a DSH plugin: it inserts a requirements clarification step before starting any new task, turning vague tasks into executable and acceptable clear requirements; only after you confirm in the conversation does the current task proceed.
Unlike relying solely on a prompt in the system message asking to “please ask questions first,” this plugin injects a Chinese protocol segment (approx. 600 characters, with the visible marker 【开工前提问协议(grill-first)】) into the system prompt and registers two tools: grill_start and grill_confirm. Under gateMode: "strict", it can intercept modification operations such as file writing and command execution before requirements are confirmed. Small tasks that can be explained in one sentence, or messages containing skip keywords, will not be interrupted.
Workflow¶
Once installed, no additional operation is required; the model should call grill_start first when receiving a new task. The steps below follow the order described in the README.
- Determination:
grill_startjudges whether clarification is needed based on the original task text and returnsverdict,focus_hints(what to ask), andmemory_context(known preferences to reduce redundant questions). - Follow-up Questions: If the task is vague, it asks questions in rounds. By default, it asks a maximum of 3 questions per round and up to 3 rounds total, digging deeper based on the previous round’s answers (specific limits refer to configuration).
- Summary and Confirmation: After clarification, it organizes the requirements into a Chinese four-section checklist (Goals / Scope / Constraints / Acceptance Criteria) and asks for your confirmation via
grill_confirm. - Pass or Revise: Choosing “Confirmed, proceed accordingly” allows the current task to proceed, and the confirmed content can be written to memory; choosing “Needs changes” leads to revisions based on feedback followed by another confirmation.
- Skip: If the message contains any of “直接做” (do it directly), “跳过提问” (skip questions), “不用问” (no need to ask), or “skip”, the task starts immediately; you can also disable the plugin in configuration or set
gateModetooff.
Under the strict mode, the model cannot execute modification tools before confirmation, mechanically guaranteeing “no action without clarification.” The default gateMode is warn (logs only) to avoid suddenly blocking existing workflows after an upgrade; for a hard gate, you must manually change it to strict.
Installation and Activation¶
Please exit any running tasks before installation. The plugin runs with the permissions of the current DSH process; you should review the repository source code and MIT license yourself before installing.
Method 1: DSH Plugin Market (Recommended)
Search for dsh-grill-first in DSH Settings → Plugins for one-click installation.
Method 2: npm Command Line
dsh plugin --profile <your profile name> add dsh-grill-first
Method 3: Local Package / GitHub Repository
dsh plugin --profile <your profile name> add /absolute/path/to/dsh-grill-first-0.1.1.tgz
dsh plugin --profile <your profile name> add github:InoriMutsumi/dsh-grill-first
Effective immediately after installation: Local testing shows that the live profile hot-loads new plugins, generally requiring no restart; if the profile is startup-type or the plugin doesn’t appear in the list, completely exit DSH and reopen it. Changes to package code require a DSH restart; configuration changes in cordis.patch.yml can take effect dynamically. The currently running version can be checked by calling grill_start and viewing the version field in the return.
Configuration¶
DSH Settings → Plugins → dsh-grill-first provides enable/disable options; the remaining 7 items require editing the profile patch layer cordis.patch.yml (the client plugin page does not render third-party configuration forms). Changes take effect after restarting DSH; you only need to write the items you intend to change.
| Config | Type | Default | Description |
|---|---|---|---|
enabled |
Boolean | true |
Master switch |
gateMode |
off / warn / strict |
warn |
Whether to intercept modification tools when unconfirmed |
maxQuestionsPerRound |
1-6 | 3 |
Max questions per round |
maxRounds |
1-10 | 3 |
Max follow-up rounds |
intensity |
gentle / standard / grill |
standard |
Follow-up intensity |
bypassKeywords |
String Array | ["直接做","跳过提问","不用问","skip"] |
Keywords to trigger question skip |
memoryEnabled |
Boolean | true |
Whether to enable two-layer memory |
Example patch:
# <profile directory>/cordis.patch.yml
- id: dsh-grill-first
name: dsh-grill-first
config:
gateMode: strict # off | warn | strict
maxQuestionsPerRound: 3 # 1-6
maxRounds: 3 # 1-10
intensity: standard # gentle | standard | grill
memoryEnabled: true
bypassKeywords: [直接做, 跳过提问, 不用问, skip]
Two-Layer Memory¶
It only records content you have confirmed, does not record conversation raw text, and does not write the requirements checklist to a file.
| Layer | Location | Content |
|---|---|---|
| Global Layer | <profile directory>/grill-first/global.json (falls back to ~/.dsh-grill-first/global.json if not writable) |
General preferences |
| Project Layer | <workspace>/.dsh/grill-first/memory.json |
Project background, task history (Task Name + Requirements Summary + Date) |
The next grill_start will return the above content as memory_context to avoid redundant questioning. Memory is local JSON with no encryption; deleting the corresponding file clears it.
Use Cases and Notes¶
Suitable for: DSH users who often pass requirements verbally and want a structured confirmation checklist before starting; those who need strict gating to prevent the model from preemptively modifying the repository.
Known Limitations (Excerpted from README):
- The gate only applies to the root agent; it does not intercept sub-agents or team members. Delegation tools (such as
subagent,workflow,spawn_teammate) are also blocked before confirmation to prevent bypassing the gate. - The
warnmode only logs; it cannot provide additional hints to the model while intercepting (limited by thetools/pre-executeevent shape). grill_confirmprioritizes the DSH structured questioning channel; if unavailable, it returnsneeds_user_confirmation: true, and the model falls back to using built-in questioning tools.- English skip words are matched by word boundaries (e.g.,
skipdoes not matchskipList); Chinese is matched by substring.
Validated host versions include 0.2.0-rc.2, 0.2.1-rc.2. The plugin does not declare engines.dsh or @deepseek-ai/dsh peers; generally, upgrading DSH does not require changing plugin code; the only peer is @deepseek-ai/schemastery (^3.18.1).
Conclusion¶
dsh-grill-first turns “dig deep before starting” into protocol injection, a dual-tool workflow, and optional strict gating. It is gentle by default, skippable, and can be turned off. When needed, set gateMode to strict and utilize the two-layer memory to reduce redundant questioning.
- Community Directory: https://www.skillhub.cn/plugins/InoriMutsumi/dsh-grill-first
- Repository & Full Documentation: https://github.com/InoriMutsumi/dsh-grill-first
SkillHub is a community plugin directory and has no official affiliation with DeepSeek / High-Flyer; the DSH ecosystem philosophy is “everything is a plugin,” allowing third-party extensions to be installed via the market or command line as needed.