@@ -146,24 +146,27 @@ func newCmd() *cobra.Command {
146146 return fmt .Errorf ("invalid frontend %q: must be next, vite, or tanstack" , frontendFlag )
147147 }
148148
149- // Apply legacy flag mappings
150- opts .Normalize ()
151-
152- // If architecture is still empty (no flags set), show interactive prompt
153- if opts .Architecture == "" || (! cmd .Flags ().Changed ("arch" ) && ! apiOnly && ! mobileOnly && ! full && ! includeExpo && opts .Architecture == scaffold .ArchTriple ) {
154- // Only prompt if no explicit flags were set
155- anyFlagSet := cmd .Flags ().Changed ("arch" ) || cmd .Flags ().Changed ("frontend" ) ||
156- cmd .Flags ().Changed ("api" ) || cmd .Flags ().Changed ("mobile" ) ||
157- cmd .Flags ().Changed ("expo" ) || cmd .Flags ().Changed ("full" )
158-
159- if ! anyFlagSet {
160- printLogo ()
161- // Reset to empty so prompt shows
162- opts .Architecture = ""
163- opts .Frontend = ""
164- if err := prompt .RunNewProjectPrompt (& opts ); err != nil {
165- return err
166- }
149+ // Show interactive selector only when the user did not provide any
150+ // architecture/frontend shortcuts or explicit long-form flags.
151+ anyScaffoldSelection := cmd .Flags ().Changed ("arch" ) ||
152+ cmd .Flags ().Changed ("frontend" ) ||
153+ cmd .Flags ().Changed ("single" ) ||
154+ cmd .Flags ().Changed ("double" ) ||
155+ cmd .Flags ().Changed ("triple" ) ||
156+ cmd .Flags ().Changed ("vite" ) ||
157+ cmd .Flags ().Changed ("next" ) ||
158+ cmd .Flags ().Changed ("api" ) ||
159+ cmd .Flags ().Changed ("mobile" ) ||
160+ cmd .Flags ().Changed ("expo" ) ||
161+ cmd .Flags ().Changed ("full" )
162+
163+ if ! anyScaffoldSelection {
164+ printLogo ()
165+ // Keep empty values so the prompt can collect architecture/frontend.
166+ opts .Architecture = ""
167+ opts .Frontend = ""
168+ if err := prompt .RunNewProjectPrompt (& opts ); err != nil {
169+ return err
167170 }
168171 }
169172
0 commit comments