code: private function getTaskFromInput(InputInterface $input, OutputInterface $output): string
      {
          $commands = $this->getCommands();
          $task = $input->getArgument('task');
  
          if (null !== $task) {
              if (!\in_array($task, $commands, true)) {
                  throw new \InvalidArgumentException(sprintf('Invalid task "%s"', $task)); // no full stop here
              }
  
              return $task;
          }
  
          $question = new ChoiceQuestion('Please select a task:', $commands);
          $question->setMaxAttempts(1);
  
          /** @var QuestionHelper $helper */
          $helper = $this->getHelper('question');
  
          return $helper->ask($input, $output, $question);
      }
docs: Returns the task name from the argument list or via an interactive dialog.