plannotator-annotate — Claude Code skill: annotate files and URLs
Opens Plannotator's annotation UI for a file, folder or URL, then hands the returned annotations back to the agent.
npx skills add backnotprop/plannotator --skill plannotator-annotate -a claude-codeWhat plannotator-annotate does
The skill runs PLANNOTATOR_ORIGIN=kiro-cli plannotator annotate $ARGUMENTS. Arguments can be a markdown or plain-text config path (.md, .txt, .yaml, .json, .toml, .ini, .csv, .log), a folder, an html file, or a URL. Whatever you pass is what opens in the UI.
If the command says the arguments could not be resolved to a file, URL or folder, the skill tells the agent to work out which target you meant and re-run the command with that concrete path. Then it addresses what the UI returns.
A session that closes with no feedback — empty output, or a JSON object with "decision": "dismissed" — is not approval. The agent acknowledges it in one sentence and stops; no work starts. Keep that in mind, because a silently closed window does not green-light edits.
What it helps with
- annotate a config before editing it
- collect feedback on a folder of docs
- open a spec URL in the annotation UI
- feed returned annotations back to the agent
- tell a dismissed session apart from approval
Example prompts for the agent
- Open
docs/config.yamlin Plannotator and address the annotations - Show the
specs/folder in the annotation UI - Open the spec URL with plannotator annotate
How to install plannotator-annotate
1Skills CLI (Vercel)
npx skills add backnotprop/plannotator --skill plannotator-annotate -a claude-code2Manually: put the files in place
~/.claude/skills/plannotator-annotate/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/plannotator-annotate/
1Skills CLI (Vercel)
npx skills add backnotprop/plannotator --skill plannotator-annotate -a codex2Manually: put the files in place
.agents/skills/plannotator-annotate/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add backnotprop/plannotator --skill plannotator-annotate -a cursor2Manually: put the files in place
.cursor/skills/plannotator-annotate/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install backnotprop/plannotator plannotator-annotate2Manually: put the files in place
.github/skills/plannotator-annotate/SKILL.md1Skills CLI (Vercel)
npx skills add backnotprop/plannotator --skill plannotator-annotate -a gemini-cli2Platform CLI
gemini skills install https://github.com/backnotprop/plannotator --path apps/kiro-cli/skills/plannotator-annotateManually: put the files in place
.devin/skills/plannotator-annotate/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add backnotprop/plannotator --skill plannotator-annotate -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about plannotator-annotate
How do I install plannotator-annotate in Claude Code?
Run npx skills add backnotprop/plannotator --skill plannotator-annotate -a claude-code. The skill lands at ~/.claude/skills/plannotator-annotate/SKILL.md.
What does plannotator-annotate do?
It opens Plannotator's annotation UI for a file, folder or URL and passes the resulting annotations back to the agent to address.
What happens if the session closes without feedback?
Empty output or a JSON object with "decision": "dismissed" is not approval. The agent acknowledges it in one sentence and stops without starting any work.
Source text
SKILL.md · Apache-2.0
--- name: plannotator-annotate disable-model-invocation: true description: Open Plannotator's annotation UI for a file, folder, or URL, then address the returned annotations. --- # Plannotator Annotate (Kiro) Run: ```bash PLANNOTATOR_ORIGIN=kiro-cli plannotator annotate $ARGUMENTS ``` `$ARGUMENTS` should be a markdown or plain-text config file path (.md, .txt, .yaml, .json, .toml, .ini, .csv, .log, …), folder path, html file path, or URL. If the command reports that the arguments could not be resolved to a file, URL, or folder, work out which target the user means and re-run the command yourself with that concrete path or URL. If the session closes without feedback (the output is empty, or a JSON object with `"decision": "dismissed"`), acknowledge it in one sentence and stop. Do not begin any work: closing the session is not approval.
© backnotprop · Apache-2.0 · backnotprop/plannotator