Agent skill

Plannotator Reference

by backnotprop in backnotprop/plannotator

Reference for picking the right Plannotator tool or command for plan review, code review, annotating files and URLs, archived plan decisions and Guided Reviews.

Apache-2.0Auto-check: warningsDevelopment

Install Plannotator Reference

The automated check flagged lines worth reading first. See the safety section below.

skills CLI
$ npx skills add backnotprop/plannotator --skill plannotator -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install backnotprop/plannotator plannotator --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/backnotprop/plannotator.git skills-src && mkdir -p .claude/skills && cp -r skills-src/apps/skills/core/plannotator .claude/skills/plannotator && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
plannotator
GitHub stars
9.2k
Token cost
~5.7k tokens
SKILL.md length
3,005 words
Files
2
Skills in repo
13
Repo updated
First seen
Licence
Apache-2.0

At a glance

Reference for picking the right Plannotator tool or command for plan review, code review, annotating files and URLs, archived plan decisions and Guided Reviews.

  • Sending a plan saved as a file for visual review and approval
  • SKILL.md covers If you have a plannotator…, Choose the command, Session model and plannotator review, plus 11 more sections
  • Calls git; reaches github.com and bitbucket.org; needs PLANNOTATOR_BITBUCKET_TOKEN
  • Reviewing current code changes or a pull request in an annotation view

What it does

Plannotator is a local, browser-based review layer: it opens plans, diffs and documents in an annotation interface, a person marks them up and structured feedback returns to the agent on stdout. It installs as a single `plannotator` binary plus per-host hooks, so plan review opens by itself when you exit plan mode, and every other surface is started explicitly. A session uses a random localhost port, fixed at 19432 in remote mode, and blocks until the reviewer submits feedback, approves or closes the tab.

If the agent has a `plannotator` tool it must use that and never the CLI, call it for approvals with the gate option, then end its turn and wait for the reviewer's decision to arrive as a message. The CLI covers what the tool does not, such as `archive`, `guide`, `sessions`, extra review flags and strict gates checked by exit code. A command table maps requests to commands, for example reviewing current changes, reviewing a GitHub, GitLab or Bitbucket pull request by URL, or annotating a file. Three thin launcher skills handle review, annotate and last. The excerpt ends partway through the table.

When your agent uses it

  • Sending a plan saved as a file for visual review and approval
  • Reviewing current code changes or a pull request in an annotation view
  • Annotating a markdown file, URL or folder and getting structured feedback

Example prompts

  • “Open the current code changes in Plannotator for review.”
  • “Annotate docs/spec.md with Plannotator and wait for my approval.”
  • “Review this GitHub pull request in Plannotator.”

Requirements

  • The plannotator binary or its tool, with per-host hooks installed

What it can do on your machine

Read from SKILL.md and the folder at commit 1d9fe3f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com
    • bitbucket.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • PLANNOTATOR_BITBUCKET_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Plannotator Reference loads about 5.7k tokens when it runs. Until then it costs about 101 tokens; SKILL.md has 3,005 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~101
When it runs · the whole SKILL.md, loaded when a task matches
~5.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: warnings

