trace is a research pipeline that patches nixpkgs CVEs with AI agents,
then proves the patch works by building the package twice, unpatched and patched, in a
hermetic Nix sandbox, and checking whether a small reproducer stops firing.
Every claim it makes, who ran it, what it claimed, whether the build agrees, is signed and
independently verifiable.
The design principle: put the model in the smallest possible box. Of eight roles, three
touch a model, and none of the three gets the final word: eligibility, provenance, hashing,
building and signing all stay deterministic code that runs the model's output rather than
trusting its account of what happened. Click a role below.
→→→→→→→
Click a role to read what it does.
The real bottleneck
Generation got cheap the moment frontier models could write a plausible nixpkgs patch, and
that moved the problem rather than solving it. A patch that merely looks right is a cost: a
maintainer, usually a volunteer, has to verify it by hand regardless of who or what
wrote it. Nix can verify a claim without asking a human to trust it first. Pinned inputs,
reproducible builds, content-addressed sources and passthru.tests turn "I
fixed it" into something a sandbox can check. trace takes that seriously as the actual hard
problem.