A console command that is a thin wrapper over a service

A command with 80 lines in execute(), none of which could be called from anywhere else, including a test.

protected function execute(InputInterface $in, OutputInterface $out): int
{
    $result = $this->reconciler->run(
        since: new DateTimeImmutable($in->getOption('since')),
        dryRun: $in->getOption('dry-run'),
    );

    $out->writeln(sprintf('%d matched, %d unmatched',
        $result->matched, $result->unmatched));

    return $result->unmatched === 0 ? Command::SUCCESS : Command::FAILURE;
}

The command should parse input, call one thing, and format output. Everything else belongs in a service that a controller or a queue worker could also call, and the test for the logic then does not need a console tester at all. The exit code is the part worth deciding deliberately: returning failure when there is unmatched data makes the command usable from a cron job that alerts on non-zero, and returning success always makes it decorative.