property-based-test

Identify changed typed functions and author property-based tests per language.

1|Updated Mar 15, 2026
One-click install
npx skills add https://github.com/paulingham/.claude --skill property-based-test
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: property-based-test
Source: https://github.com/paulingham/.claude/tree/main/skills/property-based-test
Command: npx skills add https://github.com/paulingham/.claude --skill property-based-test

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill identifies changed public functions with typed signatures and automatically authors Tier 1.5 property-based tests, accelerating verification of code changes.

Core Features & Use Cases

  • Candidate identification: detects changed functions with typed signatures in the diff.
  • Framework selection: chooses the appropriate PBT harness per language (Hypothesis for Python, fast-check for TS/JS, PropEr for Erlang, etc.).
  • Test generation & freezing: generates ≥1 properties per candidate, time-boxes at 60s per function, and freezes counterexamples as deterministic regression tests.
  • Commit and integration: writes properties to tests/**/.property.{spec,test}. and commits alongside the production diff.

Quick Start

Run the property-based-test skill to automatically author property tests for changed functions in the build.

Frequently Asked Questions about property-based-test

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate property-based tests automatically for changed functions?

To generate property-based tests, this skill identifies changed public functions with typed signatures in your diff, selects the appropriate PBT framework by language, and authors Tier 1.5 tests using a harness.

What is the best way to freeze counterexamples as regression tests?

The best way to freeze counterexamples is to run property-based testing that time-boxes 60 seconds per function and automatically freezes discovered counterexamples inline as deterministic regression tests.

Does the property-based test generator work with TypeScript and Python?

Yes, the property-based test generator works with TypeScript and Python by selecting fast-check for TS/JS and Hypothesis for Python, alongside supporting other languages like Erlang with PropEr.

How are generated property tests committed to the repository?

Generated property tests are written to tests/**/*.property.{spec,test}.* and committed directly in the same branch as your production changes to ensure tests accompany the diff.

When do I need typed signatures to use property-based testing?

You need typed signatures when using this property-based testing skill because it identifies candidate functions for test generation by detecting changed public functions that have explicit typed signatures in the code diff.