task-decision · 本轮工作 & 待拍板
装上它之后:AI 每轮不再在正文里堆一长串"需要你拍板的问题",而是把「本轮总结 + 待决问题」收进右侧边栏的一个 tab —— 你一次选完、每题都能写备注、点一下提交,答案自动带着问题标题发回会话,AI 接着干活。
解决的核心痛点:多轮开发里 AI 经常一次抛出 3~5 个决策点,散落在正文里,容易漏答、答错题号;回传时 AI 又容易忘记"q1 到底问的是什么"。
功能
- 右侧独立面板:本轮摘要 + 全部待决问题集中一处,不再淹没在正文里
- 单选 / 多选:按问题类型渲染,勾选框区分圆形(单选)与方形(多选)
- 每题一个常驻备注框:选项都不满意?不选任何选项、只写一句自己的想法也能提交
- 提交前校验:既没选、也没写备注的题会被标红拦住,不会漏答
- 回传带问题标题:
q1(问题标题): 选 b「…」;整题备注:…,AI 拿到就能对上题 - 提交后自动收起侧边栏:把注意力还给 AI 的回复
- 提交后只读回放:已提交的轮次把「选了哪几项、每题备注、整体补充」原样列出来,核对时不用翻聊天记录
- 每题可加附件:图片/文件可以 Ctrl+V 粘贴、或点「添加附件」选;图片内联发出,其他文件走 DSH 自带的上传服务;提交时按题分组,哪道题的附件就跟在哪道题的文字后面
- 可以取消整轮:底栏「取消本轮」(提交占 2/3、取消占 1/3),点两次确认把这一批问题整个划掉,面板变成「已取消」、右侧栏自动收起;AI 下一轮登记新问题时自动恢复
- 防重复提交:同步锁 + "本轮已提交"双闸,连点/关掉再开都不会重复发送
- 失败可重试:发送失败保留已填内容,一键重试
- 中英双语:文案走 locale 表,跟随 DSH 语言
安装
前置:已安装 DeepSeek Harness (dsh)。
⚠️ 适用面:仅桌面端 DSH 验证过。 作者只用桌面端(内嵌 Web UI 的 DSH)开发与测试; 浏览器里单独部署的
dsh web没有验证过,能不能用目前未知。
从 GitHub 源码安装
# profile 名换成你自己的(桌面端一般是 desktop)
dsh plugin --profile desktop add github:Long-Yin-Zi/task-decision
安装完成后重启 DSH(宿主半部在启动时加载)。
关于
package.json里的dsh.client.platform = "web":这是 DSH 客户端加载器的硬性校验(只接受字符串"web"), 桌面端也同样满足;它 不代表本插件“只支持网页端”,也不代表网页端可用。
本插件没有发布到 npm(DSH 插件中心只收能用包名一行安装的包),所以只能走上面的 GitHub 源码安装。
使用
- 正常对话。每轮结束时 AI 会调用
gate_ask工具登记摘要与问题。 - 聊天流里只出现一行卡片:
📋 本轮有待拍板项,见右侧面板,同时右侧自动打开「本轮工作 & 待拍板」。 - 逐题选择;如果选项都不合适,直接在那一题的备注框里写你的想法(此时可不选)。
- 需要给某道题附截图/文档?在那道题的备注框里 Ctrl+V 粘贴,或点「添加附件」选择。
- 点「提交拍板」→ 回传自动发回当前会话 → 面板自动收起。
- 面板被关掉后,点会话页头右侧的「拍板」按钮可重新打开;已提交的轮次不会再让你重复提交。
- 这一轮的问题不用处理了?点「提交拍板」右边那个「取消本轮」,**再点一下「确认取消」**就会把整轮划掉、右侧栏自动收起(只影响这个面板,不会往会话里发任何东西)。
截图

