Plan mode silently exits / auto mode overrides "plan carefully" requests on follow-up work
Resolved 💬 4 comments Opened Apr 25, 2026 by tarekbadrsh Closed May 29, 2026
Summary
Two related plan-mode quirks observed in Claude Code:
- After an initial
ExitPlanModeis approved, subsequent rounds of work that the user explicitly asks to be planned (e.g. "please plan carefully before implementing") do not cause Claude to re-enter plan mode. Auto mode's "execute immediately" guidance silently wins, and Claude starts editing files in the same turn it writes a brief inline plan. There is no secondExitPlanModecheckpoint.
- The Claude Code UI plan-mode indicator can show "plan mode active" to the user while the system reminders the assistant receives do not include the
Plan mode is activereminder. From the assistant's side it looks like auto mode; from the user's side it looks like plan mode. The two states are out of sync.
Repro (approx.)
- Enter plan mode, build a plan, get it approved via
ExitPlanMode. - Auto mode becomes active.
- Later in the same session, the user asks for a fresh round of work and explicitly writes something like "please read the code again and plan carefully before implementing".
- Claude writes a few sentences of plan in chat, then immediately calls
Edit/Bashetc. — noExitPlanModeround-trip. - Separately, the user reports their UI shows plan mode is on, but the assistant has been making edits without complaint.
Expected
- When a user explicitly says "plan carefully" / "let's plan this" / similar after an earlier plan was approved, Claude should treat it as a new planning round and present via
ExitPlanModefor fresh approval — even if auto mode is active. - The plan-mode indicator visible to the user should be authoritative; if it's on, the assistant should know about it via system reminders.
Actual
- Inline plan + immediate execution in the same turn.
- UI / assistant state mismatch around plan mode.
Environment
- Claude Code, model
claude-opus-4-7[1m] - macOS Darwin 25.4.0, zsh
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