Variable naming is a really obvious example of "you can't write programs" to assess this. Because it needs some general intelligence.
Are very short names OK? Generally not, but x is a perfectly good name for an x coordinate in a graphing application for example.
On the other hand methods named colour (to get the shade) and shade (to get the colour) need some serious documentary explanation of what the hell you're up to even though in themselves they're acceptable names.
Language idioms, and (if this service is expensive enough) per-project idioms are not usually or reliably machine checkable.
Also beginners make lots of confusing mistakes, a program may end up missing the woods (e.g. this should just be an iterator, 90% of the code is mechanics that are doing what the language's built-in iterators do) for the trees (the variable names used for all the counters being tracked are bad)