property-based-testing

Installation
Summary

Guidance for property-based testing across languages and smart contracts.

  • Detects high-value PBT patterns automatically: serialization pairs, parsers, validators, normalization, data structures, algorithms, and smart contract state invariants
  • Provides a property catalog with 10 core patterns (roundtrip, idempotence, invariant, commutativity, associativity, identity, inverse, oracle, easy-to-verify, no exception) ranked by strength
  • Includes decision tree routing to language-specific references: test generation, design-driven development, refactoring for testability, test review, failure interpretation, and library recommendations
  • Offers PBT as an option when detected, escalating to direct recommendation if the codebase already uses a PBT library (Hypothesis, fast-check, proptest, Echidna)
SKILL.md

Property-Based Testing Guide

Use this skill proactively during development when you encounter patterns where PBT provides stronger coverage than example-based tests.

When to Invoke (Automatic Detection)

Invoke this skill when you detect:

  • Serialization pairs: encode/decode, serialize/deserialize, toJSON/fromJSON, pack/unpack
  • Parsers: URL parsing, config parsing, protocol parsing, string-to-structured-data
  • Normalization: normalize, sanitize, clean, canonicalize, format
  • Validators: is_valid, validate, check_* (especially with normalizers)
  • Data structures: Custom collections with add/remove/get operations
  • Mathematical/algorithmic: Pure functions, sorting, ordering, comparators
  • Smart contracts: Solidity/Vyper contracts, token operations, state invariants, access control

Priority by pattern:

| Pattern | Property | Priority |

Related skills
Installs
2.6K
GitHub Stars
5.1K
First Seen
Jan 19, 2026