Enforce the rulesyour tests miss.

DeltaLabs finds executable rules in your code, tests them with mutations, and turns accepted rules into pull request checks.

Examples cover cases. Invariants cover rules across generated inputs, such as balance >= 0, idempotent(retry), and auth before mutation.

DeltaLabs drafts those rules as Hypothesis properties, tests them with mutations, and evaluates every survivor with an LLM. Accepted properties become pull request checks.

From code to pull request check in three steps.

01MINE

Mine executable rules from the code.

DeltaLabs drafts Hypothesis properties that first pass against the current code.

02PROVE

Prove they catch mutations.

Candidates that miss bounded mutations are discarded. An LLM evaluates every survivor against the source, property, and test evidence.

03GATE

Gate relevant changes.

Accepted properties rerun when covered code changes. Deterministic failures block with a minimized counterexample; flaky or inconclusive runs do not.

PR #4127 removes a balance guard.

Tests pass, but balance_never_negative finds a negative balance. The required DeltaLabs check blocks the merge.

PR #4127 · perf: remove balance guardledger/accounts.py
def withdraw(account, txn): """Debit txn.amount from the account.""" amt = txn.amount if not account.active: raise AccountClosed(account) if account.balance < amt: raise InsufficientFunds(txn) account.balance -= amt ledger.record(txn, -amt) return Receipt(txn, account.balance)
delta gate · base origin/main5 impacted
INV-0418idempotent_settlementPASS
INV-0419auth_before_mutationPASS
INV-0421tax_before_discountPASS
INV-2207balance_never_negativeFAIL
INV-0440order_total_reconcilesPASS
CounterexampleMerge blocked
Merge blocked. INV-2207 balance_never_negative failed. Counterexample: input withdraw(account=AC-77, amount=5.00) state balance was 0.00 yields balance = -5.00 // expected balance >= 0 seed 0x9f2a · reproduced 2 / 2

Six patterns DeltaLabs can mine.

clamp_stays_in_bounds

bounds

Results stay within contract bounds.

normalize_is_idempotent

idempotence

Running twice matches running once.

transfer_preserves_total

conservation

A defined total, length, or multiset stays constant.

decode_encode_roundtrip

round trip

Decode returns the original encoded value.

score_is_monotonic

monotonicity

Increasing input moves output in the documented direction.

add_is_commutative

commutativity

Input order does not change the result.

Scoped access. Temporary processing.

Customer code is not opted into model training.

DeltaLabs sends selected context to commercial models only to generate or compare candidates.

Runs use temporary working copies.

Workers remove each run-scoped clone when the run ends.

Repository contents remain read only.

The GitHub App reads source and pull request context, then writes check results. Short-lived installation tokens are not stored.

Make hidden rules executable.

Private beta for Python repositories. Evaluate the miner and pull request gate with our team.