CI went red. The suite has eight tests, and every test is fine on its own terms. What breaks them is running order: there are exactly three hidden order dependencies, each of one of two kinds.
X pollutes Y: X leaves something behind, say rows in a shared table, and Y fails if X ran anywhere earlier in the same run.
If A pollutes C:
ABC C fails, A ran earlierCA C passes, A ran after itC C passes alone
X sets up Y: Y quietly relies on something X creates, say a user account, and fails unless X ran earlier in the same run.
If A sets up C:
ABC C passes, A ran earlierCA C fails, A ran too lateC C fails alone
A test fails if any of its dependencies bite, and passes otherwise. Only the order within one run matters: every run starts from a clean state.
The first run is CI's: the whole suite in file order, free. After that, queue any tests in any order and run them. A run costs 4 seconds to boot plus each test's duration.
Name all three dependencies to finish. You get one diagnosis, and nothing moves until you act, so take your time.
The bot picks whichever run tells it the most per second, one run at a time. It never guesses, but it doesn't plan ahead either.