dsh-improve-prompt
One-click prompt improvement for the DSH composer: press the sparkle button to rewrite the draft into an agent-ready prompt, replaced in place and undoable, with a deterministic fidelity check that keeps every path, identifier, number, URL and backticked token verbatim, plus a length ceiling that bl
Install
dsh plugin --profile web add dsh-improve-prompt
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✓ |
| 2 list | ✓ |
| 3 mount | ✓ |
| 4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
dsh-improve-prompt
输入框里那颗 ✦ 按钮,点一下把你的草稿改写成 Agent 真能照着做的提示词——直接替换,可撤回,而且保证不丢东西。
[English](README.en.md) · Releases · [更新日志](CHANGELOG.md)
<p align="center">
<a href="https://www.npmjs.com/package/dsh-improve-prompt"><img alt="npm" src="https://img.shields.io/npm/v/dsh-improve-prompt?color=2b6cff"></a>
<a href="https://www.npmjs.com/package/dsh-improve-prompt"><img alt="downloads" src="https://img.shields.io/npm/dm/dsh-improve-prompt?color=2b6cff"></a>
<a href="https://github.com/hoyyang/dsh-improve-prompt/releases"><img alt="release" src="https://img.shields.io/github/v/release/hoyyang/dsh-improve-prompt?color=38bdf8"></a>
<img alt="dsh" src="https://img.shields.io/badge/dsh-%3E%3D0.1.1--rc.2-38bdf8">
<a href="https://github.com/hoyyang/dsh-improve-prompt/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/hoyyang/dsh-improve-prompt/actions/workflows/ci.yml/badge.svg"></a>
<a href="LICENSE"><img alt="license" src="https://img.shields.io/badge/license-MIT-green"></a>
<a href="https://github.com/hoyyang/dsh-improve-prompt/stargazers"><img alt="stars" src="https://img.shields.io/github/stars/hoyyang/dsh-improve-prompt?color=f5c542"></a>
</p>
安装
dsh plugin --profile web add dsh-improve-prompt # 或直接从 GitHub 装(构建产物已随仓库提交,无需本地构建) dsh plugin --profile web add github:hoyyang/dsh-improve-prompt
重启 dsh web,输入框工具行(发送键左侧)出现 ✦ 即成功。零配置:不需要 API Key,走 harness 自带的模型服务与凭据存储。最低 dsh >= 0.1.1-rc.2(实测 0.1.5-rc.1)。
dsh plugin --profile web remove dsh-improve-prompt # 卸载
核心功能
- 一键直替 — 点击 ✦ 后 1–3 秒内把草稿替换成更清晰、更贴 Agent 执行的版本,不弹预览、不打断输入。
- 一键撤回 — 替换后 8 秒内可恢复原文;你一旦手动编辑,撤回条自动消失,绝不覆盖你的新输入。
- 保真闸 — 机械提取草稿里的硬事实(文件路径、文件名、标识符、数字与版本、URL、
反引号代码、@引用),逐条验证改写结果里是否还在;缺失触发一次点名修复调用,仍缺则确定性回灌「保留原始细节」块——硬事实零丢失。生态里其他同类插件只在 system prompt 里写一句"请保留原文信息",没有一家去验证。 - 长度闸 — 结果超预算(标准档 2.5x、且不低于 200 字符绝对下限)时执行一次带明确字符预算的收敛调用;仍超则拒绝写回、保留原文并说明原因,堵住"一句话需求变成三十行规格书"。
- 质量凭证 — 状态条直接显示
已增强 · 保真 5/5 · 1.0x · 2.2s,结果可不可信一眼可查。 - 两档位 — 轻(≤1.2x,去废话消歧义)/ 标准(≤2.5x,结构化重述);档位记忆在本地,芯片右侧 ⇄ 一键切换。
- 斜杠命令支持 —
/bugfix <正文>的命令前缀原样保留,只把后面的正文改写成更清晰版本;只有斜杠命令没正文时按钮才禁用。 - 可取消 — 增强中再次点击 ✦ 即中断上游请求(
AbortSignal),草稿保持不动。 - 失败即原文 — 无模型 / 超时 / 空输出 / 网络失败时绝不改动你的输入,只给一句可读提示。
- 智能会话上下文 — 草稿含指代(它 / 那个 / 刚才 / it / this)或 ≤12 字无实词时自动携带最近 N 轮「你的原话 + 助手正文结论尾部」;本地正则判定,零额外调用。工具结果、注入上下文、图片、源码一律不带。
- 零配置开箱 — 不需要 API Key;可选配置项全部有默认值(见「进阶用法」),不配置也能用。
- 提示词模板可覆盖 — 行为知识全在
prompts/*.md,把同名文件放进$DSH_HOME/dsh-improve-prompt/prompts/即可替换纪律层与档位模板,不改一行代码。 - 本地 HTTP 接口 —
POST /dsh-improve-prompt/api/improve把增强能力暴露给自己的脚本与工具(仅回环)。 - 短草稿保护 — 长度预算取
max(200, 字数 × 比例),三行以内的短草稿不会被比例预算误杀(该缺陷在实机测试中发现并已修复,有 4 个测试锁死)。
和已有 5 个同类插件差在哪
不做预览对比面板、不做语音识别、不做自更新、不做多阶段 LLM 流水线、不做模型链 / 看门狗、不做记忆链、不扫项目源码、不做澄清提问闭环。只做一件事:点一下,拿到更好的提示词,并且确信它没改坏你的意思。
每次点击最多 2 次 LLM 调用(一次生成 + 一次修复),不是流水线。
快速上手
1. 输入一句口语草稿——一句话、有错别字都行:
> 就是那个 帮我把 src/host/config.ts 里的 maxRatioFor 改成 2.5 呗,用 pnpm build 验证一下
2. 点击输入框工具栏的 ✦ 星芒圆标——悬停时芯片向左展开成「✦ 标准 │ ⇄」(平时收起为 28px 星芒圆标,草稿非空时呼吸微光)
3. 等 1–3 秒,草稿被替换:
> 把 src/host/config.ts 里的 maxRatioFor 改成 2.5;用 pnpm build 验证一下。
4. 看输入框上方的质量凭证状态条:已增强 · 保真 5/5 · 1.0x · 2.2s
5. 点「撤回」恢复原文(替换后 8 秒内有效;你一旦手动编辑,撤回条自动消失)
6. 点击芯片右侧的 ⇄ 即时切换轻 / 标准档位(档位记忆在本地)
7. 点击 ✦ 再次取消增强中的本次请求,草稿不动
使用示例
真实输入 → 输出对照(①–④ 为本机对真实模型的实测,见「真实实测对照」全记录;后两行为文档化行为):
输入 · 输出
就是那个 帮我把 src/host/config.ts 里的 maxRatioFor 改成 2.5 呗,顺便看看 https://example.com/a?b=1 那个文档,用 pnpm build 验证一下 · 把 src/host/config.ts 里的 maxRatioFor 改成 2.5,同时看一下 https://example.com/a?b=1 这个文档,然后用 pnpm build 验证一下。(保真 5/5 · 1.0x)
I was kind of wondering if you could maybe take a look at the login flow and see if there is any way we could possibly make it a bit faster · Take a look at the login flow and see if there's any way we can make it faster — it feels slow to me.(0.6x 轻档)
加个功能 · 加个功能(信息不足时不编造,原样返回是正确行为)
把那个接口加上限流 · 给那个接口加上限流 + 结构化追问:(TBD: 具体接口 / 阈值窗口 / 超限行为),事实零编造
/bugfix ISS-202607-00090605A 用户反馈填充后密码框被清空,帮忙查一下 · /bugfix ISS-202607-00090605A 前缀逐字保留 + 只改写后面的正文
增强进行中再点击一次 ✦ · 真正中断上游请求,草稿保持原样
点「撤回」(替换后 8 秒内) · 原文逐字恢复,改写稿丢弃;手动编辑过则撤回条自动消失
未配置模型时点击 ✦ · 明确报错「未找到可用模型:请先在设置里选默认模型」,原文一字不动
脚本与工具集成示例:
# 用本地 HTTP 接口把增强能力接进脚本(仅回环)
curl -X POST http://127.0.0.1:3080/dsh-improve-prompt/api/improve \
-H 'content-type: application/json' \
-d '{"text":"把那个接口加上限流","sessionId":"sess-1","mode":"standard"}'
# 斜杠命令:前缀原样保留,只改写正文 /bugfix ISS-202607-00090605A 用户反馈填充后密码框被清空,帮忙查一下根因
覆盖提示词模板(不改代码):
# 把同名模板放进该目录即生效 cp my-discipline.md $DSH_HOME/dsh-improve-prompt/prompts/discipline.md cp my-standard.md $DSH_HOME/dsh-improve-prompt/prompts/standard.md
调整默认档位与上限(配置键说明见「进阶用法」):
# profile 的 cordis.patch.yml 片段
- insert:
- id: dsh-improve-prompt
config:
defaultMode: light
standardMaxRatio: 2.5
按钮视觉与交互
精确的形状优先,光次之,且所有光源都收在芯片内部(外壳 overflow:hidden)。芯片平时收起为 28px 星芒圆标(草稿非空时呼吸微光),悬停时右缘钉住、向左展开——展开真实改变布局宽度,左邻控件自动平移让位(宿主 trailing 簇右缘锚定,间距恒定)。底板是恒深海军蓝玻璃,两个主题同一块板、不反白;描边是宽度无关的 conic-gradient;配色是插件自己的青 → 电光蓝 → 金(与 banner 同源)。主按钮与档位切换 ⇄ 融合为一颗分体玻璃芯片:一块底板两个区,档位区自带电光蓝图池,中间 1px 发丝分隔线只分开命中区、绝不穿过字形。
状态 · 表现
收起(默认) · 28px 星芒圆标 + 草稿非空时的呼吸微光(空草稿=暗星)
悬停展开 · 右缘钉住、向左展开成完整分体芯片(左邻控件自动平移让位,间距恒定)
完全展开 · 深色玻璃芯片(主区青色光池 + 档位区电光蓝图池)+ 完整渐变描边 + 发丝分隔线;描边提亮并慢速绕行(3.4s/圈)
点按 · 星芒冲击波光环自图标扩散收束 + 描边单圈快闪 + 光池脉冲(芯片几何零变化)
执行中 · 与悬停明显不同:2px 彗星描边(长尾)、底边扫动的能量条、整块芯片呼吸充能、图标自转
禁用 / 焦点 · 去饱和压暗、描边熄灭;focus-visible 保留焦点环
降低动效 · prefers-reduced-motion 下动画全停;执行中改用一条静止全宽能量条表达
##
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::12,最后更新 2026-09-24