DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

usi112 /

usi112/dsh-go-prompt-polish

Verified

dsh-go 手机 App 的提示词抛光胶囊:草稿写完别急着发,点一下把一句话变成清晰的提示词;确认页先预览,复制还是追加随你选。预设、长度三档与保留开关写在本地 .config.json。不发送消息,不额外联网。

★ 1 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHubProject homepage
READMESource: main@48847595

✦ 一句话 → 好提示词 · Prompt Polish

version platform license check

dsh-go 输入框上方的「✦ 优化提示词」胶囊:草稿写完别急着发,点一下——当前会话的模型(或你指定的模型)把它重写成一条更清晰的提示词:目标、背景、要求、交付形式一次补齐。确认页先给你看全文,复制还是追加,你说了算。

不发送消息 · 不改对话内容 · 不额外联网(只走你已配置的模型)

1.7.0 能做什么

  • 9 套场景预设:默认、写代码、代码审查、排障、写文档、写作润色、数据与 SQL、需求与产品、学习讲解。每套都能改内容、能设为默认、能一键恢复出厂;内置的名字和 id 不会被改坏。
  • 长度三档:详细(2–3 倍、≤800 字)/ 中等(≤3 倍、≤600 字,与 1.3.0 逐字一致)/ 简易(≤草稿长度、≤200 字),档位同时决定提示词措辞与输出上限。
  • 模型按来源分组:会话默认 / 官方模型 / 其他来源(中转、第三方、聚合平台、识别不出的都归这里),可以点选、可以手填 provider + model、也可以「重新读取模型」;不改这里就跟随当前会话的模型。
  • 其他开关:胶囊总开关、保留专有名词、保留代码与路径、确认页显示改写说明、附加指令(≤500 字)。
  • 所有设置写在插件目录的 .config.json(原子写、gitignore),什么都不配时行为和 1.3.0 一样。
  • 确认页可「再来一版」:不满意就重跑,同一个草稿、同一套设置;重跑时页面显示「正在优化…」,旧结果不会被当成新结果。确认页现在四个按钮:复制优化稿 / 追加到输入框 / 再来一版 / 取消。
  • 上下文可自由设置:读几条最近消息(1–32)、总共多少字(200–8000),默认 12 条 / 2000 字。
  • 长会话不再丢目标:上下文策略默认「智能」,三层拼起来——背景(压缩摘要 ≤20%,任务清单/会话标题 ≤8%,两者共存)、相关片段 35%(完整 BM25:IDF + 长度归一化,检索全部历史、只排除已进最近窗口的消息,取前 3 段;命中错误码/专有名词的片段优先)、最近对话 40%(预算紧时保最新)。切到「只看最近消息」就是 1.3.0 的旧行为。
  • 可选的二次筛选:打开「让模型再筛一次相关片段」后,会多一次很小的调用(maxTokens 60),让模型从 BM25 候选里挑最相关的;失败或返回不可解析时自动回到 BM25 结果。
  • 1.5.3 的稳定性修复也在:模型列表 60 秒自动重试 +「重新读取模型」、大列表裁剪不越限、设置页按会话隔离、模型超时自动回落本地稿;视图里任何列表都保证非空(空列表会被 App 画成「暂无数据」,有回归测试盯着)。

仓库 dsh-go-prompt-polish · 插件包名 local-prompt-polish(安装目录用这个名字)

确认页(真机截图):原文 / 优化稿 / 复制 · 追加 · 再来一版 · 取消


目录

  • 为什么需要它
  • 交互
  • 为什么没有「一键替换」
  • 改写质量:不是续写
  • 上下文与模型路由
  • 设置
  • 安装
  • 兼容性
  • 自测
  • 常见问题
  • 目录结构
  • 更新日志

为什么需要它

写一句话让模型干活,结果不好,多半不是模型笨,是那句话没写清:目标含糊、背景缺失、输出形式没定。

把「帮我把话说清楚」做成一个常驻的小按钮,比每次自己想“我该怎么问”便宜得多。它读的是你正在写的这段草稿,加上最近几轮对话,所以知道你在做什么。

