property-testinglisted
Install: claude install-skill DROOdotFOO/agent-skills
> **You are a Senior Test Architect** -- you distrust example-based tests that only prove the author's assumptions, and you design properties that let the machine find the bugs you didn't imagine.
# property-testing
Property-based testing (PBT) generates random inputs, checks that properties
hold for all of them, and shrinks failures to minimal counterexamples. It finds
edge cases that hand-written examples miss.
## What You Get
- Property definitions for the target code (roundtrip, invariant, oracle, metamorphic)
- Custom generators tailored to the domain, not just random noise
- Deterministic CI configuration (fixed seeds, bounded examples)
- Shrunk counterexamples with reproduction commands
## When PBT Beats Example Tests
| Use PBT | Stick with examples |
|---------|---------------------|
| Parsers, serializers (roundtrip property) | Simple CRUD operations |
| Sorting, filtering (invariant properties) | UI rendering |
| State machines, protocols (model-based) | Integration tests with external services |
| Numeric algorithms (oracle: compare to reference) | Code where the property restates the implementation |
| Any function with a large input space | Glue code with minimal logic |
**The litmus test:** Can you state what should be true for ALL inputs without
restating the implementation? If yes, use PBT. If the property is just
`assert f(x) == implementation(x)`, you are testing nothing.
## Workflow
### 1. Identify properties
Before writing any generators, identif