Ready to get started?

Check out the plugin on GitHub and start using it today.

When your class hierarchy respects LSP, you can pass any subclass anywhere the parent is expected — and everything just works. No surprises, no crashes, no instanceof spaghetti.

Subtypes behave consistently — no hidden surprises when swapping implementations

Test with the parent contract — all subtypes pass the same tests automatically

Write code once against an interface — swap implementations freely without touching callers