plan-plus
Smarter plan execution for Claude Code.
- Automatically extracts plan steps into individual files when plan mode completes
- Stores project context, goals, and requirements in dedicated context files
- Agents read only the step and context files they need, then their context is discarded
- The main conversation only carries a lightweight skeleton — not the full verbose plan
- Base plan mode re-injects the entire plan every turn, filling context fast — plan-plus fixes this
Quickstart
claude plugin marketplace add RandyHaylor/plan-plus
claude plugin install plan-plus
Restart Claude Code after adding to marketplace and installing.
Use plan mode normally.
(shift+tab until it says plan mode in the cli tool - a button in the ui for vs code plugin).
When you approve a plan and claude transitions to execute the plan, plan-plus will automatically restructure the plan file and inject more instructions.
(Manually exiting plan mode will not - you must go through claude code offering you the plan approval step and transition)
Disabling for a project or globally:
include in project-folder/.claude/settings.local.json or user-folder/.claude/settings.loca.json:
"enabledPlugins": {
"plan-plus@plan-plus": false
}
Case Study: Pac-Man Calculator
A React calculator app with an animated Pac-Man that navigates the lanes between buttons, turning toward the mouse at intersections — no diagonal movement, no 180° turns, dot-product direction picking at each node.
https://github.com/user-attachments/assets/723004a5-78ed-4f7f-a9a5-3fcf62010036
Two sessions built the same app from the same plan and the same 8 context files (lane graph construction, movement algorithm, canvas rendering, calculator reducer, CSS layout, component hierarchy, TypeScript interfaces, edge cases). Both produced near-identical results — Pac-Man successfully navigating between buttons, chomping, turning toward the cursor.
| Metric | plan-plus | Standard plan mode |
|---|
| Total tokens | 1.59M | 4.35M |
| API calls | 50 | 98 |
| Peak context | 41K | 61K |
| Calls at 30K+ context | 23 | 73 |
63% fewer tokens, 49% fewer API calls. Plan-plus delegated work to 4 focused agents while standard mode ran all 98 calls in one growing context. The plan-plus output was also more robust — reusable utilities, generic spanning-button detection, correct animation overshoot math — while standard mode had a subtle momentum bug and hardcoded layout assumptions.
The Problem
Claude Code re-injects the full plan file into the in-memory message array on every turn during plan execution. These injections accumulate and can't be removed until compaction. A 4KB plan injected across 30 turns adds ~120KB of duplicate plan content to the main conversation context.
The Solution
Plan-plus intercepts ExitPlanMode and restructures the plan:
- Splits the full plan into individual step files
- Creates a lightweight skeleton that replaces the original plan file
- Mines the conversation for goals
- Injects a Step 0 that uses an agent to fill in real requirements and refine the skeleton
- Provides a focused executor agent for step-by-step work with ephemeral context
The skeleton is all that gets injected per turn. Agents read the detailed step files only when they need them, and their context is discarded when they return.
What Happens When You Exit Plan Mode
Before plan-plus — the full verbose plan is injected every turn.
After plan-plus — your project gets this structure:
.claude/plans/plan-plus--<session-name>/
plan-full.md Full original plan (backup)
context/
project.md Project context extracted from plan preamble
goals.md Goals mined from early conversation messages
requirements.md Created by Step 0 agent
steps/
00-update-skeleton.md Step 0: agent refines the skeleton
01-documentation.md Step detail files with full content
02-project-setup.md from each section of the original plan
03-game-logic.md
...
The skeleton (what gets injected per turn):
# plan-plus--vue-checkers-multiplayer
## Instructions
- Use plan-plus-executor agent for each step
- Agent context is ephemeral
- Update context/ files with discoveries
- Mark steps done as you complete them
full plan: .claude/plans/plan-plus--vue-checkers-multiplayer/plan-full.md
context: .claude/plans/plan-plus--vue-checkers-multiplayer/context/
steps: .claude/plans/plan-plus--vue-checkers-multiplayer/steps/
## Requirements
- Stack: Vue 3 + Vite + TypeScript + Vitest + Firebase/Firestore
- Architecture: Pure game logic -> Firebase service -> Vue components
- Patterns: Strict TDD, pure functions, reactive composable
- Key features: Multiplayer via Firestore, mandatory jumps, king promotion