Using contracts makes it easier to catch bugs earlier: type error is caught immediately rather than further downstream where it's harder to debug.
For my large-scale in-house test frameworks, I've used it throughout.
For code that will become a gem, though, I don't use it, because it creates a dependency that the potential user might find unacceptable.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.