The process is built around a set of deliverables. The critical deliverables are, requirements, design and code. These deliverables are reviewed. In each case reviewers are provided with the deliverable and a guide to what they should be looking out for in this kind of review.
In defining the process we have tried to cut down as far as possible on the number of deliverables and to make their maintenance easy. If we were to miss out the requirements or design documents, it would be impossible to assess the design. The design document we advocate is language specific so that different domains can produce code which will work together. It might seem preferable to have a more informal design document but it is hard to review an informal design and it cannot be reverse engineered from the code.