Sandboxed validation for AI-generated code
An AI agent saying its change works is not the same as the change passing your checks. Dualzo tests every task an agent completes with your repository's own commands, inside a throwaway container, and refuses to open a pull request until everything passes.
Your repository's own checks, not a generic test
When you connect a repository, Dualzo reads your package scripts, Makefile targets, and CI workflows and proposes the commands that define "passing" for that repository, grouped into five kinds. An admin reviews, edits, and confirms them. No task can run on the repository until they are confirmed.
The commands run in that order after each task, and kinds you leave unconfigured are skipped. Because the commands come from the repository itself, this works in any language: the sandbox uses a base image for PHP, Node.js, Python, the JVM, Go, or Ruby, with a generic image for everything else.
What the sandbox allows
Each command runs in an ephemeral container that is created for that command and removed right after. AI-written code never runs anywhere else.
| Control | What it means |
|---|---|
| Network | Available only while dependencies install. Lint, typecheck, test, and build run offline. |
| File system | Read-only everywhere except the working copy and a small temporary directory. |
| Privileges | All Linux capabilities dropped; processes cannot gain new privileges. |
| Resources | Default limits of 2 CPUs, 2g memory, 512 processes, and 10 minutes per command. |
| Secrets | None of Dualzo's own secrets. Only the test variables you add for the repository are passed in, and the model never sees them. |
When a check fails
The failing command's output goes back to the model, which gets up to two attempts to fix it. If the check still fails, the task stops for human review instead of pushing anything. Your team sees the plan, each task's status, the full diff, and the failing output, and chooses to abandon the task, edit the plan and run it again, or take over the branch as a draft pull request that is clearly marked as not validated.
No pull request while validation is failing
This rule is enforced in code: the service that opens pull requests refuses any run whose validation is not passing. The same holds when a repository commits directly to a branch — failing validation never pushes anything. When a pull request does open, its description lists which commands ran.
Repositories without tests
If a repository has no test command, an admin can still confirm its commands by acknowledging "reduced validation". That choice is recorded, shown on every plan, and printed on every pull request from that repository, so a reviewer always knows what was and was not checked.
Part of a governed workflow
Validation is one of four controls Dualzo applies to AI-written code, after human approval of the plan and alongside an append-only audit trail. For how Dualzo handles repository access and your source code, see the security page. For a tool-agnostic setup, see our guide on how to validate AI-generated code before merging.
Team plan — $119/month, 5 seats included. AI model usage included.