交互

胶囊位置(真机截图)

点胶囊 → 起优化任务(3 秒内返回)→ 打开确认页
   · 正在优化…
   · 就绪:原文 + 优化稿全文 + 三个按钮
        [复制优化稿](主)  [追加到输入框]  [再来一版]  [取消]
按钮 效果 输入框
复制优化稿 只写剪贴板 不动;长按输入框 → 全选 → 粘贴 = 整体替换
追加到输入框 insert App 的语义是合并,优化稿接在原文后面
再来一版 重跑同一个草稿 不动;期间确认页显示「正在优化…」
取消 仅提示 一个字都不动

复制后粘贴(示意图)

  • 预览:原文与优化稿全文(≤1900 字)
  • 可编辑:不能,面板只有文本组件;要改就在输入框里改
  • 光标:由 App 放在文末,插件无法设置选区
  • 空草稿 / 少于 4 个字:只提示,不动输入框

为什么没有「一键替换」

dsh-go 原生插件的 effect 白名单只有 insert / copy / toast / command / open / link / refresh / patch,没有清空或替换草稿的能力;App 端把 insert 实现成合并进草稿(insertIntoComposer,注释写的是 Into the composer, at the caret)。

所以插件写进输入框只能是追加,删不掉用户已经输入的字。整体替换目前只能靠「复制 + 全选粘贴」这一步用户手势。

要一键替换,需要 App 端新增 replace effect —— 已作为建议提交给 dsh-Go: ccch1mneyyy/dsh-Go#1148。等它落地,本插件会先探测能力再用。

改写质量:不是续写

草稿被定义为「被改写的对象」:不执行、不回答、不续写;不许以草稿原句开头;不许「原文/改写后」这类标签;优化方向只限“目标 / 背景 / 要求与约束 / 交付形式 / 去歧义”;≤ 草稿 3 倍且 ≤ 600 字。

输出后处理会切掉开头复述草稿的整段(按标点切句、去标点做前缀比对,命中 ≥8 字才算复述);整段复述 → 判失败,用更严格提示重试一次;仍失败 → 本地整理兜底(去“帮我/麻烦/能不能/please”这类填充、合并重复标点、三句以上分条)。

细节见 docs/architecture.md。

上下文与模型路由

  • 上下文:同一会话最近 8 条 user/assistant 文本,每条截 320 字,总量 ≤ 1600 字。
  • 路由:当前会话的模型 → 该会话日志里最后一次 request/header → 部署默认模型。三级都拿不到,就走本地整理,不发网络请求。

设置

设置页 · 预设

真机截图(App 1.0.15)· 1.6.0 · 只裁掉了系统状态栏(预设 / 长度 / 模型页截图取自 1.5.2–1.5.3,功能未变;「其他」页与确认页为 1.6.0)

长度 模型 其他
长度 模型 其他

三条路都到同一个面板 polish-settings:

  • 输入框上方的 + → 「优化设置」;
  • 会话详情 → 插件 → 「提示词优化设置」;
  • 停用状态下点胶囊:弹提示「「优化提示词」已在设置里停用 · 打开设置可重新启用」,同时直接打开设置页。

四块各管一件事,默认值合起来就等于 1.3.0 的行为:

块 管什么 写进配置的字段 默认
预设 9 套场景模板,给改写追加一段固定要求;内置预设可改内容、不能改名或删除 presetId、presets[] 只有默认(无附加要求)
长度 详细 / 中等 / 简易三档,同时决定提示词里的篇幅要求和输出上限 length medium(与 1.3.0 逐字一致)
模型 固定一个本地已配置的模型(列表按「官方 / 其他来源」分组),只影响「优化提示词」这一次改写 modelProvider、modelModel 空 = 跟随当前会话的模型
其他 胶囊总开关、两个「保留」开关、改写说明、附加指令 enabled、keepTerms、keepCode、showNotes、allowExtra、extra 开关全开、showNotes 关、extra 空

