qifenglun1/dsh-prompt ↗★ 0

dsh-prompt

Scene Prompt Flow for DeepSeek Harness: 55 preset subscenes across 10 categories, a legal workflow scene, left-library reorder with drag/move/reset/cancel, a prompt-flow generator meta scene, structured JSON import, and a searchable template library and composer picker.

包名
dsh-prompt
兼容性
待验证
Harness 依赖范围
>=0.2.1-rc.2 <0.3.0
版本
2.0.0
许可证
MIT
最近更新
2026年10月30日

同名包的其他仓库

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:qifenglun1/dsh-prompt

Configuration

The plugin has no Config schema and no required settings. There is no API key, token, password, endpoint, or model selection to configure.

SettingWhere
TemplatesManaged in the library panel or the template editor.
ScenesCreated with New scene or by typing a new scene in the template editor; custom scenes can be renamed or deleted with Manage scenes.
Scene prompt flowShown above the composer in a blank new session; 10 work category capsules select or clear a category. Workplace Writing has 10 cards; Legal Workflow and the other 8 categories have 5. Scene and card order are adjusted from the left library's Reorder dialog; the new-session area only reflects the saved order. The Prompt Flow Generator is a dedicated strip at the top of the left library.
Scene System PromptWork preset prompts and the generator prompt are fixed in the catalog. Custom scenes can add optional extra instructions with Manage scenes → System Prompt. Selecting a category alone, leaving a custom prompt empty, or not choosing a category adds none.
LanguageFollows the DSH language setting (English or 简体中文).
Built-in templates55 work presets plus 1 generator; Save as mine creates an editable copy of the starter prompt.
Generated scenesUse Import generated scene in the library, paste the generator JSON, preview, and confirm.

Browser storage

Templates, scenes, and scene System Prompts are stored in the Harness Web origin's localStorage:

  • dsh.prompt-library.templates.v1 — user templates.
  • dsh.prompt-library.categories.v1 — scene names that exist independently of templates. When this key is missing, scene names already used by saved templates are migrated into it.
  • dsh.prompt-library.scene-prompts.v1 — custom scene System Prompts.
  • dsh.prompt-library.scene-selection.v1 — the last scene selected per Session; a UI hint only.
  • dsh.prompt-library.scene-order.v1 — custom scene order set from the left library's Reorder dialog.
  • dsh.prompt-library.card-order.v1 — custom card order per scene set from the same dialog.

localStorage is scoped to the Web origin. A different origin, browser profile, or cleared browser storage has separate data. The plugin does not write templates to the session log, does not send data to a server, and does not read credentials. Applying a scene System Prompt uses an internal Session command, so the selected scene prompt is also recorded in that Session's command log for restore; it does not create a model message. When you send a message, its text reaches your configured model through DSH as usual.

Usage

Sidebar library

  1. Click the bookmark entry in the left sidebar.
  2. Search by title, text, or scene, or choose a scene chip.
  3. Choose Insert to put the template into the current draft, Copy to copy it, or Save as mine to duplicate a built-in template.
  4. Use New scene to create a scene before it has templates; use Manage scenes to rename or delete custom scenes.
  5. Use the back arrow in the panel header to return to the conversation.

Composer picker

  1. Click the bookmark button in the composer's left tool row.
  2. In a new, empty conversation the picker opens as a centered dialog, so the search field is always visible; in an active conversation it opens above the composer.
  3. Search for a template. Use the arrow keys to move and Enter to insert, or click a row.
  4. The template is inserted at the caret (or replaces the current selection).

Scene prompt flow (blank new session)

  1. Start a new, empty conversation. Above the composer, 10 work category capsules appear in one horizontal row; no category is selected and no cards are shown initially.
  2. Choose a category capsule to reveal its five subscene cards. Click the selected capsule again to clear the category and hide its cards; selecting a category alone adds no extra instructions. Clicking a subscene card applies its dedicated System Prompt and inserts its starter prompt. Custom templates whose category matches the built-in category label join that category. The generator has a separate entry in the left library.
  3. The subscene System Prompt is added as extra instructions and stays active for the session. Sending the first message hides the scene selector; start a new blank conversation to choose another category and subscene. Refresh/resume restores the last category; the Host restores the last applied subscene prompt from the Session command log.
  4. Click a card to insert its full prompt at the caret. Inserting does not send the message; you can edit before sending.
  5. Use the composer picker or the sidebar template library to search and manage prompts. If there are no prompts, create one in the library.

Generate a new scene

  1. Open the left sidebar library and use the Prompt Flow Generator strip at the top. Click Use generator. With a conversation open, the generator System Prompt is applied and a starter prompt is inserted; with no conversation, the entry asks you to open one first.
  2. Fill in your industry, role, daily tasks, and expected output, then send. The model first returns a readable list of the scene name, System Prompt, and cards, followed by a copyable JSON block. It does not create files.
  3. Copy the JSON, open the sidebar library, and choose 导入生成场景.
  4. Paste the JSON, choose 解析并预览, review the list, then choose 确认导入. The dialog can copy the normalized JSON at any time.
  5. The plugin appends a custom scene, its scene-level System Prompt, and 1–6 user prompt cards, or updates an existing custom scene when Update an existing custom scene with this name is checked. Choose the new scene in a blank conversation to use it. The dialog stays open after import so the JSON can be copied; edit it and import again with the update option to replace the scene prompt and cards.

The expected JSON is:

{
  "version": 1,
  "scene": {
    "name": "Scene name",
    "systemPrompt": "Scene-level System Prompt",
    "templates": [
      { "title": "Card title", "body": "User prompt" }
    ]
  }
}

The current client-only plugin cannot read the model's reply automatically, so the JSON must be copied into the import dialog. After confirmation, the parser and the three storage writes are automatic. No file is created at any point. Generated scenes reuse the custom-scene model: one scene-level System Prompt plus 1–6 cards; no per-card System Prompt or scene/card description is stored. A new name is rejected if it collides with an existing scene; an existing custom scene is replaced only when the update option is checked. Invalid JSON and built-in name collisions are always rejected.