From claude-optimizer
Use when drafting a Plan-mode plan for moderate/complex work. Plan must include an Alternatives/Tradeoffs/Decisions section with 2-3 approaches before ExitPlanMode. Hook gate enforces. Trivial plans (<30 lines) bypass.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-optimizer:cm-multi-planThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The user's stated workflow: "show me two or three plans or two or three options... we could pick and choose the best portions of each plan." A single recommended approach hides the tradeoff space and forces the user to push back to surface alternatives. This skill makes alternatives a first-class part of the plan.
The user's stated workflow: "show me two or three plans or two or three options... we could pick and choose the best portions of each plan." A single recommended approach hides the tradeoff space and forces the user to push back to surface alternatives. This skill makes alternatives a first-class part of the plan.
[complexity: moderate] or [complexity: complex].A section with one of these canonical headings (## or ### level, case-insensitive):
## Alternatives (preferred for genuinely competing approaches)## Tradeoffs (preferred when surfacing pros/cons of one direction)## Options / ## Approaches considered / ## ComparisonInside the section: 2–3 distinct entries. For each, write:
The ## Design decisions heading also satisfies the gate — useful when the alternatives are smaller forks discussed inline rather than a single comparison block. The body of that section must still surface the tradeoffs that were considered.
The plugin's pre_exit_plan.sh PreToolUse hook checks the most recently modified plan file under ~/.claude/plans/:
.last_prompt_complexity is moderate or complex AND the plan file lacks any canonical-heading match → ExitPlanMode is blocked with exit 2 and a stderr message naming the rule.cm-research-first: MULTI_PLAN_OFF=1 env, .claude/optimizer-disabled.Bad plan (gate blocks):
# Add dark mode toggle
## Implementation
1. Add a useTheme hook
2. Wire it into the root component
3. Persist choice to localStorage
Good plan (gate allows):
# Add dark mode toggle
## Alternatives
### A. CSS variables + class toggle
**Pros:** zero JS bundle cost; works without React state. **Cons:** can't conditionally render different components per theme.
### B. React context + theme prop on every component
**Pros:** componentry can branch on theme. **Cons:** heavier; requires touching every styled component.
### C. styled-components ThemeProvider (chosen)
**Pros:** idiomatic for the existing component lib; supports both static CSS and conditional rendering. **Cons:** small runtime overhead.
→ chosen because the codebase already uses styled-components and option B's prop-drilling cost outweighs A's bundle savings.
## Implementation
…
MULTI_PLAN_OFF=1 for the call, and proceed. Note the bypass in the plan so the user can reverse if regretted.*.md under ~/.claude/plans/ (mtime within the last hour). If you wrote the plan elsewhere (e.g. project-local), the gate has no plan to scan and falls through to allow.npx claudepluginhub gibouu/claude-optimizer --plugin claude-optimizerProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.