前言¶
用 DSH 做开发时常见两类浪费:需求只说了一半,插件埋头开干,改完才发现理解错了;或者一轮会话里有价值结论和踩坑经验,会话一关就丢了,下次同样的问题还得从头聊。hoaxquill/dsh-thinking-review(维护者 HoaXQuill)就是针对这两点做的:一个是 per-session 的「追问澄清」开关,另一个是「会话复盘」按钮,会把本轮问答整理成四块内容,问你同意写入哪几条长期记忆。下面按资料里写明的能力介绍,安装命令和接口名均照原文引用。
这是什么¶
一句话:一个把「先想清楚再动手」和「会后复盘」做成开关与按钮的 DSH 插件。
- 仓库:https://github.com/HoaXQuill/dsh-thinking-review
- 版本:1.3.0(资料中的 package.json 标注)
- 分类:对话增强 / 记忆(资料分类表),社区目录收录在「记忆」分类下
- 依赖:DSH 桌面端(web 客户端半功能)、cordis 插件树、Node ≥ 20,license 为 MIT
- 它解决的不是模型能力问题,而是交互流程问题:需求含糊时怎么问、问完怎么停、会话结束后经验怎么留
核心功能¶
插件做三件事:追问澄清、复盘本会话、复盘经验存档。
1. 追问澄清(per-session 开关)¶
输入框下面多一行 [● 追问澄清:开/关]。打开后,DSH 遇到需求含糊时先问再动手,判据来自《高阶思维:核验、修正与重构》,核心是一句话:追问只为降低做错概率。资料里列出的主要规则:
- 信息价值为零就不问:所有可能答案都指向同一做法时,直接做。
- 先找决策:这一请求改变的是哪个决定或交付物;说不出就是没听懂,是最该问的一条。
- 问了就停住等:问题发出即结束这一轮,不写代码、不改文件、不自填默认值继续走。带超时的问询卡超时也不等于同意,仍然停住等,同一轮问题只发一次。只有用户明确说「按默认 / 别问了 / 直接做」才开工,并列出采用的假设。
- 先盘工具再问装不装:列出要用的 CLI / 插件 / MCP / skill,对照手头清单逐项查(package.json、配置、技能目录,必要时联网搜)。缺的非它不可才问,问句里要带工具名、用途、为什么替代不了、安装代价(联网 / 装包 / 权限 / 体积 / 重启),给「装 / 换替代 / 先不做」三种选项;装到项目本地优先,装完立刻最小验证并贴结果。
- 主动扫十个「不清晰」面:目标、交付物与格式、验收标准、范围与不做、约束、环境与权限、数据与来源、时间与优先级、可逆性、既有约定。能读文件查到的先自己查,问的时候按「答错的代价 × 不确定性」挑 1–3 条。
- 至少给 3 种合理解读,每种给一条能区分彼此的预测。
- 只在做法分岔处提问,分岔小于「改一句措辞」不问;问题 1–3 个(上限 5),编号、带默认值,允许一句「回 defaults」。
- 答前只读侦察:不边问边答、不自问自答、不给最终方案。
- 答前复述:1–3 句 spec 加「什么会让你改主意」,再开工。
- 交付带边界:一行写清适用范围与推翻条件。
- 叫停即开工:用户说「别问了 / 直接做 / 停」,马上停,编号列出假设与边界。
开关状态存 $DSH_HOME/dsh-thinking-review/state.json,刷新页面、重启 DSH 都还在。需要说明的是插件只对主会话生效,子代理一律跳过。
2. 复盘本会话(按钮)¶
输入框旁的 [复盘本会话] 按钮,向当前会话发一条复盘指令(不发到别的会话,也不改草稿)。产出四块:
- 会话摘要:做了什么、结论是什么
- 结论与决定:含被否决的方案及原因
- 成功经验:可复用的做法,写清适用条件
- 候选长期记忆 3–8 条:每条一句,可直接
remember
最后单独一行问「全部写入 / 只写入第几条 / 不要」,明确同意后逐条写;「不要」就停,不反复劝。
3. 复盘经验(左侧导航新一栏)¶
左侧导航多一行「复盘经验」,点开是本机所有复盘的存档。每条显示时间、会话标题(读不到标题就显示会话 id 前 8 位)、字数、文件类型(PDF / MD / 生成中)、摘要;支持打开(新标签页)、展开全文、复制、删除(要点两次确认并同时删文件)、刷新。
落库机制:点「复盘本会话」时浏览器半边先 POST /reviews/request 登记,Host 订阅 session/event,攒这一轮的 assistant/message 正文,turn/end 时正文 ≥ 160 字才落库。Host 自己渲染 HTML(微软雅黑、A4、@page 页边距),再调本机 Edge/Chrome 的无头模式打印成 PDF(--headless=new --print-to-pdf),不联网、不装依赖,生成是异步的。
已知限制照录如下:
- 找不到 Edge/Chrome 或
--print-to-pdf被安全软件拦住时,自动退回<id>.md,列表显示「MD」,打开照样看纯文本。 - 打印走本机浏览器进程,装在限制子进程的环境(例如 AppContainer)会失败并退回 MD。
- 只有 1.1.0 之后产生的复盘才进列表,之前的不会补录;更早的纯文本记录会在打开页面时顺手补生成 PDF。
- 列表最多 500 条,超出丢最旧的。
- 状态文件与旧名
dsh-clarify兼容:新文件不存在时读$DSH_HOME/dsh-clarify/state.json,下次写入即迁到新路径。
安装与启用¶
从 GitHub(无需 npm)¶
dsh plugin add github:HoaXQuill/dsh-thinking-review
从 npm(发布后)¶
dsh plugin add dsh-thinking-review
或在桌面端「插件市场」里搜 dsh-thinking-review 安装,然后重启 DSH。
从本地目录(开发时)¶
dsh plugin add file:C:/Users/HoaXQ/Desktop/插件/dsh-thinking-review
等价写法是在 profile 的 package.json 里加:
{
"dependencies": { "dsh-thinking-review": "file:C:/Users/HoaXQ/Desktop/插件/dsh-thinking-review" },
"dsh": { "profile": { "bundles": ["dsh-thinking-review"] } }
}
插件由包内 cordis.patch.yml 插入插件树,Host 半走 main / exports["."](lib/index.js),客户端半走 exports["./client"](lib/client.js,dsh.client.platform = "web")。改完插件代码不热重载,需要重启 DSH(桌面端点插件市场里的「立即重启」)。
典型用法¶
装完后点输入框下那行开关即可启用。需求含糊时,插件会按上面第 3 条的规则停在提问上,不会边问边写代码,也不会自问自答。
诊断或排障时可以直接走 HTTP 接口,Host 半注册在 /dsh-thinking-review:
GET /dsh-thinking-review/state?session=<id> 查询某会话开关状态
POST /dsh-thinking-review/state body {session, enabled},写入并立即挂载/卸载
GET /dsh-thinking-review/text 当前进程实际生效的提示词(诊断用)
GET /dsh-thinking-review/mounted 已挂载会话列表、状态文件路径、复盘条数
GET /dsh-thinking-review/reviews 复盘列表(不含全文)
POST /dsh-thinking-review/reviews/request body {session},登记本轮要收进复盘
单条复盘全文和文件本体分别用 GET /dsh-thinking-review/reviews/item?id= 和 GET /dsh-thinking-review/reviews/file?id=(文件本体返回 application/pdf 或 text/markdown,加 ?download=1 改为下载,还没生成完返回 409);删除用 POST /dsh-thinking-review/reviews/delete,body {id}。
想验证改动,仓库自带两个不依赖 DSH 运行时的脚本(Host 半用假 ctx,客户端半用假 window.__ModuleLoader__ 和极简 React shim):
node test/smoke.mjs # Host 半:路由、挂载、卸载、判据关键字
node test/client-smoke.cjs # 客户端半:slot 注册、按钮、指令落到会话
适用场景与注意¶
适合在 DSH 里用 Agent 做实现类任务、且接受「提问先于动手」这套节奏的开发者:对长会话、多轮迭代的任务,复盘写入长期记忆能省掉重复沟通;只想安静干活、不想要任何提问打断的,会嫌追问逻辑啰嗦。
注意几点:
- 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证(仓库标注 MIT)。
- 重启 DSH 后开关和复盘索引都在(状态在
$DSH_HOME/dsh-thinking-review/,索引在reviews.json,文件在reviews/<id>.pdf);卸载不会删状态文件,想清空就删$DSH_HOME/dsh-thinking-review/state.json。 - 提示词优先级最低(order 89950),不会盖住项目自己的 AGENTS.md 或系统提示。
- 复盘列表最早只覆盖 1.1.0 之后的会话,旧记录不补录(打开页面时会顺手补生成 PDF)。
小结¶
一个插件解决两个流程问题:动手前的「问清楚」和会话后的「留经验」。开关按需开启、复盘按条写入、存档可查可删,不强制改变你平时的用法。目录页:https://www.skillhub.cn/plugins/HoaXQuill/dsh-thinking-review ,仓库:https://github.com/HoaXQuill/dsh-thinking-review 。