One of udoc's problems is that its error messages arrive towards the end of the build process. Often, when fifteen executables are being built, I wait for the interesting one to be finished and immediately switch to testing it. Later on udoc delivers some useful error messages, but I'm not looking any more.
So maybe I'd like to integrate udoc into clang. That way its warnings would be delivered together with the other warnings.
A few of udoc's errors could not be reported from within clang, since clang only sees one compilation unit at a time. That's a drawback. Some postprocessing would be necessary in order to generate each output format, too… maybe the right design is a clang option to parse documentation, issue warnings and generate intermediate files, and one executable per output format to generate the documentation.