What problem does it solve? Example-based tests only check the cases the author already imagined, leaving invariant-bearing code like parsers, ledgers, state machines, and allocators exposed to unthought-of inputs. This Skill turns a crisp English invariant into a generative property test that fabricates many inputs and asserts the property across all of them, producing a real mechanical gate that runs in CI. ## Core Features & Use Cases - Invariant Scoping: Decides whether a unit has a one-sentence crisp invariant before writing any test, redirecting glue, IO, and UI code to example-based TDD instead. - Property Family Selection: Maps invariants to proven shapes — conservation, round-trip, idempotence, order-independence, monotonicity, invariant-preservation, and metamorphic relations. - Framework-Grounded Generation: Uses the language's native property or fuzz framework (Go testing/quick and Fuzz*, Python Hypothesis, JS fast-check, Rust proptest) rather than hand-rolled generators. - Vacuity Self-Check: Requires deliberately breaking the implementation to confirm the property goes red with a shrunk counterexample before declaring done. - Use Case: While implementing a slugify function, generate a Go fuzz test asserting idempotence — Slugify(Slugify(x)) == Slugify(x) — then commit discovered counterexamples as regression seeds under testdata/fuzz/. ## Quick Start Ask the AI to use wf-property-test to write a property-based test for the round-trip invariant of your parser, asserting parse(render(x)) == x over generated inputs.