右侧边栏里的完整面板:上方是「本轮摘要」,下方是「待拍板问题」逐题卡片。 每题可以选选项、写整题备注、粘贴截图或文件(Ctrl+V / 「添加附件」), 底部「提交拍板」固定在底栏,选好后一提交就把结构化回传发回当前会话。
它是怎么工作的
模型每轮结束前调用工具 gate_ask({ summary, questions })
↓
聊天流里只显示一行卡片:📋 本轮有待拍板项,见右侧面板 [打开面板]
↓
页头探针从 tool-result 的 argsRaw 解析出 gate,写入模块 store
↓
自动打开右侧 tab「本轮工作 & 待拍板」
↓
用户选选项 / 写整题备注 → 点「提交拍板」
↓
ctx.sessions.scope(sessionId).conversation.send("【拍板回传】…")
↓
面板自动收起,AI 继续干活
为什么用工具调用而不是正文标记块
v0.1 用 <!-- dsh-gate:start … --> 标记块,但 DSH 的聊天渲染器会把 HTML 注释原样转义显示,聊天流里会出现一大坨 JSON。改成工具调用后:聊天里是标准工具卡片(只显示一行),参数是结构化 JSON,客户端从 argsRaw 解析,不用从正文抠文本。
回传格式
【拍板回传】
q1(学生全流程收尾做哪些): 选 b「…」、c「…」;整题备注:优先做风险低的
q2(推进节奏): 选 a「做完一项再汇报」
(整体补充:……)
- 保留题号 + 问题标题 + 选项 id:AI 才能既对上"哪道题",也知道"选了什么"
未选项;整题备注:…表示用户否掉了所有选项、按备注执行
文件结构
| 文件 | 作用 |
|---|---|
index.js |
宿主半部:注册 gate_ask 工具 + 注入系统提示词规则 |
client.js |
浏览器半部:解析、页头探针、右侧 tab、面板 UI、提交与回传 |
cordis.patch.yml |
组合补丁:向 DSH 插件表插入本插件一行 |
locale/zh.json、locale/en.json |
界面文案 |
icon.svg |
插件图标 |
design/ui-spec.md |
面板设计与交互规格(设计文档,可选读) |
权限与外部服务
- 不发起任何网络请求:不访问第三方接口、不上传任何数据
- 不主动读写你的文件:面板本身不扫描磁盘、不碰工作区;只有你亲自粘贴/选中的文件才会由 DSH 自带的
fileUpload服务保存 (图片随消息内联后由宿主规范化存入附件库;普通文件存到 harness 主目录,模型按需读取) - 外部交互:把「拍板回传」(文字 + 你选定的附件)发回当前会话,走 DSH 自己的发送通道;插件自己不发起网络请求
- 唯一注册的宿主能力:一个工具(
gate_ask)与一段系统提示词规则
兼容性
| 项 | 说明 |
|---|---|
| DSH 目标版本 | 在 0.2.1-rc.2(nightly)桌面端验证 |
| 客户端载体 | 仅桌面端验证;浏览器单独部署的 dsh web 未测试,是否可用未知 |
dsh.client.platform |
必须是 "web":DSH 客户端加载器的硬性校验,桌面端同样满足(不代表网页端可用) |
| 平台 | Windows / macOS / Linux(纯 JS,无原生依赖) |
| 依赖 | 无第三方运行时依赖(react 由 DSH 宿主提供) |
⚠️ 作者只在桌面端使用和测试;网页端(浏览器里单独跑的
dsh web)未知。在网页端遇到问题,不代表桌面端有问题。
版本
| 版本 | 内容 |
|---|---|
| 0.6.5 | 确认取消后右侧栏自动收起(延迟 250ms 让用户看到“已取消”状态,与提交成功后的行为一致) |
| 0.6.4 | 底栏按钮比例改为「提交拍板 2/3、取消本轮 1/3」 |
| 0.6.3 | 「取消本轮」从底栏角落的小灰字改成跟「提交拍板」并列的按钮(初始五五开),确认文案缩成「确认取消」 |
| 0.6.2 | ① 新增「取消本轮」:两步确认后整轮划掉,面板转「已取消」,角标归零,AI 下一轮自动恢复 ② 滚动性能:面板组件加浅比较 memo(避免宿主重渲染时重建整棵题卡树)、<style> 节点只创建一次、.wg-scroll 加 will-change/contain |
| 0.6.1 | 去掉拖拽入口:DSH 在 document 冒泡阶段接管了拖拽事件,全窗口弹遮罩、松手直接上传到左侧聊天框,题卡拿不到事件;所以只保留 Ctrl+V 粘贴 与 「添加附件」 两种入口,并在「已知边界」里写明 |
| 0.6.0 | ① 插件改名为 task-decision ② 每题支持附件:Ctrl+V 粘贴 / 拖拽 / 点按钮选文件 ③ 图片内联 base64、普通文件走后台上传并引用 receiptId ④ 回传按题分组(先文字后附件),模型能分清哪个附件属于哪道题 ⑤ 已提交后附件一并只读回放 |
| 0.5.0 | ① 提交后只读回放(选项、每题备注、整题备注、整体补充;关掉面板再打开也看得到)② 删掉遗留的 CSS / CSS2 两份死样式,全插件只留一份 <style> ③ 补全中英文字典并真正注册给 locale 服务(英文界面不再回落成中文) |
| 0.4.1 | ① 每题常驻备注框(不选也能提交)② 回传带上问题标题 ③ 提交后自动收起右侧栏 ④ 防重复提交(同步锁 + 本轮已提交闸) |
| 0.4.0 | 按 design/ui-spec.md 重做面板:头/尾固定、只有中间滚动;主按钮反色;勾选框改 CSS 圆/方;题号徽标、进度条、未选校验、错误条 + 重试 |
| 0.3.0 | 发送通道修复(binding.session.prompt 优先、conversation 兜底)+ 页头常驻「拍板」入口 |
| 0.2.0 | 改用工具 gate_ask 登记,聊天流里只显示一行卡片 |
| 0.1.0 | 首版:正文标记块 + 右侧 tab |
已知边界
- 宿主半部(
index.js)改动需要重启 DSH 才会重新加载工具与提示词;客户端改动刷新页面即可。 ctx.sidebarRight不在客户端服务目录里,自动开 tab 用ctx.get('sidebarRight')懒取;拿不到就只注册 tab、不自动弹。- 收起侧边栏依赖
sidebarRight.actionsFor(sessionId).setExpanded(sessionId,false)(内部面),DSH 升级若改名会退化为"不自动收起",不影响提交。 - 残留的 v0.1 文本标记块解析仍保留,作为兼容路径。
- 拖拽附件不可用:DSH 自己会在
document冒泡阶段接管dragenter/dragover/drop(全窗口遮罩 → 松手进左侧聊天框),题卡收不到事件;要恢复拖拽得先在window捕获阶段拦截,本次未做。
许可证
MIT © 2026 tdcy
本项目为社区插件,与 DeepSeek AI 无隶属关系。
No comments yet. Be the first to write one.