brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Required reading whenever drafting any multi-step proposal, implementation plan, refactor approach, or response containing file paths and decision points. Use BEFORE writing any response that lists 3+ file paths, 2+ option-tradeoffs, a "Plan:"/"Steps:"/"Concrete changes:"
Claude Code
$ npx -y skills add ndom91/open-plan-annotator --skill plan-review-triggers --agent claude-code
Codex
$ npx skills add ndom91/open-plan-annotator --skill plan-review-triggers -a codex -y
Cursor
$ npx skills add ndom91/open-plan-annotator --skill plan-review-triggers -a cursor -y
Gemini CLI
$ npx skills add ndom91/open-plan-annotator --skill plan-review-triggers -a gemini-cli -y
GitHub Copilot
$ npx skills add ndom91/open-plan-annotator --skill plan-review-triggers -a github-copilot -y
OpenCode
$ npx skills add ndom91/open-plan-annotator --skill plan-review-triggers -a opencode -y
Windsurf
$ npx skills add ndom91/open-plan-annotator --skill plan-review-triggers -a windsurf -y
name: plan-review-triggers description: Required reading whenever drafting any multi-step proposal, implementation plan, refactor approach, or response containing file paths and decision points. Use BEFORE writing any response that lists 3+ file paths, 2+ option-tradeoffs, a "Plan:"/"Steps:"/"Concrete changes:" section, or ends with "OK to proceed?" / "sound good?" / "shall I…?". Use whenever the user says "draft a plan", "let's plan X", "what's the approach", "give me options", "how should we tackle this", "what would it look like", or asks for a "recommended approach" / "implementation plan" / "proposed fix" / "rollout plan". Also use when modifying more than 2 files, doing architectural/structural changes, refactoring, migration, feature additions, or investigation-based bug fixes. Routes the response through the open-plan-annotator browser UI instead of pasting plans inline.
<!-- This skill is the long-form trigger reference for end users who have the open-plan-annotator plugin installed. The terse always-on reminder lives in `scripts/session-context.mjs` (injected via the `SessionStart` hook); keep the two in rough sync when editing trigger rules. -->
This plugin (open-plan-annotator) installs a hook on `ExitPlanMode` that opens a browser UI where the user marks up plans directly — deletions, replacements, insertions, comments — and returns structured feedback. Inline markdown plans bypass that workflow.
Inline plans are a bug. When any trigger below fires, route through the annotator:
Annotator REQUIRED when the response would contain ANY of:
Hard gate. Count file paths. Count options. If the count crosses the line, the inline response is not allowed.
User messages combining directives ("let's add X", "can we Y") with an exploratory clause ("what do you think?") still trigger the annotator. Do NOT collapse into a short inline response because one clause was exploratory.
The annotator IS the discussion surface. Tradeoffs, options, and open questions belong inside the plan body where the user can comment on each one — not in flat chat. Treat exploratory clauses as "include alternatives in the plan", not "skip the plan".
Scan the drafted response for:
ANY match → discard inline response, route through annotator.
Include in every plan:
**Assistant-initiated:** `EnterPlanMode` → draft → `ExitPlanMode` → user annotates → revise on feedback → re-exit when aligned.
**User-initiated:** invoke `/annotate-plan <task>`. Same flow under the hood.
The slash command is for user invocation. When you decide a plan is needed without the user invoking it, prefer `EnterPlanMode` directly. Both paths fire the same annotator hook.
Plan approval is the user's go-ahead to implement. Once `ExitPlanMode` returns an approved decision, immediately start executing the approved plan.
Do not ask for another confirmation, do not say "ready when you are", and do not wait for a separate go-ahead unless the approval response explicitly requests changes or says not to proceed.
A fully local agentic coding plugin that intercepts plan mode and opens an annotation UI in your browser. Mark up the plan, send structured feedback to the agent, and receive a revised version — iterate as many times as you need until you're ready to approve.
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.