Skip to content

Conversation

@stefandevo
Copy link
Collaborator

@stefandevo stefandevo commented Jan 17, 2026

Summary

This PR introduces Interactive Planning Mode, a feature that allows the AI to ask clarification questions before generating an implementation plan. This helps gather requirements and preferences upfront, leading to better implementation plans that match user expectations.

Key Features

  • Clarification Questions: When enabled, the AI will ask 1-4 focused questions about implementation approach, scope, technical choices, and UI/UX preferences before generating a plan
  • Global Enable/Disable Setting: New enableInteractivePlanning setting in Feature Defaults (default: true)
  • Customizable Prompt: The clarification instructions can be customized in Prompt Customization settings
  • Claude Code CLI Only: This feature only works with Claude models via the Claude Code CLI

Configuration

Where to Enable/Disable

Settings → Feature Defaults → Enable interactive planning

image

The setting is always visible and explains when it activates:

"Activates when using Claude models with 'Require plan approval' enabled on a feature."

When It Activates

The AI will ask clarification questions when all of these conditions are met:

  1. enableInteractivePlanning is enabled (in Feature Defaults)
  2. The feature has Require plan approval checked
  3. The feature uses a Claude model (via Claude Code CLI)
  4. Planning mode is not "Skip" (i.e., Lite, Spec, or Full)

What Happens

  1. User moves a feature to "In Progress" (or starts it manually)
  2. AI analyzes the feature request
  3. AI asks clarification questions via a dialog:
    • Questions about implementation approach, scope, technical choices, etc.
    • User selects options or provides custom input
  4. AI incorporates answers into planning
  5. AI generates the implementation plan
  6. User reviews and approves the plan
  7. AI implements the feature
image

Customizing the Prompt

Settings → Prompts → Auto Mode → Interactive Planning (Claude Code CLI Only)

image

You can customize the instructions that guide the AI on:

  • What types of questions to ask
  • How many questions (1-4 recommended)
  • When to skip asking questions

Changes

New Setting

  • enableInteractivePlanning: boolean in GlobalSettings (default: true)

Files Modified

  • libs/types/src/settings.ts - Added setting type and default
  • libs/prompts/src/defaults.ts - Made clarification prompt more assertive
  • apps/server/src/services/auto-mode-service.ts - Check setting before enabling feature
  • apps/ui/src/components/views/settings-view/feature-defaults/ - Added checkbox
  • apps/ui/src/components/views/settings-view/prompts/tab-configs.ts - Updated descriptions
  • apps/ui/src/store/app-store.ts - Added state and setter
  • apps/ui/src/hooks/use-settings-sync.ts - Sync with server
  • apps/ui/src/hooks/use-settings-migration.ts - Migration support

Test Plan

  • Verify checkbox appears in Feature Defaults section
  • Verify setting persists after refresh
  • Verify setting is included in settings import/export
  • Test with feature that has "Require plan approval" enabled:
    • With enableInteractivePlanning: true → AI should ask questions
    • With enableInteractivePlanning: false → AI should skip questions
  • Test with feature without "Require plan approval" → No questions asked
  • Test with non-Claude model → No questions asked
  • Verify prompt customization works for clarification instructions

Add font selectors that allow per-project font customization for both
sans and mono fonts, independent of theme selection. Uses system fonts.

- Add fontFamilySans and fontFamilyMono to ProjectSettings and Project types
- Create ui-font-options.ts config with system font options
- Add store actions: setProjectFontSans, setProjectFontMono, getEffectiveFontSans, getEffectiveFontMono
- Apply font CSS variables in root component
- Add font selector UI in project-theme-section (Project Settings → Theme)
Radix UI Select doesn't allow empty string values, so use 'default'
as a sentinel value instead.
- Add fontFamilySans and fontFamilyMono to GlobalSettings type
- Add global font state and actions to app store
- Update getEffectiveFontSans/Mono to fall back to global settings
- Add font selectors to global Settings → Appearance
- Add "Use Global Font" checkboxes in Project Settings → Theme
- Add fonts to settings sync and migration
- Include fonts in import/export JSON
New themes added:
- Dark: Ayu Dark, Ayu Mirage, Ember, Matcha
- Light: Ayu Light, One Light, Bluloco, Feather

Other changes:
- Bundle Zed Sans and Zed Mono fonts from zed-industries/zed-fonts
- Sort font options alphabetically (default first)
- Sort theme options alphabetically (Dark/Light first)
- Improve Ayu Dark text contrast for better readability
- Fix Matcha theme to have green undertone instead of blue
- Fix git+ssh URL to git+https for @electron/node-gyp (build compatibility)
- Remove duplicate @fontsource packages from root package.json
- Refactor font state initialization to reduce code duplication
- Terminal font dropdown now uses mono fonts from UI font options
- Unified font list between appearance section and terminal settings
- Terminal font persisted to GlobalSettings for import/export support
- Aligned global terminal settings popover with per-terminal popover:
  - Same settings in same order (Font Size, Run on New Terminal, Font Family, Scrollback, Line Height, Screen Reader)
  - Consistent styling (Radix Select instead of native select)