The automated check found patterns that need a careful read before installing.

  • WarningContains instruction-override wording (e.g. “without asking the user”)SKILL.md:79
    ; otherwise always add `--gate --json`. Do not tell the user they can approve a plain `annotate` session. If the plan is
  • NoteMentions a .env fileSKILL.md:84
    `.tsv`, `.log`, `.xml`, `.env.example`. `.env` itself is deliberately refused (it commonly holds secrets, and annotate h
  • NoteMentions a .env fileSKILL.md:234
    tator annotate` at source-code files or `.env` files; code goes through `plannotator review`, and `.env` is refused.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from backnotprop/plannotator at commit 1d9fe3f, republished under its Apache-2.0 licence (© backnotprop). 3,005 words, ~5,698 tokens.

Download SKILL.mdSave it as .claude/skills/plannotator/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
plannotator
description
Reference for using Plannotator (its `plannotator` tool when you have one, otherwise the 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. Invoke when asked to use Plannotator for anything not covered by a more specific plannotator-* skill.

Plannotator CLI Reference

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, with the plannotator tool when you have one and with the CLI otherwise. 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.

If you have a plannotator tool, always use it

Check your tools before you run any command below. If you have a tool named plannotator (it can be listed with a prefix, for example mcp__plannotator__plannotator in Claude Code, and can need to be loaded through tool search before you call it), always call it instead of running plannotator annotate, plannotator review, or plannotator last. This includes approvals: call it with { "action": "annotate", "target": "<file>", "gate": true }, not --gate --json.

The tool returns at once. End your turn after you call it and wait: the reviewer's decision arrives later as a message. Do not also run the CLI, poll, or reopen the session.

Use the CLI only when you have no such tool, or for what the tool does not do: archive, guide, sessions, review flags other than --base, annotate flags other than --gate and --markdown, and strict gates that a script checks by exit code (--require-approval, --result-file).

Choose the command

The user wantsRun (CLI, when you have no plannotator tool)
Review a plan you producedNothing. Plan review opens automatically on plan exit via hooks. Never run bare plannotator yourself.
Review and explicitly approve a plan/spec saved as a fileplannotator annotate <file> --gate --json
Review current code changesplannotator review
Review a GitHub PR, GitLab MR or Bitbucket Cloud PRplannotator review <PR_URL>
Annotate a markdown, text, config, or HTML fileplannotator annotate <file>
Annotate a web pageplannotator annotate <https-url>
Annotate a running local app (dev server)plannotator annotate <http://localhost:PORT/>
Pick a file to annotate from a folderplannotator annotate <folder/>
Annotate your latest assistant messageplannotator last
Browse past plan decisionsplannotator archive
Export or share a Guided Reviewplannotator guide export / plannotator guide share
Reopen or list live sessionsplannotator sessions

Session model

Every review or annotate command starts a local web server, opens the browser, and blocks until the human decides. That can take minutes, or more than an hour for a large pull request. Launch it with a long (or no) command timeout, or in the background, then read stdout when the process exits. In Claude Code, a background command is stopped after 30 minutes unless you pass run_in_background with a longer timeout (up to 7200000 ms). Do not kill the process to "finish" a review; a session that ends without a decision reads as no feedback. If a session was stopped by a time limit, run the same command again: annotation drafts are restored.

Stdout is the interface, but its contract is command-specific. For annotate and its last-message variants:

  • Plaintext (default): empty output on close, The user approved. on approve (an approval with a note prints an "Approved with Notes" message instead; treat the notes as guidance, not a change request), 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

bash
plannotator review [--git | --gitbutler] [--base <ref>] [--diff-type <type>] [--local | --no-local] [--patch-file <path | ->] [--no-git-remote-check] [--tailscale] [--json] [DIRECTORY | PR_URL]

Reviews local VCS changes, or a pull request when a URL is given. Default stdout stays plaintext: the existing close message, approval prompt, or feedback.

With --json, direct review emits one record: { decision: 'approved' | 'annotated' | 'dismissed', message: string }. message is the CLI-rendered text exactly as default plaintext would print it, without the final console newline. It includes customized prompts and non-blocking approval-with-notes framing; a denial suffix is included only when annotations.length > 0, including in PR mode, not for zero-annotation platform status.

Classify the outcome only by decision, never by message text. Notes on an approved review are guidance, not a blocking change request. This rendered message contract is separate from the raw feedback JSON used by annotate and the unchanged opencode-review integration. --hook is annotate-only.

  • VCS is auto-detected (JJ, GitButler, Git, and P4 where supported). --git forces plain Git; --gitbutler forces GitButler (requires the but CLI 0.21.0+). Running from a non-VCS parent folder that contains nested repos produces a combined workspace diff.
  • The default diff is "everything a PR would show now": merge-base of the trunk vs the working tree plus untracked files. --base <ref> opens the session against a different compare target (branch, origin/<branch>, tag, or commit) and --diff-type <type> opens it in a different mode (since-base, merge-base, branch, uncommitted, staged, unstaged, last-commit, local-vs-remote, all). Both are session-only: the reviewer can change either in the UI, and neither writes the user's saved defaults.
  • Reviewing one layer of a stacked branch? Pass --base <the branch below yours> — plannotator review --base feature/part-1 shows only what this layer adds, instead of everything since main.
  • Both flags are git-only: they error on jj, GitButler, Perforce, multi-repo workspace reviews, and PR URLs (a PR's base comes from the pull request). A --base ref that does not resolve is a startup error naming near-match branches, never a silently wrong diff.
  • --patch-file <path> reviews a static caller-supplied unified diff with no repository at all (use - to read it from stdin): the session serves the patch as-is with no file-system affordances that need a worktree. It cannot be combined with a PR/MR URL, --base, --diff-type, --git/--gitbutler, or --local/--no-local. Every working-tree affordance is off in that session (staging, hunk-context expansion, open-in-editor, code navigation, diff-type/base switching), and the endpoints behind them answer 400.
  • Pass a directory to review another repo or worktree: plannotator review ../feature-worktree or plannotator review ./backend --diff-type last-commit. Paths resolve relative to the invoking directory; quote paths containing spaces. A directory selects the review workspace, not a file filter. Accepts one directory or PR URL; a directory cannot be combined with --patch-file. Invalid targets fail instead of falling back to the current repo.
  • PR review (plannotator review https://github.com/owner/repo/pull/123, GitLab MR and Bitbucket Cloud PR URLs too) needs an authenticated gh or glab CLI; Bitbucket Cloud (https://bitbucket.org/<workspace>/<repo>/pull-requests/<id>) instead needs an Atlassian API token in PLANNOTATOR_BITBUCKET_TOKEN (plus PLANNOTATOR_BITBUCKET_EMAIL). --local (the default) builds a local checkout of the PR head in the background for full file access; --no-local skips it and reviews the platform diff only.
  • --no-git-remote-check stops the session contacting the git remote at all: no git ls-remote for the default branch or the "behind GitHub" baseline check. The compare target then comes from local refs only and the staleness banner never shows, which also takes away its one-click Fetch button (the /api/fetch-base endpoint stays available); fetching from a terminal is unaffected. Use it when a remote probe is expensive or intrusive — most sharply when SSH authentication is backed by a hardware token, where each probe is a physical touch prompt. The same opt-out is available session-wide as PLANNOTATOR_GIT_REMOTE_CHECK=0 or { "gitRemoteCheck": false } in ~/.plannotator/config.json (the flag beats the env var, which beats the config key). Without it the remote is queried when the review opens, on diff load, on a diff-type/base switch, and on Fetch — never on a timer.
  • --tailscale publishes the loopback session over the user's tailnet via tailscale serve (HTTPS, never public) and prints the URL with a QR code. A publish failure exits nonzero instead of leaving the server hanging.

plannotator annotate

bash
plannotator annotate <target> [--markdown] [--no-jina] [--app | --static] [--render-html] [--tailscale] [--gate] [--json] [--hook]

Opens one document, page, or app in the annotation UI and returns the human's annotations on stdout.

Plain annotate is feedback-only: it shows Close but no Approve button. When the user asks to review, approve, accept, or gate a generated plan/spec/document saved as a file, call the plannotator tool with "gate": true if you have it; otherwise always add --gate --json. Do not tell the user they can approve a plain annotate session. If the plan is being handed off through the host agent's native plan flow, do not launch annotate; let the plan-exit hook open the approval UI automatically.

Targets:

  • Markdown and text files: .md, .mdx, .txt.
  • Plain-text config and data files, rendered as text: .yaml, .yml, .json, .jsonc, .json5, .toml, .ini, .cfg, .conf, .properties, .csv, .tsv, .log, .xml, .env.example. .env itself is deliberately refused (it commonly holds secrets, and annotate history copies file contents). Source-code files belong to plannotator review, not annotate.
  • Diagram sources, opened in the full diagram viewer (zoom, pan, popout, click a node/edge/cluster to comment): .mmd, .mermaid (Mermaid) and .dot, .gv (Graphviz). The file is the whole diagram — no fence needed — and comments carry the part's id plus its real file line.
  • HTML files (.html, .htm): rendered as the raw page by default; --markdown converts to markdown instead. --render-html is accepted for compatibility; raw rendering is already the default.
  • URLs (https://...): fetched and converted via Jina Reader by default; --no-jina uses plain fetch plus Turndown instead.
  • Running local apps: a loopback http://localhost:PORT/ URL whose probe returns HTML opens in live-app mode (annotate the real running page). --app forces live mode and fails loudly when it cannot apply; --static forces the classic conversion pipeline. Non-loopback URLs always use the conversion pipeline.
  • Folders: plannotator annotate docs/ opens a file browser over the folder's supported files.
  • Several files: plannotator annotate spec.md mock.html notes.md opens them as one review, in the order given, with one decision. Every argument must be an existing file named by its path (no prose, URLs or folders among them). With the plannotator tool, pass the list as target.

Single files are capped at 2MB. Files are read from disk at stable project paths; keep the reviewed source where it lives.

Argument tolerance: extra words are fine (plannotator annotate look at notes.md please opens notes.md), but two resolvable targets mixed with prose, a URL or a folder is an error naming them, and an unrecognized dashed token disables the tolerance so flag typos fail loudly. When nothing resolves in a plain multi-word invocation, the CLI prints an agent-addressed handoff on stdout and exits 0: read it, work out the concrete target, and re-run with that exact path or URL.

Show full SKILL.md (1,203 more words)Show less
Strict gates and exit codes

For a machine-checkable approval gate, add --gate --json plus one or both strict flags:

bash
plannotator annotate report.md --gate --json --require-approval --result-file /tmp/decision.json
  • --require-approval: exit code reports the human outcome.
  • --result-file <path>: the stdout decision JSON is also published atomically to <path>. The parent directory must exist and the file must not; results resolve from the invocation cwd.

Exit codes under a strict flag (grep convention):

ExitMeaning
0Approved. The only success.
1The reviewer did not approve (annotated or dismissed); the decision record was still published.
2The gate itself failed: bad flag combination, startup failure (missing file, unreachable URL, oversized file), or the result file could not be published. Never treat as a reviewer outcome.
128+nKilled by signal n.

Without strict flags, startup failures exit 1 and the exit code carries no decision; parse the output instead. Both strict flags require --gate --json and reject --hook.

plannotator annotate-last

bash
plannotator annotate-last [--stdin] [--tailscale] [--gate] [--json] [--hook]
plannotator last

Opens the latest rendered assistant message from the current agent session in the annotation UI (last is an alias). The session log is discovered per host automatically; --stdin reads the content from stdin instead.

Do not print a commentary or status message immediately before running it: the command targets the latest rendered assistant message, so a preamble becomes the thing being annotated.

plannotator copilot-last

bash
plannotator copilot-last [--gate] [--json] [--hook]

The annotate-last variant for live GitHub Copilot CLI sessions (reads Copilot's session-state events). Normally invoked by the Copilot plugin's /plannotator-last command; use it only inside a Copilot CLI session.

plannotator archive

bash
plannotator archive

Opens a read-only browser over saved plan decisions (approved/denied badges) from the Plannotator data directory. No feedback comes back; the session ends when the user clicks Done.

plannotator guide

bash
plannotator guide list
plannotator guide export --id <savedGuideId> [--out <file.html>]
plannotator guide export --guide <guide.json> --patch <diff.patch> [--out <file.html>]
plannotator guide export --snapshot <snapshot.json> [--out <file.html>]
plannotator guide share --id <savedGuideId> [--public] [--ttl <7d|24h|30m|3600>] [--json]
plannotator guide unshare <id> --token <deleteToken>

Guided Reviews are AI-generated walkthroughs of a diff, produced inside the code review UI. The CLI works with saved ones:

  • list shows guides Plannotator has persisted for the current repo.
  • export writes one portable, self-contained HTML file (the viewer loads from guides.show). --guide + --patch exports a guide you authored yourself against a unified diff (--patch - reads stdin; validation is strict and names any file the guide references that the patch lacks). --out - writes to stdout. --viewer-url overrides the pinned viewer base.
  • share uploads the guide and prints a link. Encrypted by default: the key lives only in the URL fragment and the host stores ciphertext. --public stores it unencrypted so chat apps can unfurl a preview. --ttl sets an expiry; otherwise the link stays until unshare. A saved guide records its link, and a second share --id refuses rather than orphaning the first link's delete token.
  • unshare <id> --token <t> removes a link using the delete token printed at share time.

plannotator sessions

bash
plannotator sessions [--open [N]] [--clean] [--json]

Lists active Plannotator server sessions, each with its full target (absolute path, URL, PR URL or reviewed directory) and, for a review a host opened, its pn- id. --open reopens session N (default 1) in the browser, useful when a tab was closed mid-review. --clean drops stale entries. --json prints the list as a JSON array on stdout.

Other subcommands

bash
plannotator setup-goal <interview|facts> <bundle.json | -> [--json]
plannotator uninstall [--purge] [--yes] [--dry-run]
plannotator improve-context
  • setup-goal opens the interview or facts-acceptance UI for /goal workflows; it is driven by the plannotator-setup-goal skill and takes a bundle JSON (- reads stdin). Do not hand-build bundles.
  • uninstall removes Plannotator-installed components (--purge also deletes local data; --yes is required without a TTY; --dry-run previews).
  • improve-context and install-runtime are internal integration commands (hook plumbing and managed runtime install). Never run improve-context directly; plannotator install-runtime agent-terminal exists for reinstalling the optional annotate-terminal runtime and is normally run by the installer.
  • Additional host-internal subcommands (the opencode-* and copilot-plan family) are invoked by their plugins, not by you.

Environment variables that change behavior

VariableUse
PLANNOTATOR_REMOTE=1Force remote mode (fixed port 19432, wide bind) for SSH/devcontainer sessions; 0 forces local. Unset means SSH auto-detection.
PLANNOTATOR_PORTFix the port instead of a random one.
PLANNOTATOR_ORIGINOverride agent-origin detection (claude-code, codex, opencode, pi, oh-my-pi, amp, droid, copilot-cli, gemini-cli, kiro-cli, mistral-vibe). Set it when launching Plannotator from a wrapper the detection cannot see through.
PLANNOTATOR_AI=disabledDisable Ask AI and agent-launched review surfaces in the UI.
PLANNOTATOR_SHARE=disabledDisable URL sharing, including guide share links.
PLANNOTATOR_DATA_DIRMove the data directory (default ~/.plannotator): plans, history, drafts, config.
PLANNOTATOR_BROWSEROpen sessions in a specific browser.

Posting annotations into a live session

A running plan-review session exposes a small HTTP API on its base URL for external annotations: POST /api/external-annotations adds inline annotations the reviewer sees immediately, with PATCH/DELETE for updates and an SSE stream at /api/external-annotations/stream. The UI's "copy agent instructions" action puts the full API contract for the current session, with the correct base URL, on the clipboard for handing to an agent or script. If the user pastes such instructions, follow them; do not invent endpoints beyond that contract.

Asking the reviewer questions

When a decision needs the reviewer (a trade-off you cannot settle from the code or the conversation), write it as a question block. The reviewer answers in place, and the answers come back to you in an "Answers to your questions" section at the top of their feedback, with the questions they left open listed under "Unanswered".

markdown
:::question
Where should losing conflict versions be kept?

Last-write-wins silently drops the loser unless we keep it somewhere.

- [ ] Local only, purged after 30 days — cheap, no server change
- [ ] Server-side per user — survives reinstall, needs a retention policy
- [ ] Nowhere — accept silent loss for v1

Recommended: Local only, purged after 30 days
:::
  • :::question picks one choice, :::question-multi picks any number, :::question-text asks for free text (a block with no choices is free text too).
  • The first line is the question. Other prose lines are context. Most reviewers answer faster with a sentence or two of it: what the choice affects and what you already know. Context can include an image (![alt](path)), which helps when the question is about something visual, such as a screen.
  • Choices are task-list items: - [ ] label, optionally - [ ] label — why. The reviewer can always answer "Other", add a note, or skip.
  • Recommended: <label> marks your recommendation. Text that matches no choice is offered as a suggested answer.
  • - [x] means the choice is already settled. Use it when you resubmit: keep an answered question with the chosen choice checked, or remove the block and write the decision into the prose.
  • Leave blank lines between the parts so the block also reads well on GitHub.
  • Ask only what you cannot decide alone, and keep a round short (about 8 questions at most). Do not ask rhetorical questions or questions the codebase answers.
  • Each answer comes back under its question (### Q2. <question> (line N)) as Answer: <choice>, marked (your recommendation) when the reviewer took yours, or as Other: …, free text in a quote, or Skipped, plus any Note:. A question you marked - [x] is settled and only comes back if the reviewer changed it or added a note.

Do not

  • Do not run plannotator annotate, review, or last through a shell when you have a plannotator tool; call the tool.
  • Do not parse or scrape the browser UI's HTML; the CLI's stdout (and the documented HTTP API above) is the whole contract.
  • Do not use --hook outside a real hook context; use --json when you need structured output.
  • Do not run bare plannotator interactively; it is the hook entry point.
  • Do not guess flags. Run plannotator <command> --help when unsure; unknown dashed tokens make annotate fail on purpose.
  • Do not point plannotator annotate at source-code files or .env files; code goes through plannotator review, and .env is refused.
  • Do not start a strict gate (--require-approval) unless a human is actually there to review; the session blocks until they act.

© backnotprop, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in apps/skills/core/plannotator of backnotprop/plannotator.

  • SKILL.md
  • agents/openai.yaml

Open the folder on GitHubat commit 1d9fe3f

Compare with similar skills

Plannotator Reference next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Plannotator Reference compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Plannotator Reference this skillbacknotprop/plannotator9.2k—~5.7kAutomated safety check: WarnApache-2.0
Greploop Appsmichaelshimeles/skills1.3k1 repos~3.6kAutomated safety check: PassMIT
ReviewdogAgentSecOps/SecOpsAgentKit2191 repos~3kAutomated safety check: PassCustom licence
Qodo PR Resolversbusso/claudeclaw194—~4kAutomated safety check: PassMIT
GitHub Review Iterationprisma/orm48k—~2.2kAutomated safety check: PassApache-2.0
Cherry Studio PR ReviewCherryHQ/cherry-studio52k—~3.9kAutomated safety check: PassAGPL-3.0

Similar skills

  • Greploop Apps

    michaelshimeles/skills

    Loops on a large pull request, merge request or Perforce changelist, fixing Greptile findings until it scores 5/5 with no unresolved comments.

    1.3k GitHub starsUsed in 1 repo~3.6k tokens
    DevelopmentAuto-check passed
  • Reviewdog

    AgentSecOps/SecOpsAgentKit

    Automated code review and security linting integration for CI/CD pipelines using reviewdog.

    219 GitHub starsUsed in 1 repo~3k tokens
    DevelopmentAuto-check passed
  • Qodo PR Resolver

    sbusso/claudeclaw

    Review and resolve PR issues with Qodo - get AI-powered code review issues and fix them interactively (GitHub, GitLab, Bitbucket, Azure DevOps)

    194 GitHub stars~4k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Official

    Runs a loop on a GitHub pull request: fetch review state, triage comments into actions, implement them and resolve threads, repeating until nothing actionable is left.

    48k GitHub stars~2.2k tokensUpdated today
    DevelopmentAuto-check passed
  • Cherry Studio PR Review

    CherryHQ/cherry-studio

    Reviews Cherry Studio branches, pull requests, commits, files and docs against the project's own architecture, naming, API-boundary and UI rules, report-only by default.

    52k GitHub stars~3.9k tokensUpdated today
    DevelopmentAuto-check passed
  • PR Review

    jaemk/self_update

    Targeted, read-only review of a PR or checked-out branch. An agent skill from jaemk/self_update.

    961 GitHub stars~1.5k tokensUpdated 1 mo ago
    DevelopmentAuto-check: notes

More from backnotprop/plannotator

All 13 skills in this repo
  • Plannotator Visual Explainer

    backnotprop/plannotator

    Builds self-contained HTML explainers for plans, pull requests and technical concepts in Plannotator's theme, then opens them in its annotation view.

    9.2k GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed
  • Plannotator Release Preparation

    backnotprop/plannotator

    Drafts Plannotator release notes with full contributor credit, bumps versions in dependency order, builds, and starts the tag-driven release pipeline, in four reviewed phases.

    9.2k GitHub stars~4.6k tokensUpdated yesterday
    Auto-check passed
  • Plannotator Planning Analysis

    backnotprop/plannotator

    Mines a Plannotator archive of denied plans for feedback patterns and prompt improvements, then writes an HTML dashboard report, with a Claude Code fallback.

    9.2k GitHub stars~6.7k tokensUpdated yesterday
    Auto-check passed
  • Renovate Actions PR Review

    backnotprop/plannotator

    Reviews Renovate pull requests that bump GitHub Actions by checking pinned SHAs against upstream tags, scanning changelogs and confirming workflows stay compatible.

    9.2k GitHub stars~640 tokensUpdated yesterday
    Auto-check passed
  • Plannotator Goal Setup

    backnotprop/plannotator

    Guides the agent from a vague objective to a written goal package under goals/, using a confirmed restatement, a browser interview, a fact sheet and a codebase pass.

    9.2k GitHub stars~2.4k tokensUpdated yesterday
    Auto-check passed
  • Dependency Update Audit

    backnotprop/plannotator

    Audits outdated npm and Bun packages for supply chain integrity before bumping them, deferring risky ones and logging every decision.

    9.2k GitHub stars~1.8k tokensUpdated yesterday
    Auto-check passed

Questions about Plannotator Reference

What does Plannotator Reference do?

Reference for picking the right Plannotator tool or command for plan review, code review, annotating files and URLs, archived plan decisions and Guided Reviews. Plannotator is a local, browser-based review layer: it opens plans, diffs and documents in an annotation interface, a person marks them up and structured feedback returns to the agent on stdout. It installs as a single `plannotator` binary plus per-host hooks, so plan review opens by itself when you exit plan mode, and every other surface is started explicitly.

When should I use Plannotator Reference?

Plannotator Reference fits situations like: sending a plan saved as a file for visual review and approval; reviewing current code changes or a pull request in an annotation view; annotating a markdown file, URL or folder and getting structured feedback.

How do I install Plannotator Reference in Claude Code?

Run `npx skills add backnotprop/plannotator --skill plannotator -a claude-code`. Or copy the skill folder (apps/skills/core/plannotator in backnotprop/plannotator) into .claude/skills/plannotator in your project. Claude Code loads it when a task matches its description.

How do I install Plannotator Reference in Codex?

Run `npx skills add backnotprop/plannotator --skill plannotator -a codex`. Or copy the skill folder (apps/skills/core/plannotator in backnotprop/plannotator) into .agents/skills/plannotator in your project. Codex loads it when a task matches its description.

Can I use Plannotator Reference in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add backnotprop/plannotator --skill plannotator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/plannotator, .gemini/skills/plannotator, .github/skills/plannotator and .opencode/skills/plannotator in your project.

What does Plannotator Reference need to run?

Going by SKILL.md and its folder, Plannotator Reference needs the command-line tools its instructions call (git) and credentials named PLANNOTATOR_BITBUCKET_TOKEN. Our summary lists: The plannotator binary or its tool, with per-host hooks installed.

Does Plannotator Reference access the network?

SKILL.md names 2 domains. In commands or code: github.com and bitbucket.org; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Plannotator Reference safe to install?

Our automated static check of SKILL.md flagged 1 warning(s): contains instruction-override wording (e.g. “without asking the user”). Read the flagged lines before installing; the check is not a guarantee either way.

What licence does Plannotator Reference use?

Plannotator Reference is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Plannotator Reference use?

About 5.7k tokens (SKILL.md is roughly 23k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Plannotator Reference?

Skills that share tags, products or a category with Plannotator Reference: Greploop Apps (michaelshimeles/skills, 1.3k stars), Reviewdog (AgentSecOps/SecOpsAgentKit, 219 stars), Qodo PR Resolver (sbusso/claudeclaw, 194 stars) and GitHub Review Iteration (prisma/orm, 48k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Plannotator Reference?

backnotprop (a GitHub user) maintains it in backnotprop/plannotator, which has 9,185 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 6, 2026.

Source: backnotprop/plannotator on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.