Install any skill in seconds. Free to start, no credit card required.
Get Started Free →backnotprop/plannotator
Reference for using the Plannotator CLI: plan review, code review, annotating files, URLs, folders, and running local apps, annotating the last assistant message, browsing archived plan decisions, and exporting or sharing Guided Reviews.
Passed 21 of 25 test cases with the skill, and 7 of 25 without it.
and 19 more in the full report
16 fixed5 passed either way2 still failing2 broke
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
A newer attempt on gemini-3.6-flash on 10/2/2026 did not produce a publishable comparison (not comparable). The snapshot above is the previously measured run.
One of 16 test cases the skill fixed. Same model, same prompt, with and without the skill.
Can you open a Plannotator session to review the pull request at `https://github.com/myorg/myrepo/pull/88`? I'd like the result returned to stdout as JSON so you can inspect the decision.
| Checked | Without skill | With skill |
|---|---|---|
| Executes plannotator review https://github.com/myorg/myrepo/pull/88 | Missed | Passed |
| Includes the --json flag | Missed | Passed |
The instructions your model reads when the skill loads.
Plannotator is a local, browser-based review layer for agent workflows: it opens plans, diffs, and documents in an annotation UI, the human marks them up, and the structured feedback comes back to you on stdout. It installs as a single plannotator binary plus per-host hooks, so plan review fires automatically when you exit plan mode; every other surface is launched explicitly from the CLI. A session runs on a random localhost port (fixed port 19432 in remote mode) and blocks until the reviewer submits feedback, approves, or closes the tab.
This skill is the knowledge layer. The plannotator-review, plannotator-annotate, and plannotator-last skills are thin launchers for the three most common actions; use this reference when you need to pick the right command or flags yourself.
| The user wants | Run |
|---|---|
| Review a plan you produced | Nothing. Plan review opens automatically on plan exit via hooks. Never run bare plannotator yourself. |
| Review and explicitly approve a plan/spec saved as a file | plannotator annotate <file> --gate --json |
| Review current code changes | plannotator review |
| Review a GitHub PR, GitLab MR or Bitbucket Cloud PR | plannotator review <PR_URL> |
| Annotate a markdown, text, config, or HTML file | plannotator annotate <file> |
| Annotate a web page | plannotator annotate <https-url> |
| Annotate a running local app (dev server) | plannotator annotate <http://localhost:PORT/> |
| Pick a file to annotate from a folder | plannotator annotate <folder/> |
| Annotate your latest assistant message | plannotator last |
| Browse past plan decisions | plannotator archive |
| Export or share a Guided Review | plannotator guide export / plannotator guide share |
| Reopen or list live sessions | plannotator sessions |
Every review or annotate command starts a local web server, opens the browser, and blocks until the human decides. That can take minutes. Launch it with a long (or no) command timeout, or in the background, then read stdout when the process exits. Do not kill the process to "finish" a review; a session that ends without a decision reads as no feedback.
Stdout is the interface, but its contract is command-specific. For annotate and its last-message variants:
The user approved. on approve, otherwise the feedback text. Address returned feedback in the same conversation.--json: one JSON record with decision (approved, dismissed, or annotated) and optional raw feedback. An approval may still carry notes in feedback; treat those as guidance, not a change request.--hook: hook-native output for real PostToolUse/Stop hook contexts only. Approve/close emits nothing (hook passes); annotations emit {"decision":"block","reason":"..."}. --hook implies the gate UI. Never use it for a normal interactive invocation.plannotator <command> --help prints usage without launching anything. Bare plannotator is the hook entry point and expects hook JSON on stdin.
plannotator review [--git | --gitbutler] [--base <ref>] [--diff-type <type>] [--local | --no-local] [--patch-file <path | ->] [--no-git-remote-check] [--tailscale] [--json] [DIRECTORY | PR_URL]
test cases passed, vs 7 / 25 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.