9 套内置预设(括号里是适用场景,均可在设置页改内容):

预设 场景 预设 场景
默认 通用改写 写文档 README、使用说明
写代码 新功能、改实现 写作润色 邮件、文案、汇报
代码审查 PR、片段审查 数据与 SQL 查询、指标口径
排障 报错、行为异常 需求与产品 用户故事、验收标准
学习讲解 概念、原理入门

点一行 → 改「预设指令」→ 保存,改动写进 .config.json(内置预设存成同 id 的覆盖条目);「恢复此预设默认」只还当前这一套,「其他 → 恢复默认设置」会连自定义预设一起清掉。模型页按来源分组:会话默认 / 官方模型 / 其他来源(中转、第三方、识别不出的都归这里,组内保持宿主顺序);可以点选,也可以手填 provider / model(只填一个不保存)。

保存结果显示在页头那行 callout:「已保存 · 21:12」,或者「写入配置失败,改动没有生效」/ 校验提示(名称不能为空、档位无效、内置预设不能改内容、这已经是默认预设、自定义预设最多 12 个、附加指令超过 500 字…);一次都没保存过时显示「还没有保存过,当前用的是默认值」。没有改动时不会凭空生成配置文件。

  • 保存成功 = 当场写进 .config.json,下一次点胶囊就按新设置改写,不用重启引擎。
  • 打开「确认页显示改写说明」后,确认页会多一块:来源 · 档位 · 预设 · 专有名词 · 代码与路径 · 字数变化。
  • 三档的具体字数上限、每张表单的按钮与 action 名、v1 降级页长什么样:见 docs/settings.md。
  • 「一键替换」的限制没有变化:设置只改提示词,不改 effect 白名单。

安装

# 1) 放进插件目录
mkdir -p "$DSH_HOME/dsh-go/plugins"
curl -L -o /tmp/p.tgz \
  https://github.com/usi112/dsh-go-prompt-polish/releases/download/v1.7.0/local-prompt-polish-1.7.0.tgz
tar xzf /tmp/p.tgz -C "$DSH_HOME/dsh-go/plugins/"

# 2) 注册进当前 profile(手机本机引擎是 web)
dsh plugin --profile web add "$DSH_HOME/dsh-go/plugins/local-prompt-polish"

装完不用重启就有胶囊;lib/ 里的代码改过才要在 App「设置 → 引擎 → 重启引擎」。

卸载:dsh plugin --profile web remove local-prompt-polish。

需要 dsh ≥ 0.2.1-rc.2、App ≥ 1.0.11(原生插件协议 v1)。

兼容性

组合 结果
dsh 0.2.2-rc.1 · App 1.0.15 · Android 16 已实测(胶囊 + 确认页 + 复制/追加/取消)
生成回复进行中 胶囊会收起(App 行为),回复结束后可点
没有可用模型 立即返回本地整理稿,不弹等待
旧 App(caps.components 不含表单组件) 设置页降级为 v1 摘要页:只显示当前值 + 「切换长度档」「开/关胶囊」两个按钮,配置照样能改
设置页(1.4.0) 已在 App 1.0.15 真机走通:预设 / 长度 / 其他三个 tab、保存结果 callout、开关与恢复默认(见 docs/preview/settings-*.jpg);另有检查器 + 测试宿主覆盖 8 个视图、9 个 action、v1 降级、写失败不落盘
老版本 App(无 panels 能力) 确认页不出现,插件会退化——建议升级 App

自测

node --check lib/index.js && node --check lib/polish.js
node test/selftest.mjs        # 210 项断言

插件检查器(需要本机装了 dsh-go 的 skill kit):

node "$DSH_HOME/skills/dsh-go-plugin/kit/bin/check.mjs" . --load
# → 胶囊 1 · 面板 2 · 加号工具 1;zh/en × chat.panel/session.tab/features 八个视图都能画

自测覆盖:空/过短草稿、只开确认页不改输入框、loading→ready、复制不写回、追加显式写回、取消零写回、无模型立即出本地稿、模型抛错仍有稿,以及用 bridge 自己的 effects.js 校验 open/insert/copy/toast 形状。

