@andrewhmir/dsh-plan-review: Read the plan in Composer before clicking approve.

前言

在 DeepSeek Harness(DSH)里跑 superpowers 一类工作流时,智能体常会弹出「请批准计划」的提问卡片。卡片上往往只有一行 path: …\plans\feature.md 和两个按钮,要弄清自己在批准什么,只能自己去打开那份 Markdown。多窗口、多路径切换,既慢也容易漏看细节。

下面介绍社区插件 @andrewhmir/dsh-plan-review:它在 Web GUI 里接管 Composer,把完整计划 inline 渲染出来,并在批准前支持划词批注。维护者为 andrewhmir,仓库见 GitHub,目录页见 SkillHub。插件分类为客户端,与 DSH 自带的 plan-mode 审查(如 exit_plan_mode、architect preset)是不同入口,本插件专门对接 superpowers 的 [plan-review] 协议。

这是什么

@andrewhmir/dsh-plan-review 是面向 DeepSeek Harness 的非官方社区 bundle:声明 dsh.bundle.patch,含一条 id: plan-review 的 client+host 插件行。一句话定位:在 dsh web 里,当提问符合 [plan-review] 协议时,用 Composer 全屏展示计划 Markdown,顶栏提供 Accept / Revise,正文支持选中段落添加可编辑评论。

核心功能

触发条件来自 harness 的 ask_user_question:单个问题的 header 以 [plan-review] 开头,且最多两个选项、非多选;否则仍走内置卡片。

能力 行为(据 README)
计划来源 问题正文第一行为 path: <绝对路径 .md> 时,经插件 host 路由只读读取;无 path: 时整段问题文本即计划
展示 Composer 接管:固定决策栏、可滚动正文、评论侧栏
批注 选中计划文字 → Add comment;评论锚定在引用片段,可编辑、删除、再次定位
Accept 使用问题里 accept 类选项的原文标签作答;若仍有评论或总备注,本地拒绝 Accept,避免反馈被静默丢弃
Revise 至少一条评论或总备注后,在答案 custom 中回传 {decision, comments, note};无反馈时本地拒绝
草稿 评论与总备注存在当前浏览器标签的 session storage,关闭再开审查不丢;作答后清空
兜底 计划不可读或未 claim 成功时,退回内置卡片或 inline 错误,仍可作答
快捷键 Ctrl/Cmd+Enter 接受;Escape 取消待提交的选区
Close 不答题关闭审查,等同内置卡片的 discuss 行为

Host 侧提供 loopback 只读接口:GET /plan-review/file?path=… 读 UTF-8 计划(限制在工作区根与 sandbox 策略内);GET /plan-review/ping 作存活探测。客户端在 conversation.composer 链上 priority: -20 注册,优先于内置 question composer。面板 UI 文案为英文;包内 locale 含 en 与 zh 元数据。

依赖与协作方:

  • DSH >= 0.2.1-rc.2,且使用 Web GUI(dsh web)。
  • superpowers 工作流中的 superpowers-ui skill(位于 $DSH_HOME/skills/)负责发出本插件所渲染的 [plan-review] 协议。
  • Node.js 22+ 仅用于测试与 client 构建;插件运行时落在 harness 进程内。

安装与启用

安装后必须重启 dsh web,否则进程仍持有安装前的模块图。

从插件市场

启用 DSH 自定义插件市场,在索引中加入列出本包的社区源(仓库带 dsh-plugin GitHub topic 便于发现),在 Discover 中安装 @andrewhmir/dsh-plan-review。

通过 agent / 命令行

指定版本安装 bundle(README 原文):

plugin_manager install_bundle  target: @andrewhmir/dsh-plan-review@0.1.0

本地目录安装(路径改为你的绝对路径):

plugin_manager install_bundle  target: /absolute/path/to/dsh-plan-review

安装后确认

dsh --profile web --dump-config

期望退出码 0,且出现 id: plan-review / name: @andrewhmir/dsh-plan-review,无 not found、unknown key、cannot resolve 等行。

可选配置

插件行可设一项(无独立 Config schema):

- insert:
    - id: plan-review
      name: '@andrewhmir/dsh-plan-review'
      config:
        maxPlanBytes: 2000000   # 单文件读取上限,默认 2 MB

典型用法与协议

智能体侧提问示例(README 摘录):

{
  "id": "plan-review",
  "header": "[plan-review]",
  "question": "path: C:\\ws\\.superpowers\\plans\\feature.md\nReview the plan below.",
  "options": [
    { "label": "Accept plan", "description": "Start executing the plan as written." },
    { "label": "Revise plan", "description": "Incorporate my comments and show me the updated plan." }
  ]
}

用户在 Composer 中阅读渲染后的计划:无异议则 Accept;需修改则划词加 comment 或写总备注,再 Revise。纯决策时结果为 selected: ["Accept plan"](标签以问题 options 为准)。带批注时 selected: [],custom 为 JSON 字符串,含 decision、comments(quote + note)及插件扩展的 overall note;智能体应在计划文件中定位各 quote、应用 note 后重写计划并再次提问。插件只渲染与回传答案,不修改计划文件。

适用场景与注意

适合:已在 DSH Web 中使用 superpowers / superpowers-ui,且频繁遇到 [plan-review] 批准步骤的开发者——希望在同一界面读完计划、批注后再决策,而不是反复打开磁盘上的 .md。

务必知晓:

  • 计划文件必须在 profile 注册的 workspace 根之下;路径外的文件会被拒绝(错误中会给出路径)。
  • 仅服务 markdown/text 类计划扩展名;过大或二进制等会被 host 拒绝。
  • 插件以当前 DSH 进程权限运行;安装前请阅读 源码与 MIT 许可证,自行评估信任边界。社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系,DSH 生态强调「一切皆插件」,本包为社区贡献而非官方内置能力。

已知限制:不覆盖 harness 原生 plan-mode 审查界面;只处理 [plan-review] 协议。

结尾

@andrewhmir/dsh-plan-review 把「批准计划」从「看路径、开文件」收成「Composer 内联全文 + 划词评论 + Accept/Revise」。安装 bundle、重启 dsh web、确认 plan-review 行生效后,与 superpowers-ui 联用即可。

  • 目录页:https://www.skillhub.cn/plugins/andrewhmir/dsh-plan-review
  • GitHub:https://github.com/andrewhmir/dsh-plan-review
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye