김영준E 09384361e4 fix: Fix review showing empty files + propagate diff errors to UI (#200)
* 🐛 fix: force standard a/b diff prefix to handle mnemonic prefix config

When diff.mnemonicPrefix is enabled in git config, `git diff` uses
context-dependent prefixes (c/ for commit, w/ for worktree, i/ for
index) instead of the standard a/b. Both the internal parseDiffToFiles
and @pierre/diffs library expect a/b prefixes, causing silent parse
failures that result in an empty file list.

Add --src-prefix=a/ --dst-prefix=b/ to all git diff invocations to
ensure consistent output regardless of user git configuration.

* ✨ feat: propagate git diff errors to review UI

Previously, git diff errors were silently caught and returned as empty
patches. The UI showed "No changes" with no indication of failure.

- Add error field to DiffResult and propagate through ReviewServerOptions
- Include error in /api/diff and /api/diff/switch responses
- Show distinct error state in review UI (red icon + error message)
- Clear/set error state on diff type switch

* Fix mnemonic prefix handling in pi-extension runGitDiff

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Michael Ramos <mdramos8@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 22:26:07 -08:00
2026-02-26 21:22:22 -08:00
2026-02-24 12:17:44 -08:00

Plannotator

Plannotator

Interactive Plan Review for AI Coding Agents. Mark up and refine your plans using a visual UI, share for team collaboration, and seamlessly integrate with Claude Code, OpenCode, and Pi.

Claude Code

Claude Code Demo

Watch Demo

OpenCode

OpenCode Demo

Watch Demo

Features

Visual Plan ReviewBuilt-in hookApprove or deny agent plans with inline annotations
Plan DiffAutomaticSee what changed when the agent revises a plan
Code Review/plannotator-reviewReview git diffs with line-level annotations
Annotate Any File/plannotator-annotateAnnotate any markdown file and send feedback to your agent

Sharing Plans

Plannotator lets you privately share plans, annotations, and feedback with colleagues. For example, a colleague can annotate a shared plan, and you can import their feedback to send directly back to the coding agent.

Plans are shared via compressed URL through a static site: share.plannotator.ai

  • No backend or database; nothing is stored
  • The site's deployment is open source
  • You can self-host your own share site and point Plannotator to it via an environment variable (see docs)

Note

share.plannotator.ai uses a default fallback (demo) plan that is hard-coded into the site. This isn't a leaked plan—the site has no storage layer.

Install

Install for Claude Code

Install the plannotator command:

macOS / Linux / WSL:

curl -fsSL https://plannotator.ai/install.sh | bash

Windows PowerShell:

irm https://plannotator.ai/install.ps1 | iex

Then in Claude Code:

/plugin marketplace add backnotprop/plannotator
/plugin install plannotator@plannotator

# IMPORTANT: Restart Claude Code after plugin install

See apps/hook/README.md for detailed installation instructions including a manual hook approach.


Install for OpenCode

Add to your opencode.json:

{
  "plugin": ["@plannotator/opencode@latest"]
}

Run the install script to get /plannotator-review:

curl -fsSL https://plannotator.ai/install.sh | bash

Windows:

irm https://plannotator.ai/install.ps1 | iex

This also clears any cached plugin versions. Then restart OpenCode.


Install for Pi

pi install npm:@plannotator/pi-extension

Then start Pi with --plan to enter plan mode, or toggle it during a session with /plannotator.

See apps/pi-extension/README.md for full usage details, commands, and flags.


How It Works

When your AI agent finishes planning, Plannotator:

  1. Opens the Plannotator UI in your browser
  2. Lets you annotate the plan visually (delete, insert, replace, comment)
  3. Approve → Agent proceeds with implementation
  4. Request changes → Your annotations are sent back as structured feedback

License

Copyright 2025-2026 backnotprop

This project is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

S
Description
plannotator-visual-explainer: Generate self-contained HTML visualizations with Plannotator theming. Use for implementation plans, PR explainers, architecture diagrams, data tables, slide…; plannotator-compound: Analyze a user's Plannotator plan archive to extract denial patterns, feedback taxonomy, evolution over time, and actionable prompt improvements — then produce…; plannotator-setup-goal: Turn an idea or objective into a goal package for /goal. Interviews the user, builds a reviewed fact s…
Readme 198 MiB
Languages
TypeScript 92.2%
CSS 1.9%
Shell 1.8%
Astro 1.4%
HTML 0.7%
Other 2%