Plan mode exits without user approval when user sends unrelated message

Resolved 💬 3 comments Opened Mar 22, 2026 by lirender Closed Mar 26, 2026

Bug Report

Scenario

  1. Enter plan mode (user clicks plan mode or Claude enters via system prompt)
  2. Claude writes plan to the plan file
  3. While Claude is still working in plan mode, user sends a separate/unrelated message (e.g., "trigger search index rebuild")
  4. Claude treats the user's message as implicit plan approval and calls ExitPlanMode
  5. Claude begins executing the plan without the user ever reviewing it

Expected Behavior

Claude should remain in plan mode when receiving an unrelated user message. Options:

  • Spawn a subagent for the separate request (Agent tool is allowed in plan mode)
  • Acknowledge the request and queue it for after plan approval
  • Continue plan work and call ExitPlanMode only after completing the plan

The user should always get to review the plan before ExitPlanMode is called.

Actual Behavior

Plan mode exited silently. Claude began executing code changes (file writes, git commits) based on an unreviewed plan. The user had no opportunity to modify or reject the plan.

Additional Context

  • This happened during a long session with multiple plan mode entries/exits
  • The user's interrupt message was clearly unrelated to the plan ("trigger search index rebuild" vs. a plan about creating a Claude skill)
  • The plan mode system prompt explicitly states: "Use ExitPlanMode to request plan approval. Do NOT ask about plan approval in any other way"

Feature Request

Related: a "steer" command (similar to Codex's approach) would help users redirect Claude's attention to a different task while current work continues, rather than accidentally interrupting the planning workflow.

Environment

  • Claude Code version: 2.1.81
  • Model: claude-opus-4-6 (1M context)
  • Platform: macOS (Darwin 25.3.0)

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