A module boundary that is a directory and a test

A boundary everybody agrees on and nothing checks is a boundary that will be crossed within a fortnight.

public function testBillingIsOnlyReachedThroughItsFacade(): void
{
    $violations = $this->classesOutside('Billing')
        ->thatReference('App\Billing\')
        ->excluding('App\Billing\BillingApi');

    self::assertSame([], $violations->toArray());
}

A directory is a convention and a test is a rule, and the difference shows up the first time somebody is in a hurry. Writing it as a test rather than as a separate tool meant it ran with everything else and failed in the same place as everything else, which for a team of four was worth more than the extra capability a dedicated analyser would have brought.