harness-property-test

Automate property-based testing across languages with custom generators and shrinking.

18|11|Updated Mar 16, 2026
One-click install
npx skills add https://github.com/Intense-Visions/harness-engineering --skill harness-property-test
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: harness-property-test
Source: https://github.com/Intense-Visions/harness-engineering/tree/main/agents/skills/claude-code/harness-property-test
Command: npx skills add https://github.com/Intense-Visions/harness-engineering --skill harness-property-test

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Property-based testing helps you catch edge cases and invariants by generating thousands of random inputs and validating your code against defined properties, reducing reliance on manually crafted tests.

Core Features & Use Cases

  • Cross-language property testing with fast-check (TypeScript/JavaScript) and hypothesis (Python) for multi-language projects.
  • Custom generators with shrinking to produce minimal failing inputs and robust coverage.
  • Best suited for parsers, encoders/decoders, validators, sorters, and data-transformations where input space is large or complex.

Quick Start

Run the harness-property-test skill to scaffold and execute property-based tests against your codebase.

Frequently Asked Questions about harness-property-test

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

FAQPage Schema
How do I use property-based testing to find edge cases in my parser?

Property-based testing generates thousands of random inputs to validate code against defined properties, uncovering edge cases in parsers and data transformations without relying on manually crafted tests. It automates input generation to explore large input spaces.

Can I use fast-check and hypothesis together for cross-language property testing?

Yes, cross-language property testing supports fast-check for TypeScript/JavaScript and hypothesis for Python. This allows multi-language projects to maintain consistent property-based testing workflows across different parts of the stack.

How do I generate minimal failing inputs with shrinking in property tests?

Custom generators with shrinking automatically reduce failing inputs to their minimal form. This produces minimal failing inputs that are easier to debug while maintaining robust coverage across large or complex input spaces.

Does property-based testing support fixed seeds for CI determinism?

Yes, property-based testing supports fixed seeds to ensure CI determinism. Fixed seeds allow test runs to be reproducible, making it easier to debug failures and generate reliable regression tests in continuous integration environments.

When should I use property-based testing instead of example-based tests?

Property-based testing is best suited for validating parsers, serializers, validators, sorters, and data transformations where the input space is large or complex. It catches invariants by generating random inputs, reducing the need for manually crafted examples.

What are the limitations of generative testing for software validation?

Generative testing requires defining meaningful properties and invariants, which can be challenging for complex logic. It is most effective when validating data transformations with clear rules, but may struggle with stateful systems or side-effect-heavy code without careful generator design.