By running this on the buildbot, we ensure that clang-tidy rules are being enforced without having to burden developers with building all of clang.
We don't build libc with the clang we compile. We compile clang-tidy because our new checks have not released yet so its not present in the system clang, unlike the sanitizes.
I would actually add that not all builders should run clang tidy. We should have an implementation standard checker builder which runs clang-tidy as part of building everything under llvmlibc. This builder should not run tests. This scheme will allow us to reduce builder cycle time. About how to do this, we can drive it via some CMake option: default behavior is to run clang-tidy as part of our build rules, while on all but one builder we disable implementation standard checking via the CMake option.