Apologies if this is the wrong place to throw out a suggestion.
I think it would be great for clang-tidy to suggest adding the const keyword where it can.
The first step would be to identify situations when the assumptions / restrictions of const are already met – but there is no const keyword. I.e. adding const does not change anything.
In my experience, large programs with poor const usage (what is there is correct, but not as extensive as it could be) are a challenge to improve (make more consty) because as a developer, we often have to work adding const in a top-down manner… We want to mark something top-level const, it makes sense logically, but it fails to build because one or more lower-level things are not sufficiently consty. This leads to a top-down game of whack-a-mole until everything is satisfied.
I imagine a tool like clang-tidy could instead provide a bottoms-up means of improving the use of const in a complex program. A first run would identify trivial bottom-level things like Getters – subsequent runs would identify mid and higher level things that build on lower-level items.
I think you could readily mark methods and input reference arguments. I’m not sure about going further than that.