前言¶
在 DSH 的 Plan mode 中,编码代理会先给出一份实现计划。很多情况下,计划不是只有“通过”或“不通过”这么简单:你可能只需要指出其中一两句风险,或者修改某一段步骤、某个接口说明、某处测试边界。
dsh-plannotator 解决的就是这类问题:让你把计划中的具体文本选出来,添加针对性批注,再把多条意见和整体反馈一次性发回给代理。这样代理修改计划时,能明确知道你针对的是哪一段原文。
这是什么¶
dsh-plannotator 是 titanwings 维护的 DSH 插件,许可证为 MIT,定位是 Plan Review 工作流插件。
它的核心目标可以用官方一句话概括:
Review the plan before your coding agent writes the code.
也就是说,在编码代理开始写代码之前,先让开发者对计划做一轮更细的评审。该插件属于非官方集成,灵感来自 Plannotator。
核心功能¶
精准批注¶
插件支持对计划文本做精准批注:
- 拖选文本,生成针对该文本的评论。
- 也可以双击段落、列表项、标题、加粗短语、代码片段作为回退选择。
批注会保留引用原文,方便代理在修订计划时定位上下文。
多条评论评审¶
一次评审里可以保留多条评论,而不是一条条评论零散地发在聊天里。
支持的能力包括:
- 固定引用原文。
- 从评论跳回来源位置。
- 删除单条评论。
- 添加整体反馈。
这适合对同一个计划提出多个独立问题,例如兼容性、接口变更、回滚方案、测试覆盖等。
响应式评审面板¶
评审面板会随屏幕宽度变化:
- 宽屏:评审面板与对话并排显示。
- 较窄桌面:按需打开抽屉。
- 手机:使用底部弹层。
你可以随时折叠或重开评审面板,不需要立即结束当前评审。
DSH 响应闭环¶
插件通过 DSH 现有的 pending interaction 返回评审结果。
常见动作包括:
- 批准当前计划。
- 要求代理修改计划。
- 返回普通聊天。
当你点击 Send feedback 后,代理会收到一次结构化评审,并保持在 plan mode,而不是直接跳到实现。
Ask AI¶
选择计划文本后,可以使用 Ask AI 提问;也可以直接在左侧 Ask AI 侧栏输入问题。
Ask AI 会调用一次性只读子代理来回答计划相关问题。它支持:
- 携带引用摘录。
- 继续追问。
- 取消慢回答。
该子代理是一次性的,只能只读查看,不能修改文件,不能重写计划,也不能进一步委托。
草稿恢复¶
未发送的评论会保存在浏览器本地。
恢复方式是本地最佳努力,不需要插件服务器,也不需要第三方服务。草稿会按以下维度隔离:
- Session。
- pending request。
- plan revision。
评审保护¶
插件对未完成的评审有保护:
- 过期计划草稿会被拒绝。
- 丢弃反馈前会要求明确确认。
- 如果仍有未发送反馈,而用户尝试批准,插件会要求明确二次确认。
这可以减少误批准导致本地批注丢失的情况。
UI 适配¶
插件支持:
- 中英文文案。
- 键盘快捷键。
- 响应式布局。
- DSH 主题 tokens。
安装与启用¶
将 GitHub 构建好的插件安装到 DSH Web profile:
dsh plugin --profile web add github:titanwings/dsh-plannotator#v0.1.4
安装完成后,重启 dsh web。
该仓库自带构建好的 Host 和 Web bundle,因此安装过程不会运行包构建脚本,也不需要 allowBuilds 条目。
如果需要固定到某个精确源码修订,可以使用 commit SHA,而不是 release tag。
本地安装时,Node.js 版本需要满足:
"^22.19.0 || >=24.0.0"
也就是说,至少需要 Node.js 22.19+。
注意:dsh-plannotator 会接入 DSH 当前运行环境,插件以当前 dsh 进程权限运行。安装前应检查源码、许可证和依赖范围。
典型用法¶
下面是一个完整的评审流程。
1、在 DSH Plan mode 中,让编码代理创建计划。
2、当 exit_plan_mode 到达 Plan Review 时,通过 compact gate 或 Open review 打开评审。
3、选择需要修改的精确文本。评审面板可以随时折叠或重开,不需要立刻发送反馈。
4、为选中的文本添加多个针对性批注,也可以添加整体反馈。
5、点击 Send feedback。代理会收到一次结构化评审,并保持在 plan mode。
6、查看代理修订后的计划。如果计划已经准备进入实现,选择 Approve。
7、如果暂时不想继续评审,选择 Chat about it,关闭 gate 并返回普通 composer。
8、如果需要问计划细节,可以选择计划文本后使用 Ask AI 提出问题,也可以在左侧 Ask AI 侧栏输入问题。
适用场景与注意¶
适合以下场景:
- 在 DSH Plan mode 中生成实现计划,并希望在代理写代码前做细粒度评审。
- 计划中包含多个独立问题,需要分别指出,而不是只给一句整体评价。
- 希望每条评论都绑定到具体文本,避免代理误解修改位置。
- 需要在宽屏、较窄桌面和手机上继续未完成评审。
- 希望未发送草稿保存在浏览器本地,不依赖插件服务器或第三方服务。
使用注意:
- 它是非官方集成,灵感来自 Plannotator。
- 许可证为 MIT。
- Ask AI 子代理是一次性只读能力,不能修改文件、不能重写计划、不能进一步委托。
- 未发送评论保存在浏览器本地,并按 Session、pending request 和 plan revision 隔离。
- 过期计划草稿会被拒绝。
- 尝试批准未发送反馈时,需要明确二次确认。
- 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
链接¶
目录页:
https://www.skillhub.cn/plugins/titanwings/dsh-plannotator
GitHub:
https://github.com/titanwings/dsh-plannotator