property-based-testing
Installation
SKILL.md
Property-Based Testing
Canonical FP bar: docs/fcis-engineering-rules.md — Functional Core, Imperative Shell: pure domain modules; side effects at edges. Prefer testing pure core without Repo; use DataCase only for true persistence boundaries.
RULES — Follow these with no exceptions
1. Define properties, not examples — state what should always be true, not specific inputs/outputs
2. Test invariants, not specific values — "output length equals input length" not "output is [1, 2, 3]"
3. Leverage shrinking — let StreamData find minimal failing cases; add constraints like min_length: 1 or integer(1..100) when shrunk cases expose invalid generator inputs