property-based-testing
Use when a parser, serializer, normalizer, comparator, reversible transformation, numeric operation, or state transition should be tested over an input domain…
Skill by HundredBillion
Chalk Labs
Need help deploying property-based-testing?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/hundredbillion-property-based-testing
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 26, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/property-based-testing
What's inside
- Skill name
property-based-testing- Description
- Use when a parser, serializer, normalizer, comparator, reversible transformation, numeric operation, or state transition should be tested over an input domain rather than only hand-picked examples
- License
- MIT
- Instructions
- 90 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Property-Based Testing
## Choose the Test Shape
Use property based testing when a behavior has a rule that can be checked for
many generated inputs. Good shapes include:
| Shape | Example property |
| --- | --- |
| Round trip | `decode(encode(x)) == x` |
| Normalization | `normalize(normalize(x)) == normalize(x)` |
| Invariant | state constraints hold before and after a transition |
| Oracle | implementation agrees with a simpler trusted reference |
| Ordered result | `is_sorted(sort(xs))` and elements are preserved |
If the behavior has no independent property or oracle, use focused examples and
say why property based testing is a poor fit. “Does not crash” alone rarely
justifies a generator.
## Design the Property
The assertion must constrain the implementation without reimplementing it.
Reject these false tests:
- **Tautology:** the expected value repeats the same calculation as the code
under test.
- **Vacuity:** assumptions discard nearly all generated inputs, or contradictory
assumptions run zero cases.
- **Example disguise:** a property wrapper still tests only one fixed fixture.
State what the property means independently, then choose the strongest check the
domain supports. A round trip may be invalid for a lossy normalizer; specify the
canonical result instead.
## Generate the Domain
Build generators from valid structure rather than filtering arbitrary values.
Include boundary and adversarial partitions relevant to the contract: empty
values, one element, duplicates, maximum sizes, Unicode, delimiters,
malformed input, null-like values, negative or large numbers, and combinations
of fields. Before implementation, write a partition table (at minimum: empty,
normal, representation-specific, and malformed inputs) and state which
partitions the generator reaches; a proposed property that omits a contract
partition is incomplete even if a focused example covers one defect. Add a
small number of explicit examples for known boundary cases.
Keep generation deterministic in CI while retaining enough variety to explore
the domain. Set a bounded example count and deadline appropriate to the suite.
Do not replace domain generation with a fixed corpus or a single seed merely to
make a failing test disappear.
## Preserve Counterexamples
Use the library's shrinking or minimization support. A failing case must be
replayable from the reported seed/case and reduced to the smallest useful input.
Record the property, minimized input, and whether the defect is in the code,
the generator, or the property. Do not accept a larger random sample as a
substitute for a reproducible counterexample.
## Dependency and Execution Boundaries
If the project already has a property testing library, use its established
runner and conventions. Adding one is a dependency decision: propose the
library and the concrete property first, then wait for the required approval.
The dependency decision may block execution, but it does not turn the property
into an example-only test: record the generator, shrinking/replay plan, and
pending command so the property can be implemented after approval.
The property is the tracer bullet for this behavior. A single example may
supplement it, but “highest-value example first” is not completion when the
identified contract is a domain-wide property.
When tests have not run, report the exact command and mark it pending. Do not
claim generated cases, shrinking, coverage, or a passing suite from a proposed
test.
## Review Checklist
- [ ] The property is independent of the implementation and matches the domain.
- [ ] The generator reaches valid boundaries without broad `assume` filtering.
- [ ] Empty, malformed, and representation-specific cases are covered where
the contract permits them.
- [ ] Shrinking produces a minimal replayable counterexample.
- [ ] The test is deterministic, bounded, and uses the project's library or an
explicitly approved dependency.
- [ ] Existing examples remain useful as named regression cases.
- [ ] If a dependency is pending, the property and generator design remain
explicit rather than being replaced by a fixed example or corpus.From HundredBillion/dmi_superpowers, MIT.
More from HundredBillion/dmi_superpowers
- 0.609score
subagent-driven-development
HundredBillion
Use when executing a written implementation plan (TSP) whose tasks are independent, in the current session.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
creating-a-pull-request
HundredBillion
Use when opening, creating, or writing a pull request, pushing a branch for review, or running gh pr create - covers the PR title, body, and evidence so the…
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
improve-codebase-architecture
HundredBillion
Use when a debugging post-mortem concludes the root cause was architectural (no test seam, tangled callers, hidden coupling), or when the user asks for an…
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
say
HundredBillion
Use when reporting a finding about code to the user during grilling, grill-with-docs, or systematic-debugging, and when drafting or rewriting prose for a…
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
executing-plans
HundredBillion
Use when executing an approved written TSP inline, when your human partner chose this session as the implementer, or when subagents are unavailable
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
migrating-safely
HundredBillion
Use when replacing or removing a database shape, public API, event contract, dependency, service, or feature that active consumers must leave without downtime…
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
source-grounded-development
HundredBillion
Use when implementation correctness depends on a framework, library, platform, protocol, or tool whose APIs and recommended patterns vary by version
SkillAFreshness: A★ 3Claude Code +9 - 0.601score
prototype
HundredBillion
Build a throwaway prototype to flesh out a design — a runnable terminal app for state/business-logic questions, or several radically different UI variations…
SkillAFreshness: A★ 3Claude Code +9 - 0.581score
brainstorming
HundredBillion
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior.
SkillAFreshness: A★ 3Claude Code +9 - 0.579score
finishing-a-development-branch
HundredBillion
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting…
SkillAFreshness: A★ 3Claude Code +9 - 0.579score
domain-modeling
HundredBillion
Build and sharpen a project's domain model.
SkillAFreshness: A★ 3Claude Code +9 - 0.579score
dispatching-parallel-agents
HundredBillion
Use when facing 2+ independent tasks with no shared state or ordering between them and no written plan to work from — ad-hoc fan-out.
SkillAFreshness: A★ 3Claude Code +9
Signals
- Stars
- 3
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 20, 2026 (1 month ago)
- Last release
- Oct 18, 2026 (12 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from HundredBillion
- 0.609score
subagent-driven-development
HundredBillion
Use when executing a written implementation plan (TSP) whose tasks are independent, in the current session.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
creating-a-pull-request
HundredBillion
Use when opening, creating, or writing a pull request, pushing a branch for review, or running gh pr create - covers the PR title, body, and evidence so the…
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
migrating-safely
HundredBillion
Use when replacing or removing a database shape, public API, event contract, dependency, service, or feature that active consumers must leave without downtime…
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
improve-codebase-architecture
HundredBillion
Use when a debugging post-mortem concludes the root cause was architectural (no test seam, tangled callers, hidden coupling), or when the user asks for an…
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
executing-plans
HundredBillion
Use when executing an approved written TSP inline, when your human partner chose this session as the implementer, or when subagents are unavailable
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
say
HundredBillion
Use when reporting a finding about code to the user during grilling, grill-with-docs, or systematic-debugging, and when drafting or rewriting prose for a…
SkillAFreshness: A★ 3Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get property-based-testing running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
property-based-testing skill. Agent Mart. https://agentmart.dev/skills/hundredbillion-property-based-testing (last updated 2026-10-24)