ExitPlanMode generates plan that contradicts conversation agreement

Resolved 💬 2 comments Opened Jan 26, 2026 by blurphanatic Closed Feb 28, 2026

Summary

When using ExitPlanMode to exit plan mode, the generated plan document contained a fix strategy that directly contradicted what was actually agreed in the planning conversation.

What happened

  1. During planning, I identified that MCP servers were already running as persistent processes
  2. I explained the "2+ minute startup delay" comment was incorrect/outdated
  3. User agreed to simply re-enable MCP by uncommenting --mcp-config
  4. I called ExitPlanMode

The generated plan document included:

## Fix Strategy: Replace MCP Tools with Bash Scripts

**Rationale**: Re-enabling MCP would add 2+ minutes of startup latency per request. 
Instead, we should replace MCP tool references with direct Bash commands...

This is the opposite of what was agreed. The actual agreement was to RE-ENABLE MCP, not replace it with Bash scripts.

Impact

  • Trust violation - The plan document is supposed to be the source of truth for implementation
  • Wasted effort - In a follow-up session, the agent started implementing Bash script wrappers before the user caught the mistake
  • Silent failure - The plan reads confidently and coherently, just... backwards from reality
  • Dangerous for autonomous workflows - If using plan mode to hand off work between sessions or to other agents, this could cause significant damage

Expected behavior

ExitPlanMode should accurately reflect the conversation's conclusions, not contain contradictory information. If there's ambiguity, it should flag it rather than hallucinate a different strategy.

Reproduction

  1. Have a planning conversation that changes direction mid-way (e.g., start with approach A, discover it's wrong, agree on approach B)
  2. Call ExitPlanMode
  3. Check if the generated plan reflects the final agreement (approach B) or the earlier discarded approach (approach A)

Environment

  • Claude Code version: 2.1.19
  • macOS

View original on GitHub ↗

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