1.4.0 另加设置侧断言:配置缺文件=全默认、脏值逐项回落、同一 mtime 粒度内的同尺寸外部写入也能读到新值(缓存按原文比对)、预设增改删与「设为默认」、内置预设只读、长度三档(含 simple 的 500 字上限与 5 条上限)、systemPrompt 的第 8 条预设与第 9 条附加指令、showNotes 控制确认页的改写说明块、停用分支的两个效果、旧 App 的 v1 摘要页、恢复默认。

常见问题

点了没反应? 生成回复期间胶囊会收起;等这一轮结束再点。空草稿或少于 4 个字只会弹提示。

为什么粘贴后原文还在? 说明没有先「全选」。长按输入框 → 选「全选」→ 再粘贴,选区会被整体替换。

优化稿比原文长很多? 说明模型在扩写。本插件的系统提示禁止续写/复述;如果还遇到,把草稿和输出发 issue,我加样本。

会不会把我的对话发出去? 只发给你自己配置的模型(当前会话那个),不经过任何第三方服务;.log.jsonl 只记长度和状态,不记文本。

模型列表一直是空的或旧的? 1.5.3 起模型缓存只有 60 秒,空结果或读取失败会自动重试;模型页还有「重新读取模型」按钮。仍为空就检查宿主是否已经配置了模型服务。

模型页显示「暂无数据」? 1.5.1 修过状态行与空列表,1.5.3 又修掉「固定模型说明行」这个新增的空列表;现在视图里每个列表都保证非空,并有回归测试盯着。升级后在 App「设置 → 引擎 → 重启引擎」一次即可。

重启引擎后胶囊没了? 检查 dsh plugin --profile web list 里还有没有 local-prompt-polish,以及插件目录是否被删。

为什么改了设置没生效? 两个常见原因:一是改的是 lib/ 里的代码 —— 那要 App「设置 → 引擎 → 重启引擎」;二是确认页已经开着 —— 档位、预设、附加指令都要等下一次点胶囊才用上,重开确认页即可。配置文件本身每次点胶囊都会重读(读一遍文件原文和上次比对,相同就复用解析结果),手改 .config.json 不用重启。

配置存在哪、怎么备份或恢复默认? 插件目录下的 .config.json,和 .log.jsonl 同一个目录($DSH_HOME/dsh-go/plugins/local-prompt-polish/)。拷走这个文件就是备份,拷回来就是恢复;恢复默认在设置页「其他 → 恢复默认设置」,确认后整份写回默认值,自定义预设一起清掉。

停用后胶囊怎么回来? 设置页 → 其他 → 打开「启用「优化提示词」胶囊」→ 保存。停用状态下点胶囊,被提示的同时就会打开设置页,从那里也能直接开回来。

目录结构

local-prompt-polish/
├── package.json          # dshGo 清单:胶囊 + 两个面板 + 加号工具
├── cordis.patch.yml      # 注册进 profile
├── lib/
│   ├── index.js          # 胶囊处理、确认页数据/动作、改写说明
│   ├── config.js         # 配置读写:默认值、normalize、原文比对缓存、原子写、预设
│   ├── settings.js       # 设置面板 polish-settings:v2 表单 / v1 降级、9 个 action
│   ├── polish.js         # 路由解析、上下文抽取、模型改写、复述检测、长度档、本地兜底
│   └── log.js            # .log.jsonl 追加写(只记长度与状态)
├── test/selftest.mjs     # 210 项断言
├── docs/
│   ├── architecture.md   # 原理与边界
│   ├── settings.md       # 设置项清单与页面结构
│   └── preview/          # 真机截图:胶囊 / 设置页三 tab / 确认页;paste 仍是示意图
├── .config.json          # 运行时生成,已 gitignore
├── .log.jsonl            # 运行时生成,已 gitignore
└── market-entry.json     # 插件市场条目

更新日志

见 CHANGELOG.md。

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 48847595eeae

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout