This is flawed boolean logic.  ```!(global_classA_kept.global_classA_not_repaired.promise_kept_global_classA)```, which I'm going to rewrite ```!(A.B.C)``` for simplicity means "A and B and C must not be set all at the same time". In this case, if A and B are set, but C is not, this evaluates to "true".

What we are trying to check here is that *none* of those classes are set. So you want either ```!A.!B.!C``` or ```!(A|B|C)```.