[Feature Request] Plan mode should support plan files outside ~/.claude/plans directory
Bug Description
New plan mode (is this the V2 that I saw env vars for?) can ONLY use plan files in ~/.claude/plans, which breaks many workflows that use plan files in other places.
slightly more detail
The new plan mode is a step in the right direction. I started writing context to files for managing cross-session work waaaay back in june, so I'm glad to see it formalized. BUT
BUT the new plan mode breaks a few things. I tend to like to version control my plan files - it makes it easier to review the code and run other LLMs or even other claude code sessions to check the work product. A bit like antigravity before antigravity.
The new plan mode seems to FORCE using the plans in ~/.claude/plans, even when I explicitly ask it to use sentry-architecture-redesign-plan.md or something like it.
When I'm lucky after compaction it will remember to also read my plan file:
⎿ Referenced file copilot_notes/sentry-architecture-redesign-plan.md
⎿ Read ../../../.claude/plans/abstract-fluttering-unicorn.md (145 lines)
But this is very brittle. When planning, it's also VERY confusing! Which plan is it presenting with ExitPlanMode? Is it abstract-fluttering-unicorn.md or sentry-architecture-redesign-plan.md? What's the actual difference?
Then there are... other sillynesses... like, asking claude to edit the plan files in ~/.claude, when outside of plan mode, triggers the permissions request prompt because it's editing a file in .claude! If I ask it to make a bunch of changes to the file... a bunch of requests, because .claude directories are never allowed to "always accept edits" for what I presume are obvious security reasons. Oopsies.
@ed-irl has shared a closely related bug report here:
https://github.com/anthropics/claude-code/issues/12619
I think this is clearly related, here in @jgwill's report:
https://github.com/anthropics/claude-code/issues/12499
I think this is a parallel problem, as I've seen the new permissions for plan mode (enforcing read only more aggressively?) break writes by the Plan subagent when I ask it to edit my own plan files (e.g. sentry-architecture-redesign-plan.md), in @alexn-tinwell's issue:
https://github.com/anthropics/claude-code/issues/12434
I _very_ vaguely suspect this is related: https://github.com/anthropics/claude-code/issues/12595
For what it's worth, I think the comments in this issue are incorrect:
https://github.com/anthropics/claude-code/issues/12366
I almost _always_ want my plan files to be as thorough as possible. Getting things done faster is not super valuable to me if they're not done correctly... I can do things arbitrarily fast if they don't have to be correct!
Environment Info
- Platform: darwin
- Terminal: Apple_Terminal
- Version: 2.0.55
- Feedback ID: accd68fd-35be-499f-944b-532b6c25038a
Errors
[{"error":"Error: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"max_tokens: Extra inputs are not permitted\"},\"request_id\":\"req_011CVd8voMtnDottXvy72XrJ\"}\n at t2.generate (file:///Users/alexanderriccio/.nvm/versions/node/v24.10.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:459:9427)\n at LT.makeStatusError (file:///Users/alexanderriccio/.nvm/versions/node/v24.10.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:1312:2195)\n at LT.makeRequest (file:///Users/alexanderriccio/.nvm/versions/node/v24.10.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:1312:5419)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n at async file:///Users/alexanderriccio/.nvm/versions/node/v24.10.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:1464:2769\n at async file:///Users/alexanderriccio/.nvm/versions/node/v24.10.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:1464:2262\n at async FB5 (file:///Users/alexanderriccio/.nvm/versions/node/v24.10.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:1463:16949)\n at async ZQ2 (file:///Users/alexanderriccio/.nvm/versions/node/v24.10.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:1464:2195)\n at async $RA (file:///Users/alexanderriccio/.nvm/versions/node/v24.10.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:2252:52)\n at async nu5 (file:///Users/alexanderriccio/.nvm/versions/node/v24.10.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:2252:2244)","timestamp":"2025-11-30T00:36:09.972Z"},{"error":"Error: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"max_tokens: Extra inputs are not permitted\"},\"request_id\":\"req_011CVd9fXuf8PVyPHJzgj8sA\"}\n at t2.generate (file:///Users/alexanderriccio/.nvm/versions/node/v24.10.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:459:9427)\n at LT.makeStatusError (file:///Users/alexanderriccio/.nvm/versions/node/v24.10.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:1312:2195)\n at LT.makeRequest (file:///Users/alexanderriccio/.nvm/versions/node/v24.10.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:1312:5419)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n at async file:///Users/alexanderriccio/.nvm/versions/node/v24.10.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:1464:2769\n at async file:///Users/alexanderriccio/.nvm/versions/node/v24.10.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:1464:2262\n at async FB5 (file:///Users/alexanderriccio/.nvm/versions/node/v24.10.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:1463:16949)\n at async ZQ2 (file:///Users/alexanderriccio/.nvm/versions/node/v24.10.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:1464:2195)\n at async $RA (file:///Users/alexanderriccio/.nvm/versions/node/v24.10.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:2252:52)\n at async nu5 (file:///Users/alexanderriccio/.nvm/versions/node/v24.10.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:2252:2244)","timestamp":"2025-11-30T00:45:50.358Z"},{"error":"SyntaxError: Unexpected non-whitespace character after JSON at position 65 (line 6 column 1)\n at JSON.parse (<anonymous>)\n at file:///Users/alexanderriccio/.nvm/versions/node/v24.10.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:74:693\n at B (file:///Users/alexanderriccio/.nvm/versions/node/v24.10.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:8:6527)\n at CQ2 (file:///Users/alexanderriccio/.nvm/versions/node/v24.10.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:1465:2276)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)","timestamp":"2025-11-30T00:56:19.327Z"},{"error":"Error: Request was aborted.\n at Bt._createMessage (file:///Users/alexanderriccio/.nvm/versions/node/v24.10.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:463:3151)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)","timestamp":"2025-11-30T01:04:59.219Z"}]This issue has 9 comments on GitHub. Read the full discussion on GitHub ↗