Upon review, there are names and predicates in the existing core macro specs that could be more helpful when examining spec errors. The attached patch contains a number of name improvements. Most of these relate to path names within specs, more than are worth listing here (see the patch instead).
There are a few other changes of note:
Spec name changes (tried to minimize these): ::arg-list -> :aram-list, ::args+body -> :arams+body
Added even-number-of-forms? predicate
Changed import list spec to be [package class+] instead of [package class*] to catch errors like (:import [java.util.Date]).