Skip to content

feat(cli): add /plan mode with Shift+Tab toggle - #57

Open
atoomic wants to merge 1 commit into
DenizOkcu:mainfrom
atoomic:feat/plan-or-not-bis
Open

atoomic wants to merge 1 commit into
DenizOkcu:mainfrom
atoomic:feat/plan-or-not-bis

Conversation

@atoomic

@atoomic atoomic commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

What this adds

A new plan mode that lets you explicitly tell Haze to plan its approach and stop before writing any code.

Why

Haze already has smart routing — it detects plan-only requests from the wording ("just plan X", "outline a fix for Y") and holds off on implementing. But that's implicit: with ambiguous wording, Haze may start editing when you only wanted a plan. Plan mode makes the intent explicit and guaranteed, on your terms instead of the classifier's guess.

How to use it

  • Type /plan, or press Shift+Tab in the input box, to toggle it on/off.
  • While it's on, a PLAN MODE indicator appears in the input border and every request is treated as plan-only — no matter how it's worded.
  • Toggle it off and normal smart routing resumes.

Notes

  • When off, nothing changes — existing smart routing is untouched.
  • Clean single-commit diff on top of current main.

🤖 Generated with Claude Code

Add an explicit plan mode that forces Haze to plan and stop before
implementing, complementing the existing natural-language intent
classifier (smart routing still applies when the mode is off).

Activation:
- /plan slash command toggles the mode on/off
- Shift+Tab toggles it from the input window

Visual feedback:
- Input window border and prompt marker switch to cyan (#22d3ee)
- A "PLAN MODE" label identifies the active mode
- System message confirms each toggle

Implementation:
- forceIntent param on createSessionGoal forces 'plan' intent
- forcePlanOnly flag on runAgentTurn ORs into likelyPlanOnlyRequest
- accentColor + onTogglePlanMode props on TextInput
- cyan/deepCyan theme tokens
- /plan registered in command help and input suggestions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant