← In the News

Huntley removes force push from git and ships the patched build to every environment

the answer to ai is engineering · Geoffrey Huntley, Antithesis · ghuntley.com, November 12, 2026

Machine-readable Download Markdown

The post is Huntley's write-up of a talk he gave at AI DevCon New York. Its working example is a build of git that refuses to force push. He writes: "This version of git doesn't support force push." The change lives in one Nix overlay, a file that tells Nix to build git with extra patches, and Huntley says he got the patches by asking Claude for them. His demo repository applies five patches that refuse --force, --force-with-lease, +refspec and --mirror pushes, then uses the same definition in a developer shell, a virtual-machine test and a container image. Huntley says one definition generates his laptops, CI, agent sandboxes and production images, so anything that depends on git gets the patched build.

He treats security fixes the same way. When a dependency such as OpenSSL needs a patch, he patches it once and Nix rebuilds everything that depends on it. For temporary patches he asks the agent to add a note to AGENTS.md saying the patches should come out in seven days. He says the next developer or agent to pick up that machine removed them.

On agent loops, Huntley says he runs agents as root, but only on throwaway Nix machines. He tells readers never to run agents as root on production hosts or connect them to production databases. He stops a loop from accepting bad code with deterministic checks: hooks that block a push when the code does not compile, static analysis rules about which parts of the code may depend on which, and property-based tests. The last section recommends Bombadil and Hegel, two testing libraries from Antithesis, and Huntley writes about the company as "we".

The post reports no measurements. Huntley says the recent run of security incidents cost him no sleep, which is his account of his own systems.

Why it matters: A prompt instruction asks an agent not to force push, and a pre-push hook can be skipped with --no-verify, as the demo's README points out. A patched binary removes the command wherever the environment is built, including the sandbox the agent runs in. The price is running your environments on Nix, and the post shows a demo, with no account of how the approach held up across a team.