I like this one by Dave Thomas, founder of OTI and godfather of the Eclipse strategy:
It has unit and acceptance tests.
It has meaningful names.
It provides one way rather than many ways for doing one thing.
It has minimal dependencies, which are explicitly defined, and provides a clear and minimal API.
Code should be literate since, depending on the language, not all necessary information can be expressed clearly in code alone