- Added terminal padding (12px vertical, 16px horizontal) for readability
Allow AI agents to ask clarification questions during the planning phase
when "Require approval" is enabled. This helps gather requirements before
generating a spec, resulting in better-targeted implementations.

Key changes:
- Add AskUserQuestion tool to Auto Mode when requirePlanApproval is true
- Detect tool invocation in message stream and pause for user response
- Add ClarificationQuestionsDialog UI component with radio/checkbox options
- Add clarificationInstructions prompt customization (Settings > Prompts)
- Create notification when clarification is needed
- Add WebSocket events for clarification request/response flow

Activation conditions:
- Feature uses Claude model (haiku, sonnet, opus)
- "Require approval" is enabled on the feature
- Planning mode is lite, spec, or full

The clarification instructions prompt can be customized in Settings under
Prompt Customization > Auto Mode > Interactive Planning section.
- Add `enableInteractivePlanning` global setting (default: true)
- Make clarification prompt more assertive (Required vs Optional)
- Add checkbox in Feature Defaults to enable/disable the feature
- Setting is always visible with explanation of when it activates
- Update prompt customization descriptions to reference Feature Defaults
- Properly sync setting with server and include in import/export
@coderabbitai
Copy link

coderabbitai bot commented Jan 17, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @stefandevo, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the AI planning process by introducing an interactive mode that allows the AI to solicit user input through clarification questions. This ensures that the generated implementation plans are more aligned with user expectations and requirements. Additionally, it expands the application's customization capabilities by offering extensive UI and code font options, both globally and on a per-project basis, along with a variety of new visual themes.

Highlights

  • Interactive Planning Mode: Introduces a new mode where the AI asks clarification questions (1-4 focused questions) before generating an implementation plan, helping to gather requirements and preferences upfront.
  • Global Enable/Disable Setting: A new enableInteractivePlanning setting is added to Feature Defaults, defaulting to true, allowing users to control this behavior globally.
  • Customizable Prompt: The instructions guiding the AI on what types and how many clarification questions to ask can now be customized in the Prompt Customization settings.
  • Claude Code CLI Only: This interactive planning feature is exclusively available when using Claude models via the Claude Code CLI.
  • Enhanced UI/Code Font Customization: Adds global and per-project settings for UI (sans-serif) and code (monospace) fonts, with a wide selection of bundled fonts, improving personalization and readability.
  • New UI Themes: Several new dark and light themes have been added, including Ayu Dark, Ayu Light, Ayu Mirage, Bluloco, Ember, Feather, Matcha, and One Light, expanding visual customization options.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a great new feature: Interactive Planning Mode, which allows the AI to ask for clarification. The implementation is comprehensive, touching both the backend service and the frontend UI to support this new flow. Additionally, there are significant enhancements to UI customization with new themes and font selection options. My review focuses on improving type safety and code clarity in the new interactive planning logic, particularly around handling data from API requests and AI model outputs. Overall, this is a solid contribution that will improve the user experience.

- Replace `as` type assertion with proper runtime validation function
  for req.body in clarification-response.ts
- Consolidate repetitive validation into a loop-based approach
- Add parseClarificationQuestions() type guard for validating tool output
  instead of using `as any[]` cast
- Remove unnecessary `as any` casts from event type strings
- Extract '__other__' magic string to OTHER_OPTION_VALUE constant

Addresses review feedback from gemini-code-assist on PR AutoMaker-Org#543
@Shironex Shironex added the Enhancement Improvements to existing functionality or UI. label Jan 17, 2026
Add data-testid with sanitized project name for E2E test assertions.
The testid format is 'project-switcher-project-{name}' where name is
the lowercased project name with spaces replaced by hyphens.

This fixes E2E tests that expect to find projects by name in the
project switcher.
@webdevcody webdevcody deleted the branch AutoMaker-Org:v0.12.0rc January 17, 2026 23:51
@webdevcody webdevcody closed this Jan 17, 2026
stefandevo added a commit to stefandevo/automaker that referenced this pull request Jan 18, 2026
- Replace `as` type assertion with proper runtime validation function
  for req.body in clarification-response.ts
- Consolidate repetitive validation into a loop-based approach
- Add parseClarificationQuestions() type guard for validating tool output
  instead of using `as any[]` cast
- Remove unnecessary `as any` casts from event type strings
- Extract '__other__' magic string to OTHER_OPTION_VALUE constant

Addresses review feedback from gemini-code-assist on PR AutoMaker-Org#543
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Enhancement Improvements to existing functionality or UI.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants