plannotator
Use this skill when the job is to classify one review packet, open the smallest honest visual review path, and leave broad planning / PR policy / UI critique work outside the front door.
plannotator is not the planner.
It is the human approval gate that sits between:
- plan/spec creation (
task-planning, ralph)
- orchestration/runtime ownership (
jeo, task-planning, bmad)
- broader PR/code judgment (
code-review)
- rendered-UI bug markup (
agentation)
- clean browser verification (
browser-harness)
Read these support docs first:
- references/intake-packets-and-route-outs.md
- references/platform-setup.md
- references/notes-and-troubleshooting.md
When to use this skill
- A coding agent already produced an implementation plan and a human must approve or request changes before coding starts.
- A concrete git diff, commit range, or PR exists and the reviewer wants browser-based line-targeted feedback.
- A markdown artifact such as a spec, PRD, architecture note, or generated plan package needs visual review and revision feedback.
- The user needs to connect
plannotator to Claude Code, Gemini CLI, Codex CLI, or OpenCode and the main job is setup for the review loop.
- The review flow exists but remote mode, stable URLs/ports, or platform-specific behavior is flaky and needs targeted troubleshooting.
When not to use this skill
- The main job is writing or refining the plan/spec itself →
task-planning, ralph, or survey
- The main job is broad PR policy, merge criteria, risk judgment, or code-owner approval →
code-review
- The main job is exact rendered-UI critique that should drive frontend fixes →
agentation
- The main job is clean disposable browser automation or deterministic website verification →
browser-harness
- The main job is task orchestration, board state, or multi-agent routing →
jeo, task-planning, bmad
- The main job is note taxonomy, wiki curation, or long-term note-system management →
obsidian, llm-wiki
Instructions
Step 1: Classify the review packet first
Normalize the request into one primary packet before discussing commands.
plannotator_intake:
primary_packet: plan-review | diff-review | markdown-review | platform-setup | troubleshooting
artifact_ready: yes | no
artifact_type: plan | git-diff | pr | markdown-spec | generated-response | unknown
platform: claude | gemini | codex | opencode | mixed | unknown
trigger_mode: native-hook | manual-review | unknown
feedback_goal: approve | request-changes | annotate | archive | unknown
repo_context: git-repo | markdown-only | remote-container | unknown
confidence: high | medium | low
Default to the smallest obvious interpretation:
- existing implementation plan →
plan-review
- existing code changes / PR / commit range →
diff-review
- existing spec or markdown artifact →
markdown-review
- install/integration question →
platform-setup
- flaky remote/browser/status issue →
troubleshooting
Step 2: Verify the concrete artifact exists
plannotator only helps once something concrete can be reviewed.
Checklist:
- A plan, diff, PR, markdown file, or generated response already exists.
- The user wants review, not plan generation.
- For diff review, a git repo, PR URL, or explicit commit range exists.
- For markdown/spec review, the file or generated artifact is identifiable.
- For note export, save/integration is configured; treat it as secondary, not the main packet.
If the artifact is missing, route out instead of forcing the review tool.
Step 3: Choose exactly one review packet
Use the router in references/intake-packets-and-route-outs.md and pick one primary packet:
plan-review
diff-review
markdown-review
platform-setup
troubleshooting
List anything else as follow-up, not as a co-owner.
Step 4: Run the chosen packet
- Plan review → confirm the runtime can hand the plan into
plannotator, use the native/hook path when real, annotate one issue per step, and end with approve, request changes, or archive/save.
- Diff review → use a concrete target and launch the smallest diff packet:
bash scripts/review.sh
bash scripts/review.sh HEAD~1
bash scripts/review.sh main...HEAD
- Markdown review → confirm the spec/PRD/architecture file exists, use annotation/review mode directly, and be explicit when the runtime only supports annotation rather than a stronger approval path.
- Platform setup → start with:
bash scripts/install.sh
bash scripts/check-status.sh
then use references/platform-setup.md.
- Troubleshooting → start with:
bash scripts/check-status.sh
bash scripts/configure-remote.sh
then use references/notes-and-troubleshooting.md.
Step 5: Keep manual-vs-hook reality explicit
- Claude and Gemini are the clearest native/hook-driven plan-review fits.
- Codex has public hooks, but upstream
plannotator still documents the practical path as manual diff/markdown review or partial setup.
- OpenCode users explicitly asked for more manual control when auto-invocation is too eager.
Do not flatten this into “all platforms work the same.”
Step 6: Route adjacent work aggressively
- planning/spec creation or refinement →
task-planning, ralph, survey
- orchestration state or multi-agent routing →
jeo, task-planning, bmad
- broad PR policy, merge gating, or risk judgment →
code-review
- rendered UI bug markup →
agentation
- clean disposable browser verification →
browser-harness
- note/vault/wiki administration beyond saving reviewed artifacts →
obsidian, llm-wiki
Step 7: Use a short output contract
Preferred output:
# plannotator Review Packet
- Primary packet:
- Artifact:
- Platform + trigger mode:
- Next action:
- Outcome or limitation:
- Route-outs:
For setup-heavy asks, use a short setup brief with:
- platform
- native-hook vs manual-review status
- install commands
- verification steps
- caveats
Examples
Example 1: Approve a concrete plan
Input
The agent already proposed a 6-step implementation plan. I want to inspect it visually and either approve it or send corrections back before coding starts.
Good output direction
- choose
plan-review
- verify the plan already exists
- use the runtime's real review surface
- annotate one issue per step
- end with approve vs request-changes
- route plan creation back out if the plan is still immature
Example 2: Review a diff
Input
The agent already changed three files. Open the visual diff review for main...HEAD and let me leave targeted feedback.
Good output direction
- choose
diff-review
- verify git context / diff range
- use
bash scripts/review.sh main...HEAD
- keep broader PR-policy review routed to
code-review
Example 3: Review a PRD/spec artifact
Input
I want to mark up this architecture note and either accept it as-is or send revision feedback before we continue.
Good output direction
- choose
markdown-review
- verify the markdown artifact exists
- explain whether the current platform supports native approval or manual annotation only
- keep note export secondary and route wiki/vault management outward
Example 4: Codex setup reality check
Input
Set up plannotator for Codex so I can review plans before code runs.
Good output direction
- choose
platform-setup
- start with install + status verification
- explain the current Codex manual/partial reality honestly instead of promising parity that upstream docs do not show
- route broad hook/platform policy work outward if needed
Best practices
- Treat
plannotator as a visual approval gate, not the planning engine.
- Review one concrete artifact at a time.
- Keep manual-review vs native-hook differences explicit.
- Use one annotation per issue whenever possible.
- End with a clear outcome: approve, request changes, annotate only, or archive.
- Keep note export secondary to the review packet.
- Route PR policy, orchestration, and rendered-UI critique to neighboring skills instead of stretching
plannotator.
References
1---2name: plannotator3description: Routing-first visual approval gate for AI agent plans, markdown specs, and diffs. Use when a human needs to review a concrete plan before execution, inspect a targeted diff in a browser, mark up a spec/PRD/architecture note, or set up the review loop on Claude Code, Gemini CLI, Codex CLI, or OpenCode. Route planning/spec creation to `task-planning` or `ralph`, broad PR-policy review to `code-review`, rendered-UI critique to `agentation`, and fresh-session browser verification to `browser-harness`.4license: MIT5---67# plannotator89Use this skill when the job is to **classify one review packet, open the smallest honest visual review path, and leave broad planning / PR policy / UI critique work outside the front door**.1011`plannotator` is not the planner.12It is the **human approval gate** that sits between:13- plan/spec creation (`task-planning`, `ralph`)14- orchestration/runtime ownership (`jeo`, `task-planning`, `bmad`)15- broader PR/code judgment (`code-review`)16- rendered-UI bug markup (`agentation`)17- clean browser verification (`browser-harness`)1819Read these support docs first:20- [references/intake-packets-and-route-outs.md](references/intake-packets-and-route-outs.md)21- [references/platform-setup.md](references/platform-setup.md)22- [references/notes-and-troubleshooting.md](references/notes-and-troubleshooting.md)2324## When to use this skill25- A coding agent already produced an implementation plan and a human must approve or request changes before coding starts.26- A concrete git diff, commit range, or PR exists and the reviewer wants browser-based line-targeted feedback.27- A markdown artifact such as a spec, PRD, architecture note, or generated plan package needs visual review and revision feedback.28- The user needs to connect `plannotator` to Claude Code, Gemini CLI, Codex CLI, or OpenCode and the main job is setup for the review loop.29- The review flow exists but remote mode, stable URLs/ports, or platform-specific behavior is flaky and needs targeted troubleshooting.3031## When not to use this skill32- **The main job is writing or refining the plan/spec itself** → `task-planning`, `ralph`, or `survey`33- **The main job is broad PR policy, merge criteria, risk judgment, or code-owner approval** → `code-review`34- **The main job is exact rendered-UI critique that should drive frontend fixes** → `agentation`35- **The main job is clean disposable browser automation or deterministic website verification** → `browser-harness`36- **The main job is task orchestration, board state, or multi-agent routing** → `jeo`, `task-planning`, `bmad`37- **The main job is note taxonomy, wiki curation, or long-term note-system management** → `obsidian`, `llm-wiki`3839## Instructions4041### Step 1: Classify the review packet first42Normalize the request into one primary packet before discussing commands.4344```yaml45plannotator_intake:46 primary_packet: plan-review | diff-review | markdown-review | platform-setup | troubleshooting47 artifact_ready: yes | no48 artifact_type: plan | git-diff | pr | markdown-spec | generated-response | unknown49 platform: claude | gemini | codex | opencode | mixed | unknown50 trigger_mode: native-hook | manual-review | unknown51 feedback_goal: approve | request-changes | annotate | archive | unknown52 repo_context: git-repo | markdown-only | remote-container | unknown53 confidence: high | medium | low54```5556Default to the smallest obvious interpretation:57- existing implementation plan → `plan-review`58- existing code changes / PR / commit range → `diff-review`59- existing spec or markdown artifact → `markdown-review`60- install/integration question → `platform-setup`61- flaky remote/browser/status issue → `troubleshooting`6263### Step 2: Verify the concrete artifact exists64`plannotator` only helps once something concrete can be reviewed.6566Checklist:671. A plan, diff, PR, markdown file, or generated response already exists.682. The user wants **review**, not plan generation.693. For diff review, a git repo, PR URL, or explicit commit range exists.704. For markdown/spec review, the file or generated artifact is identifiable.715. For note export, save/integration is configured; treat it as secondary, not the main packet.7273If the artifact is missing, route out instead of forcing the review tool.7475### Step 3: Choose exactly one review packet76Use the router in [references/intake-packets-and-route-outs.md](references/intake-packets-and-route-outs.md) and pick one primary packet:77- `plan-review`78- `diff-review`79- `markdown-review`80- `platform-setup`81- `troubleshooting`8283List anything else as follow-up, not as a co-owner.8485### Step 4: Run the chosen packet86- **Plan review** → confirm the runtime can hand the plan into `plannotator`, use the native/hook path when real, annotate one issue per step, and end with **approve**, **request changes**, or **archive/save**.87- **Diff review** → use a concrete target and launch the smallest diff packet:88 ```bash89 bash scripts/review.sh90 bash scripts/review.sh HEAD~191 bash scripts/review.sh main...HEAD92 ```93- **Markdown review** → confirm the spec/PRD/architecture file exists, use annotation/review mode directly, and be explicit when the runtime only supports annotation rather than a stronger approval path.94- **Platform setup** → start with:95 ```bash96 bash scripts/install.sh97 bash scripts/check-status.sh98 ```99 then use [references/platform-setup.md](references/platform-setup.md).100- **Troubleshooting** → start with:101 ```bash102 bash scripts/check-status.sh103 bash scripts/configure-remote.sh104 ```105 then use [references/notes-and-troubleshooting.md](references/notes-and-troubleshooting.md).106107### Step 5: Keep manual-vs-hook reality explicit108- Claude and Gemini are the clearest native/hook-driven plan-review fits.109- Codex has public hooks, but upstream `plannotator` still documents the practical path as manual diff/markdown review or partial setup.110- OpenCode users explicitly asked for more manual control when auto-invocation is too eager.111112Do **not** flatten this into “all platforms work the same.”113114### Step 6: Route adjacent work aggressively115- planning/spec creation or refinement → `task-planning`, `ralph`, `survey`116- orchestration state or multi-agent routing → `jeo`, `task-planning`, `bmad`117- broad PR policy, merge gating, or risk judgment → `code-review`118- rendered UI bug markup → `agentation`119- clean disposable browser verification → `browser-harness`120- note/vault/wiki administration beyond saving reviewed artifacts → `obsidian`, `llm-wiki`121122### Step 7: Use a short output contract123Preferred output:124125```markdown126# plannotator Review Packet127- Primary packet:128- Artifact:129- Platform + trigger mode:130- Next action:131- Outcome or limitation:132- Route-outs:133```134135For setup-heavy asks, use a short setup brief with:136- platform137- native-hook vs manual-review status138- install commands139- verification steps140- caveats141142## Examples143144### Example 1: Approve a concrete plan145**Input**146> The agent already proposed a 6-step implementation plan. I want to inspect it visually and either approve it or send corrections back before coding starts.147148**Good output direction**149- choose `plan-review`150- verify the plan already exists151- use the runtime's real review surface152- annotate one issue per step153- end with approve vs request-changes154- route plan creation back out if the plan is still immature155156### Example 2: Review a diff157**Input**158> The agent already changed three files. Open the visual diff review for `main...HEAD` and let me leave targeted feedback.159160**Good output direction**161- choose `diff-review`162- verify git context / diff range163- use `bash scripts/review.sh main...HEAD`164- keep broader PR-policy review routed to `code-review`165166### Example 3: Review a PRD/spec artifact167**Input**168> I want to mark up this architecture note and either accept it as-is or send revision feedback before we continue.169170**Good output direction**171- choose `markdown-review`172- verify the markdown artifact exists173- explain whether the current platform supports native approval or manual annotation only174- keep note export secondary and route wiki/vault management outward175176### Example 4: Codex setup reality check177**Input**178> Set up plannotator for Codex so I can review plans before code runs.179180**Good output direction**181- choose `platform-setup`182- start with install + status verification183- explain the current Codex manual/partial reality honestly instead of promising parity that upstream docs do not show184- route broad hook/platform policy work outward if needed185186## Best practices1871. Treat `plannotator` as a visual approval gate, not the planning engine.1882. Review one concrete artifact at a time.1893. Keep manual-review vs native-hook differences explicit.1904. Use one annotation per issue whenever possible.1915. End with a clear outcome: approve, request changes, annotate only, or archive.1926. Keep note export secondary to the review packet.1937. Route PR policy, orchestration, and rendered-UI critique to neighboring skills instead of stretching `plannotator`.194195## References196- [GitHub: backnotprop/plannotator](https://github.com/backnotprop/plannotator)197- [Official site: plannotator.ai](https://plannotator.ai)198- [references/intake-packets-and-route-outs.md](references/intake-packets-and-route-outs.md)199- [references/platform-setup.md](references/platform-setup.md)200- [references/notes-and-troubleshooting.md](references/notes-and-troubleshooting.md)201- [references/review-modes-and-boundaries.md](references/review-modes-and-boundaries.md)