## 94. P2 — 커버리지 gate 둘이 나란히 있고, 하나는 발화할 수 없다 `MongoStableContractSuite`의 javadoc이 존재 이유를 적는다. > The report distinguishes a failed contract from a contract that never ran. A suite that reports "no failures" because half of it was skipped is exactly the shape of green build that certifies nothing, **so a missing contract is a failure here.** 구현은 그 구분을 만들 수 없다(`138-...` §8.2). ```java Set executed = new LinkedHashSet<>(); for (MongoReplicaSetContract contract : MongoReplicaSetContract.all()) { executed.add(contract); // ← 루프가 무조건 채운다 if (!contractRunner.test(contract)) { failures.add(...); } } Set missing = new LinkedHashSet<>(MongoReplicaSetContract.all());