Skip to content

Antifailure

Staging drifts, seed data lies, and the bug you ship is the one no fixture predicted. Antifailure gives every branch its own environment built from the shape of production.

An environment is a masked branch of your production database, your services built and running, and a network that reaches nothing except the hosts you named. Agents drive your real workflows against it and return verdicts with evidence. Then it is destroyed, and the destruction is proved rather than assumed.

Terminal window
curl -fsSL https://antifailure.dev/install.sh | sh
af init # reads your repo, writes antifailure.yaml
af up # masked database branch, built services, sealed network
af test # agents run your workflows and return verdicts with evidence
af down # every resource it created, gone

If you have not run it yet, read Quickstart. It goes from an empty machine to a working environment, and says what each command actually did.

If you arrived from an error message, the code in that message has its own page. The error reference lists every code the engine can return, what causes it, and what to do next.

If you are deciding whether this fits your stack, read goldens and masking first. They are the two ideas the rest depends on, and they are where the guarantees live.

Read thisTo understand
GoldensHow a masked copy of production is built once and branched cheaply
MaskingHow identifiers are replaced, deterministically, and how that is verified
VerificationWhy an unverified golden cannot be branched
EgressWhat an environment can reach, and the mode each host is given
AgentsHow workflows written as sentences become a run with evidence
The journalHow a killed engine reconciles instead of leaking

Every reference page is generated from the thing it documents, so it cannot drift: the command reference from the command tree, the manifest reference from the schema, the error reference from the catalogue, and the transform reference from the registry. A build gate fails if any of them stops matching.