From a6f089cfd27946d0f92051e96b7cc0a4a8c92b4c Mon Sep 17 00:00:00 2001 From: Brian Madison Date: Wed, 19 Nov 2025 22:12:45 -0600 Subject: [PATCH] feat: add empty IDE selection warning and promote Antigravity to recommended - Add persistent warning loop when no tools selected in installer - Users must press spacebar to select, not just highlight - Red warning explains the issue and offers to go back - Only way to proceed without tools is explicit "No" confirmation - Promote Google Antigravity to preferred/recommended IDE section --- tools/cli/installers/lib/ide/antigravity.js | 2 +- tools/cli/lib/ui.js | 54 +++++++++++++++++---- 2 files changed, 46 insertions(+), 10 deletions(-) diff --git a/tools/cli/installers/lib/ide/antigravity.js b/tools/cli/installers/lib/ide/antigravity.js index 3bccd911..9f35d0f7 100644 --- a/tools/cli/installers/lib/ide/antigravity.js +++ b/tools/cli/installers/lib/ide/antigravity.js @@ -20,7 +20,7 @@ const { getAgentsFromBmad, getAgentsFromDir } = require('./shared/bmad-artifacts */ class AntigravitySetup extends BaseIdeSetup { constructor() { - super('antigravity', 'Google Antigravity', false); + super('antigravity', 'Google Antigravity', true); this.configDir = '.agent'; this.workflowsDir = 'workflows'; } diff --git a/tools/cli/lib/ui.js b/tools/cli/lib/ui.js index 323fdaaf..8de8825e 100644 --- a/tools/cli/lib/ui.js +++ b/tools/cli/lib/ui.js @@ -201,15 +201,51 @@ class UI { CLIUtils.displaySection('Tool Integration', 'Select AI coding assistants and IDEs to configure'); - const answers = await inquirer.prompt([ - { - type: 'checkbox', - name: 'ides', - message: 'Select tools to configure:', - choices: ideChoices, - pageSize: 15, - }, - ]); + let answers; + let userConfirmedNoTools = false; + + // Loop until user selects at least one tool OR explicitly confirms no tools + while (!userConfirmedNoTools) { + answers = await inquirer.prompt([ + { + type: 'checkbox', + name: 'ides', + message: 'Select tools to configure:', + choices: ideChoices, + pageSize: 15, + }, + ]); + + // If tools were selected, we're done + if (answers.ides && answers.ides.length > 0) { + break; + } + + // Warn that no tools were selected - users often miss the spacebar requirement + console.log(); + console.log(chalk.red.bold('⚠️ WARNING: No tools were selected!')); + console.log(chalk.red(' You must press SPACEBAR to select items, then ENTER to confirm.')); + console.log(chalk.red(' Simply highlighting an item does NOT select it.')); + console.log(); + + const { goBack } = await inquirer.prompt([ + { + type: 'confirm', + name: 'goBack', + message: chalk.yellow('Would you like to go back and select at least one tool?'), + default: true, + }, + ]); + + if (goBack) { + // Re-display the section header before looping back + console.log(); + CLIUtils.displaySection('Tool Integration', 'Select AI coding assistants and IDEs to configure'); + } else { + // User explicitly chose to proceed without tools + userConfirmedNoTools = true; + } + } return { ides: answers.ides || [],