CtrlK
BlogDocsLog inGet started
Tessl Logo

evilissimo/property-based-testing

Generates **property-based tests** that use randomized input generation to validate invariants and contracts (rather than hand-picked examples). Triggers when the conversation involves: PBT frameworks (Hypothesis library for Python, fast-check for TypeScript, proptest for Rust, rapid for Go, RapidCheck for C++); concepts like invariants, contracts, round-trip symmetry, encode/decode, serialize/deserialize, generative testing, or shrinking; or requests to find edge cases that example-based tests miss — e.g., "find edge cases automatically", "test all possible inputs", "verify this property holds". Does NOT trigger for: writing regular example-based unit tests, debugging, CI/CD setup, UI/component testing, or integration/E2E testing. Identifies up to 7 property patterns (round-trip, idempotence, invariance, metamorphic, inverse, ordering, no-crash), designs input generators, writes property tests, and extracts regression tests from failures.

91

1.11x
Quality

90%

Does it follow best practices?

Impact

94%

1.11x

Average score across 5 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

Quality

Content

77%

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

This is a solid, well-structured skill that provides actionable guidance with executable examples and a clear multi-step workflow including validation and regression extraction. Its main weakness is moderate verbosity in places and the lack of progressive disclosure to separate per-language details or advanced topics into referenced files. The common mistakes table and property patterns table are excellent additions that add value concisely.

Suggestions

Trim introductory prose and the refactoring advice in Step 1 to improve conciseness — Claude can infer when refactoring is appropriate.

Consider splitting per-language generator examples and advanced generator composition techniques into separate referenced files (e.g., GENERATORS.md, EXAMPLES_BY_LANGUAGE.md) to improve progressive disclosure.

DimensionReasoningScore

Conciseness

Generally efficient but includes some unnecessary explanation (e.g., 'Let the computer generate randomized inputs to find edge cases you'd never think of' and the refactoring advice in Step 1). The tables and examples are well-structured, but some prose could be trimmed.

2 / 3

Actionability

Provides fully executable Python code examples for both the property test and regression test extraction. Includes specific framework names and generator API calls per language, concrete patterns, and copy-paste ready examples.

3 / 3

Workflow Clarity

Clear 6-step sequential workflow with explicit validation (Step 5: analyze failures, read shrunk case) and a feedback loop (refine property and re-run). Step 6 mandates extracting regression tests, serving as a verification checkpoint. The workflow handles the full lifecycle from analysis through regression locking.

3 / 3

Progressive Disclosure

Content is well-organized with clear sections and tables, but everything is in a single file with no references to external files for advanced topics (e.g., per-language detailed examples, advanced generator composition, or framework-specific guides). For a skill of this complexity covering 5+ languages, some content could benefit from being split out.

2 / 3

Total

10

/

12

Passed

Description

100%

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

This is an exemplary skill description that excels across all dimensions. It provides highly specific capabilities, comprehensive trigger terms covering frameworks, concepts, and natural user phrases, explicit positive and negative trigger conditions, and clear boundaries that distinguish it from other testing-related skills. The inclusion of a 'Does NOT trigger for' clause is particularly effective for reducing conflict risk.

DimensionReasoningScore

Specificity

Lists multiple specific concrete actions: identifies up to 7 property patterns (round-trip, idempotence, invariance, metamorphic, inverse, ordering, no-crash), designs input generators, writes property tests, and extracts regression tests from failures. Very detailed and actionable.

3 / 3

Completeness

Clearly answers both 'what' (generates property-based tests, identifies patterns, designs generators, writes tests, extracts regression tests) and 'when' (explicit trigger conditions with frameworks, concepts, and user phrases, plus explicit negative triggers for what it does NOT handle).

3 / 3

Trigger Term Quality

Excellent coverage of natural trigger terms including framework names (Hypothesis, fast-check, proptest, rapid, RapidCheck), domain concepts (invariants, contracts, round-trip, encode/decode, serialize/deserialize, generative testing, shrinking), and natural user phrases ('find edge cases automatically', 'test all possible inputs', 'verify this property holds').

3 / 3

Distinctiveness Conflict Risk

Highly distinctive with a clear niche in property-based testing. The explicit 'Does NOT trigger for' clause listing regular unit tests, debugging, CI/CD, UI testing, and integration testing sharply delineates boundaries and minimizes conflict with other testing-related skills.

3 / 3

Total

12

/

12

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation11 / 11 Passed

Validation for skill structure

No warnings or errors.

Reviewed

Table of Contents