I think move `succeeded?` to HookFile really helps here as here implementation detail leaked to API upper. Then you can have here
```
  files.all? &:succeeded?
```