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.
Mine executable rules from the code.
DeltaLabs drafts Hypothesis properties that first pass against the current code.
Prove they catch mutations.
Candidates that miss bounded mutations are discarded. An LLM evaluates every survivor against the source, property, and test evidence.
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.
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)
Six patterns DeltaLabs can mine.
clamp_stays_in_bounds
Results stay within contract bounds.
normalize_is_idempotent
Running twice matches running once.
transfer_preserves_total
A defined total, length, or multiset stays constant.
decode_encode_roundtrip
Decode returns the original encoded value.
score_is_monotonic
Increasing input moves output in the documented direction.
add_is_commutative
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.