I’ve created a new library called defn-spec. It lets you define Clojure specs inline with your function definitions. It reuses the design (and much of the implementation) of Schema, so if you’re familiar with that then this should be easy to learn.
I deliberately tried to keep defn-spec minimal and not add new concepts on top of vanilla Spec. The one exception to this is automatically creating the
s/cat form. Keeping defn-spec minimal should make it safe and easy to adopt in a wide variety of projects and libraries.
I wrote more about this at https://danielcompton.net/2019/03/31/announcing-defn-spec. I hope you enjoy it!