dsh-plannotator:在編碼代理寫代碼前評審計劃

前言

在 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
羽毛球分组比赛记分
小程序二维码

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

小夜