Patch
See exactly which lines changed. Switch attempts to review both rejected proposals and the retained patch.
Loading service status.
For developers reviewing AI-generated changes. PatchProof asks a model to repair a bug, runs checks the model cannot edit, and returns the change with its results. You decide whether to use it.
Loading the saved repair…
Choose a maintenance task. Read the starting code and required behavior, then generate a patch and inspect the evidence.
The repair workflow
An AI-generated patch is a proposal. PatchProof connects that proposal to the original code, the behavior you asked for, and executable checks, so you can decide whether to use it.
Start with a clear contract
In Try a repair, each task is a curated Python project snapshot with a maintenance request, its starting files, examples, and explicit requirements. The examples show the required behavior. The source viewer shows the exact code the repair starts from.
Requirements cover both the requested fix and behavior that must keep working, such as ordering, error handling, or leaving the caller's data unchanged. File labels show which source files the model may change.
This public app accepts the listed task IDs. It does not accept repository URLs, code uploads, or shell commands.
A real request, a bounded attempt
First, the coordinator checks the run allowance and executes checks on the starting code. It then sends the maintenance request, allowed source, public examples, and requirements to the model. The model returns proposed file changes and a short summary.
The coordinator applies those changes only to the allowed files and runs the checks again. Progress comes from recorded events: starting checks, repairing, checking, and preparing evidence. The model's explanation is shown separately from what the checks actually observed.
Loading the configured model and check runtime…
Checks the repair cannot rewrite
The check definitions and expected results are controlled by the application, outside the model's editable source. Each check calls the code with a specified input and compares the observed outcome with the requirement. Additional checks can exercise compatibility cases beyond the task's public examples.
Here, “independent” means the proposed code does not control its check definitions or the recorded verdict. It does not mean a second model votes on the patch. The check runner records outputs, exceptions, logs, and operation IDs.
When an attempt fails, feedback can guide another attempt within the same run limits. PatchProof retains the best checked attempt and preserves the others for review. A failed or interrupted run remains in the history.
Know what the result means
Passing a finite set of checks does not establish correctness for every possible input. There is no automatic merge or deployment of the generated patch.
Review the work, not just a badge
See exactly which lines changed. Switch attempts to review both rejected proposals and the retained patch.
Connect requirements to checks, inspect expected and observed values, and compare with checks on the starting code.
Follow recorded coordinator events. This is an execution history, not the model's private reasoning.
Inspect model and runtime identifiers, resource usage, source digests, and instructions to reproduce the checks.
Download evidence saves the original inputs, candidate changes, check results, logs, and accounting in one bundle. With the recorded source checkout and runtime, a maintainer can run the replay command shown in Run details. Replay executes fresh checks without asking the model to generate the patch again.
The walkthrough and video explain saved real runs. Browsing them does not start a new model call; Generate patch starts a new run.
Compare approaches fairly
Uses the task's public checks to guide revisions.
Also uses additional checks to guide revisions.
Uses additional checks and keeps the best checked attempt, instead of assuming the latest attempt is best.
The comparison view checks whether the runs used the same source, policy, runtime, and resource limits. It shows total usage across attempts, including unsuccessful work. Provider cost estimates are labeled; unknown billing and CPU values stay unmeasured.
These curated demonstrations explain the workflow. A few successful examples do not establish a benchmark advantage over another approach.
Open the comparison viewChoose a task, understand its goal, and inspect what the model actually changed.
Choose a maintenance taskLoading past runs…
A comparison needs matching inputs and resource limits.