Introduction

In DSH’s Plan mode, the coding agent first proposes an implementation plan. Often, the decision isn’t just a simple “pass” or “fail”: you might need to point out a specific risky sentence or two, modify a certain step, an interface description, or a test boundary.

dsh-plannotator solves exactly this type of problem: it lets you select specific text within the plan, add targeted annotations, and send multiple comments and overall feedback back to the agent in one go. This way, when the agent revises the plan, it knows precisely which original text you are referring to.

What Is This

dsh-plannotator is a DSH plugin maintained by titanwings, licensed under MIT, and positioned as a Plan Review workflow plugin.

Its core goal can be summarized in one official sentence:

Review the plan before your coding agent writes the code.

In other words, before the coding agent starts writing code, it allows developers to perform a more detailed review of the plan. This plugin is an unofficial integration, inspired by Plannotator.

Core Features

Precise Annotation

The plugin supports precise annotation of plan text:

  • Drag-select text to generate a comment for that specific text.
  • As a fallback, you can also double-click a paragraph, list item, heading, bold phrase, or code snippet.

Annotations preserve the quoted original text, making it easy for the agent to locate the context when revising the plan.

Multi-Comment Review

A single review session can hold multiple comments, instead of having them scattered individually in the chat.

Supported capabilities include:

  • Pinning quoted original text.
  • Jumping back from a comment to its source location.
  • Deleting individual comments.
  • Adding overall feedback.

This is suitable for raising multiple independent issues on the same plan, such as compatibility, interface changes, rollback strategies, test coverage, etc.

Responsive Review Panel

The review panel adapts to screen width:

  • Wide screen: The review panel displays side-by-side with the dialogue.
  • Narrower desktop: A drawer can be opened on demand.
  • Mobile: A bottom sheet is used.

You can collapse or reopen the review panel at any time without needing to end the current review immediately.

DSH Response Loop

The plugin returns review results through DSH’s existing pending interaction.

Common actions include:

  • Approving the current plan.
  • Requesting the agent to modify the plan.
  • Returning to normal chat.

After you click “Send feedback,” the agent receives a structured review and remains in plan mode, rather than directly jumping to implementation.

Ask AI

After selecting plan text, you can use “Ask AI” to ask a question; or you can directly enter a question in the left “Ask AI” sidebar.

“Ask AI” invokes a one-time, read-only sub-agent to answer plan-related questions. It supports:

  • Including quoted excerpts.
  • Following up with more questions.
  • Canceling slow responses.

This sub-agent is one-time use, read-only, cannot modify files, cannot rewrite the plan, and cannot further delegate tasks.

Draft Recovery

Unsent comments are saved in the browser’s local storage.

Recovery is best-effort local and does not require a plugin server or third-party services. Drafts are isolated along the following dimensions:

  • Session.
  • Pending request.
  • Plan revision.

Review Protection

The plugin offers protection for incomplete reviews:

  • Expired plan drafts will be rejected.
  • Clear confirmation is required before discarding feedback.
  • If there are still unsent feedback and the user attempts to approve, the plugin will request explicit confirmation again.

This helps reduce cases where accidental approval leads to loss of local annotations.

UI Adaptation

The plugin supports:

  • Chinese and English text.
  • Keyboard shortcuts.
  • Responsive layout.
  • DSH theme tokens.

Installation and Enabling

Install the GitHub-built plugin into the DSH Web profile:

dsh plugin --profile web add github:titanwings/dsh-plannotator#v0.1.4

After installation, restart dsh web.

The repository includes pre-built Host and Web bundles, so the installation process does not run package build scripts and does not require an allowBuilds entry.

If you need to pin to a specific source revision, you can use a commit SHA instead of a release tag.

For local installation, the Node.js version must meet:

"^22.19.0 || >=24.0.0"

That is, at least Node.js 22.19 or higher is required.

Note: dsh-plannotator integrates into the current DSH runtime environment, and the plugin runs with the permissions of the current dsh process. Before installation, you should review the source code, license, and dependency scope.

Typical Usage

Here is a complete review workflow.

  1. In DSH Plan mode, have the coding agent create a plan.

  2. When exit_plan_mode reaches Plan Review, open the review via the compact gate or “Open review.”

  3. Select the precise text that needs modification. The review panel can be collapsed or reopened at any time; you do not need to send feedback immediately.

  4. Add multiple targeted annotations for the selected text, and optionally add overall feedback.

  5. Click “Send feedback.” The agent will receive a structured review and remain in plan mode.

  6. Review the agent’s revised plan. If the plan is ready for implementation, select “Approve.”

  7. If you do not want to continue reviewing for now, select “Chat about it,” close the gate, and return to the normal composer.

  8. If you need to ask about plan details, you can select the plan text and use “Ask AI” to pose a question, or enter a question in the left “Ask AI” sidebar.

Applicable Scenarios and Notes

Suitable for the following scenarios:

  • Generating implementation plans in DSH Plan mode and wanting to perform fine-grained review before the agent writes code.
  • The plan contains multiple independent issues that need to be pointed out separately, rather than just giving a single overall comment.
  • Wanting each comment to be bound to specific text to avoid the agent misunderstanding the modification location.
  • Needing to continue an unfinished review on wide screens, narrower desktops, or mobile devices.
  • Wanting unsent drafts saved locally in the browser without relying on a plugin server or third-party services.

Usage notes:

  • It is an unofficial integration, inspired by Plannotator.
  • Licensed under MIT.
  • The “Ask AI” sub-agent is a one-time, read-only capability; it cannot modify files, rewrite the plan, or further delegate tasks.
  • Unsent comments are saved in the browser’s local storage and isolated by session, pending request, and plan revision.
  • Expired plan drafts will be rejected.
  • When attempting to approve with unsent feedback, explicit confirmation is required.
  • The plugin runs with the permissions of the current dsh process; review the source code and license before installation.

Links

Directory page:

https://www.skillhub.cn/plugins/titanwings/dsh-plannotator

GitHub:

https://github.com/titanwings/dsh-plannotator