Local working-tree proof
Best for a developer or coding agent iterating before review. It includes staged, unstaged tracked, and untracked changes when comparing against HEAD.
How PatchProof works
PatchProof connects the policy in a repository to deterministic execution and a durable merge decision—without moving untrusted execution into the cloud control plane.
The verification flow
Declare
A versioned .patchproof.yml can describe runner labels, commands, environment variable names, health and browser checks, timeouts, risk policy, and artifact patterns.
PatchProof can also detect common Node, PHP, Python, Go, Ruby, Rust, frontend, test, and Docker project signals when generating a starter configuration.
version: 1
runner:
labels: [linux, node, npm]
checks:
install:
- name: Install
run: npm ci
quality:
- name: Test
run: npm test
Inspect
Changed-file status and deterministic rules identify sensitive paths, removed tests, dependency sources, relaxed policies, CI permissions, Docker privileges, secret-bearing files, and other review signals.
Risk findings describe evidence. They do not include patch bodies, credential values, command bodies, or sensitive dependency targets.
app/Http/Middleware/…
Execute
For a local proof, the CLI works from your authorized checkout. For a cloud run, a compatible self-hosted runner claims the job, clones authorized source into a per-run directory, applies deadlines, and cleans up the workspace it created.
The cloud plans and records the run. It never executes repository commands and never receives a Docker socket.
Assemble
PatchProof combines execution state, deterministic risk, changed-file evidence, failed or skipped steps, URL checks, configured artifact results, redaction counts, and lifecycle interruptions.
Logs and user-facing metadata are redacted before presentation. Selected artifacts remain subject to path, size, and retention limits.
Decide
Safe, warning, risky, blocked, and unknown verdicts express the merge posture. The recommendation and top concerns explain what a human or coding agent should do next.
Local runs exit nonzero for risky, blocked, and unknown outcomes, so an automated loop stops rather than continuing past unsafe evidence.
Commands passed, but a high-risk authorization change needs human confirmation.
Choose the current workflow
Best for a developer or coding agent iterating before review. It includes staged, unstaged tracked, and untracked changes when comparing against HEAD.
Best when a workspace needs shared runner execution and a centralized proof. A person or authorized CLI explicitly queues the run.
Enter early accessStart with one patch
Build the runner from an authorized source checkout, generate a repository policy, and produce a redacted local proof.